1. 程式人生 > >JAVA 23種設計設計模式---工廠模式

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("沒有您要的車型,有可能在火星上");//自定義異常         }*/     } } 執行結果: