工廠方法概述
工廠方法模式中抽象工廠類負責定義建立物件的介面,具體物件的建立工作由繼承抽象工廠的具體類實現。
優點
客戶端不需要在負責物件的建立,從而明確了各個類的職責,如果有新的物件增加,只需要增加一個具體的類和具體的工廠類即可,不影響已有的程式碼,後期維護容易,增強了系統的擴充套件性
缺點
需要額外的編寫程式碼,增加子工作量
class IntegerDemo { public static void main(String[] args) { Factory factory = new DogFactory(); Animal animal = teAnimal(); (); factory = new CatFactory(); animal = teAnimal(); (); }}abstract class Animal {// 抽象類 public abstract void eat();}class Dog extends Animal {// 狗 public void eat() { tln("a dog is eatting."); }}class Cat extends Animal {// 貓 public void eat() { tln("a cat is eatting."); }}interface Factory {// 介面 public abstract Animal createAnimal();}class DogFactory implements Factory {// 實現介面 public Animal createAnimal() { return new Dog(); }}class CatFactory implements Factory {// 實現介面 public Animal createAnimal() { return new Cat(); }}
工廠方法概述
工廠方法模式中抽象工廠類負責定義建立物件的介面,具體物件的建立工作由繼承抽象工廠的具體類實現。
優點
客戶端不需要在負責物件的`建立,從而明確了各個類的職責,如果有新的物件增加,只需要增加一個具體的類和具體的工廠類即可,不影響已有的程式碼,後期維護容易,增強了系統的擴充套件性
缺點
需要額外的編寫程式碼,增加子工作量