工廠模式
- 概述:工廠方法中抽象工廠負責定義創(chuàng)建對象的接口雄嚣,具體對象的創(chuàng)建工作由繼承抽象工廠的具體類實現(xiàn)媒楼。
- 優(yōu)點:客戶端不需要再負責對象的創(chuàng)建哥纫,從而明確了各個類的職責悬秉,只需要增加一個具體的類和具體的工廠即可营密,不影響已有的代碼械媒,后期容易維護,增強了系統(tǒng)的擴展性。
- 缺點:需要額外編寫代碼纷捞,增加了工作量
/** * 工廠模式接口 */ interface Factory { public Animal create(); } public class Demo { public static void main(String[] args) { // 獲取貓對象 CatFactory cf = new CatFactory(); Cat c = (Cat)cf.create(); c.eat(); // 獲取狗對象 DogFactory df = new DogFactory(); Dog d = (Dog)df.create(); d.eat(); } } /** * 動物抽象類 */ abstract class Animal { abstract void eat(); } /** * 動物抽象類子類(貓) */ class Cat extends Animal { @Override void eat() { System.out.println("貓吃魚"); } } /** * 動物抽象類子類(狗) */ class Dog extends Animal { @Override void eat() { System.out.println("狗吃肉"); } } /** * 貓工廠 */ class CatFactory implements Factory { @Override public Animal create() { return new Cat(); } } /** * 狗工廠 */ class DogFactory implements Factory { @Override public Animal create() { return new Dog(); } }