Java是一種非常流行的編程語(yǔ)言,具有強(qiáng)大的面向?qū)ο缶幊棠芰ΑT贘ava編程中,常見(jiàn)的設(shè)計(jì)模式可以幫助程序員更合理地組織代碼,提高代碼的可讀性、可維護(hù)性和可擴(kuò)展性。下面我們來(lái)介紹幾個(gè)常見(jiàn)的設(shè)計(jì)模式和其應(yīng)用場(chǎng)景。
1. 工廠模式
public interface Factory{ public void produce(); } public class ProductFactoryA implements Factory { @Override public void produce() { //生產(chǎn)A產(chǎn)品 } } public class ProductFactoryB implements Factory { @Override public void produce() { //生產(chǎn)B產(chǎn)品 } } public class Main{ public static void main(String[] args){ Factory factoryA = new ProductFactoryA(); Factory factoryB = new ProductFactoryB(); factoryA.produce(); //生產(chǎn)A產(chǎn)品 factoryB.produce(); //生產(chǎn)B產(chǎn)品 } }
應(yīng)用場(chǎng)景:當(dāng)需要?jiǎng)?chuàng)建某種產(chǎn)品時(shí),使用工廠模式可以避免在客戶端代碼中直接使用new關(guān)鍵字創(chuàng)建對(duì)象,從而使客戶端代碼更加簡(jiǎn)潔、易于維護(hù)。
2. 單例模式
public class Singleton{ private static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance == null){ instance = new Singleton(); } return instance; } }
應(yīng)用場(chǎng)景:在需要保證系統(tǒng)中某個(gè)對(duì)象只有一個(gè)實(shí)例時(shí)可以使用單例模式,例如全局配置文件或數(shù)據(jù)庫(kù)連接池等。
3. 適配器模式
public interface USB{ public void connect(); } public class Computer{ public void connectUSB(USB usb){ usb.connect(); } } public class Keyboard{ public void typing(){ //鍵盤(pán)輸入 } } public class KeyboardAdapter implements USB{ private Keyboard keyboard; public KeyboardAdapter(Keyboard keyboard){ this.keyboard = keyboard; } @Override public void connect() { keyboard.typing(); } } public class Main{ public static void main(String[] args){ Computer computer = new Computer(); Keyboard keyboard = new Keyboard(); USB usb = new KeyboardAdapter(keyboard); computer.connectUSB(usb); //鍵盤(pán)輸入 } }
應(yīng)用場(chǎng)景:當(dāng)需要使用一個(gè)已有的接口而又不能直接修改該接口時(shí),可以使用適配器模式。例如上述例子中,鍵盤(pán)沒(méi)有實(shí)現(xiàn)USB接口但我們可以通過(guò)適配器將其轉(zhuǎn)化為符合USB接口的形式,以便在Computer中連接使用。
下一篇php 5.4