設計模式:抽象工廠模式(Abstract Factory Pattern)
阿新 • • 發佈:2019-01-12
/** * 抽象工廠模式。<br/> * 抽象工廠模式提供一個介面,用於建立相關或依賴物件的家族,而不需要明確指定具體類。 * @author Bright Lee */ public class AbstractFactoryPattern { public static void main(String[] args) { AbstractFactory factory001 = new ConcreteFactory001(); Client client001 = new Client(factory001); client001.doSomething(); AbstractFactory factory002 = new ConcreteFactory002(); Client client002 = new Client(factory002); client002.doSomething(); } } class Client { private AbstractFactory factory; /** * 客戶只需要知道傳入的是一個抽象工廠,而不需要知道工廠的具體型別。 */ public Client(AbstractFactory factory) { this.factory = factory; } public void doSomething() { Product product = factory.createProduct(); System.out.println("獲得的產品是:" + product); } } interface AbstractFactory { /** * 抽象工廠的所有程式碼均由子類實現。 */ public Product createProduct(); } class ConcreteFactory001 implements AbstractFactory { public Product createProduct() { return new Product001(); } } class ConcreteFactory002 implements AbstractFactory { public Product createProduct() { return new Product002(); } } interface Product { } class Product001 implements Product { public String toString() { return "Product001"; } } class Product002 implements Product { public String toString() { return "Product002"; } }
執行結果:
獲得的產品是:Product001
獲得的產品是:Product002