JAVA 23種設計設計模式---工廠模式
寫在前面的話:
java常用的設計模式有23種,設計模式就是為了重用程式碼、解耦、讓程式碼更容易讓他人理解、保證程式碼可靠性
設計模式遵循的原則有6個:
1、開閉原則(Open Close Principle)
對擴充套件開放,對修改關閉。
2、里氏代換原則(Liskov Substitution Principle)
只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行為。
3、依賴倒轉原則(Dependence Inversion Principle)
這個是開閉原則的基礎,對介面程式設計,依賴於抽象而不依賴於具體。
4、介面隔離原則(Interface Segregation Principle)
使用多個隔離的藉口來降低耦合度。
5、迪米特法則(最少知道原則)(Demeter Principle)
一個實體應當儘量少的與其他實體之間發生相互作用,使得系統功能模組相對獨立。
6、合成複用原則(Composite Reuse Principle)
原則是儘量使用合成/聚合的方式,而不是使用繼承。繼承實際上破壞了類的封裝性,超類的方法可能會被子類修改
下面分享工廠模式(程式碼):
專案說明:
奧迪類:
public class AodiTrunk implements Trunk{
@Override public void run() { // TODO Auto-generated method stub System.out.println("奧迪汽車啟動!"); }
}
寶馬類:
public class BwmTrunk implements Trunk{
@Override public void run() { // TODO Auto-generated method stub System.out.println("寶馬卡車啟動!"); }
}
介面類:
public interface Trunk { public void run(); }
顧客類:
public class Customer { public static void main(String[] args) { /** * 顧客只需要說明購買的車型即可,不必要知道車是怎麼造出來的 */ //TrunkFactory.produceTrunk("寶馬").run(); //TrunkFactory.produceTrunk("奧迪").run(); TrunkFactory.produceTrunk("大眾").run(); } }
工廠類:
public class TrunkFactory { /** * statis為靜態 可以不用通過建立物件直接呼叫 * @param message * @return */ public static Trunk produceTrunk(String message){ //第一種方法 if(message.equals("寶馬")){ return new BwmTrunk(); }else if(message.equals("奧迪")){ return new AodiTrunk(); }else{ throw new RuntimeException("沒有您要的車型,有可能在火星上"); } //第二種方法 /*switch(message){ case "寶馬": return new BwmTrunk(); case "奧迪": return new AodiTrunk(); default : throw new RuntimeException("沒有您要的車型,有可能在火星上");//自定義異常 }*/ } } 執行結果: