Abstract Factory Pattern
There are several concepts in it: Abstract Factory, Entity Factory,Abstract product, Entity product
Abstract factory: Define the abstract method to create a product
Entity factory : Specifically what kind of product to create
Abstract product: An interface or base class
Entity product: Implement specific functions, or derive
Class Diagram
//抽象产品1 public interface IProduct1 { public void show(); }
//抽象产品2 public interface IProduct2 { public void show(); }
//实体产品1 public class Product1 implements IProduct1 { public void show() { System.out.println("创建了1型产品"); } }
//实体产品2 public class Product2 implements IProduct2 { public void show() { System.out.println("创建了2型产品"); } }
/* * 1A 1B属于Product1 同一产品等级结构中 * 2A 2B属于Product2 */ public class GradeProduct1A extends Product1 { @Override public void show() { super.show(); System.out.println("这是产品1下的:产品A"); } }
public class GradeProduct1B extends Product1 { @Override public void show() { super.show(); System.out.println("这是产品1下的:产品B"); } }
public class GradeProduct2A extends Product2 { @Override public void show() { super.show(); System.out.println("这是产品2下的:产品A"); } }
public class GradeProduct2B extends Product2 { @Override public void show() { super.show(); System.out.println("这是产品2下的:产品B"); } }
//抽象工厂 创建不同的抽象产品 public interface IFactory { public IProduct1 createProduct1A();//1类产品 型号A public IProduct1 createProduct1B();//1类产品 型号B public IProduct2 createProduct2A();//2类产品 型号A public IProduct2 createProduct2B();//2类产品 型号B }
//实体工厂 创建实体产品,返回类型为抽象产品 public class Factory implements IFactory { public IProduct1 createProduct1A() { return new GradeProduct1A(); } public IProduct1 createProduct1B() { return new GradeProduct1B(); } public IProduct2 createProduct2A() { return new GradeProduct2A(); } public IProduct2 createProduct2B() { return new GradeProduct2B(); } }
Related articles:
JAVA Design Pattern Abstract Factory Pattern
Comparison of PHP simple factory pattern, factory method pattern and abstract factory pattern
PHP object-oriented development - abstract factory pattern
The above is the detailed content of Detailed explanation of the specific code to implement the abstract factory pattern in Java. For more information, please follow other related articles on the PHP Chinese website!