1. java設計模式連載(1)---Factory 方法模式
意圖:
定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類。Factory Method 使一個類的執行個體化延遲到其子類。
適用性:
- 當一個類不知道它所必須建立的對象的類的時候。
- 當一個類希望由它的子類來指定它所建立的對象的時候。
- 當類將建立對象的職責委託給多個協助子類中的某一個,並且你希望將哪一個協助子類是代理者這一資訊局部化的時候。
執行個體:
1. 定義一個生產衣服的工廠介面
package Factory_Method_Pattern;public interface ClothesFactory { public Clothes productClothes(); }
2. 實現這個衣服工廠介面,具體生產什麼類型的衣服。
package Factory_Method_Pattern;public class AdultClothesFactory implements ClothesFactory {@Overridepublic Clothes productClothes() { return new AdultClothes();}}
package Factory_Method_Pattern;public class ChildClothesFactory implements ClothesFactory {@Overridepublic Clothes productClothes() { return new ChildClothes();}}
3. 定義衣服介面(衣服是用來穿的)
package Factory_Method_Pattern;public interface Clothes{ public void dressClothes();}
4. 實現衣服介面,什麼樣的衣服,什麼人穿
package Factory_Method_Pattern;public class AdultClothes implements Clothes{@Overridepublic void dressClothes() { System.out.println("大朋友衣服廠生產的衣服,大朋友穿"); }}
package Factory_Method_Pattern;public class ChildClothes implements Clothes{@Overridepublic void dressClothes() { System.out.println("小朋友衣服廠生產的衣服,小朋友穿"); }}
5. 測試這個模式
package Factory_Method_Pattern;public class Test{ public static void main(String[] args){ ClothesFactory clothesFactory = new ChildClothesFactory(); clothesFactory.productClothes().dressClothes(); ClothesFactory adultClothesFactory = new AdultClothesFactory(); adultClothesFactory.productClothes().dressClothes(); }}
6. 多謝瀏覽,歡迎斧正。