Java中的工廠方法和抽象工廠都是面向?qū)ο笤O(shè)計中的重要概念,它們能夠幫助開發(fā)者更加方便地創(chuàng)建和使用對象。
工廠方法是一種創(chuàng)建型設(shè)計模式,它定義了一個用于創(chuàng)建對象的接口,但并不確定具體對象的類型,具體的實現(xiàn)由子類來完成。
public abstract class AbstractFactory { public abstract Product createProduct(); } public class ConcreteFactory extends AbstractFactory { public Product createProduct() { return new ConcreteProduct(); } } public interface Product { void use(); } public class ConcreteProduct implements Product { public void use() { System.out.println("Using ConcreteProduct"); } }
抽象工廠是一種創(chuàng)建型設(shè)計模式,它提供了一種創(chuàng)建一系列相關(guān)或者相互依賴對象的接口,而不需要明確指定具體類。
public interface AbstractFactory { ProductA createProductA(); ProductB createProductB(); } public interface ProductA { void use(); } public interface ProductB { void eat(); } public class ConcreteFactory1 implements AbstractFactory { public ProductA createProductA() { return new ConcreteProductA1(); } public ProductB createProductB() { return new ConcreteProductB1(); } } public class ConcreteFactory2 implements AbstractFactory { public ProductA createProductA() { return new ConcreteProductA2(); } public ProductB createProductB() { return new ConcreteProductB2(); } } public class ConcreteProductA1 implements ProductA { public void use() { System.out.println("Using ConcreteProductA1"); } } public class ConcreteProductA2 implements ProductA { public void use() { System.out.println("Using ConcreteProductA2"); } } public class ConcreteProductB1 implements ProductB { public void eat() { System.out.println("Eating ConcreteProductB1"); } } public class ConcreteProductB2 implements ProductB { public void eat() { System.out.println("Eating ConcreteProductB2"); } }
工廠方法和抽象工廠都可以幫助開發(fā)者解決對象創(chuàng)建的瓶頸,使得對象的使用更加方便簡單。
上一篇css3 文件上傳