- 工廠方法模式概述
工廠方法模式中抽象工廠類負責定義創建對象的接口,具體對象的創建工作由繼承抽象工廠的具體類實現。
- 優點
客戶端不需要在負責對象的創建,從而明確了各個類的職責,如果有新的對象增加,只需要增加一個具體的類和具體的工廠類即可,不影響已有的代碼,後期維護容易,增強了系統的擴展性
- 缺點
需要額外的編寫代碼,增加了工作量
動物抽象類:public abstract Animal { public abstract void eat(); }
工廠接口:public interface Factory {public abstract Animal createAnimal();}
開始,在測試類中每個具體的內容自己創建對象,但是,創建對象的工作如果比較麻煩,就需要有人專門做這個事情,所以就知道了一個專門的類來創建對象。發現每次修改代碼太麻煩,用工廠方法改進,針對每一個具體的實現提供一個具體工廠。
具體狗類:public class Dog extends Animal {}//具體類
具體貓類:public class Cat extends Animal {}
狗工廠:public class DogFactory implements Factory {//具體工廠
public Animal createAnimal() {return new Dog()}
}
貓工廠:public class CatFactory implements Factory {
public Animal createAnimal() {reutun new Cat()}
}