4.抽象工厂模式
Posted Kyhoon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.抽象工厂模式相关的知识,希望对你有一定的参考价值。
1.抽象的产品类
//不变 public abstract class AbstractProductA { //伪代码,具体功能按照实际 需求添加方法 } //不变 public abstract class AbstractProductB { }
2.抽象的工厂类
//不变 public abstract class AbstractFactory { public abstract AbstractProductA CreateProductA(); public abstract AbstractProductB CreateProductB(); }
3.客户端的程序
//不变 public class Client { private AbstractFactory factory; public Client(AbstractFactory factory){ this.factory=factory; } public AbstractProductA GetProductA(){ return this.factory.CreateProductA(); } public AbstractProductB GetProductB(){ return this.factory.CreateProductB(); } }
至此,以上都是应用抽象工厂基本不变的代码。接下来就是具体的实现类,也就是根据变化的需求给出变化的代码
4.具体产品类
public class ProductA1 extends AbstractProductA{ } public class ProductA2 extends AbstractProductA { } public class ProductB1 extends AbstractProductB { } public class ProductB2 extends AbstractProductB { }
5.具体工厂类
public class FactoryA extends AbstractFactory { @Override public AbstractProductA CreateProductA() { return new ProductA1(); } @Override public AbstractProductB CreateProductB() { // TODO Auto-generated method stub return new ProductB1(); } } public class FactoryB extends AbstractFactory { @Override public AbstractProductA CreateProductA() { // TODO Auto-generated method stub return new ProductA2(); } @Override public AbstractProductB CreateProductB() { // TODO Auto-generated method stub return new ProductB2(); } }
6.应用
AbstractFactory factory=new FactoryA();//读取配置文件 Client client=new Client(factory); client.GetProductA(); client.GetProductB();
//实际应用中,只需要把实例化工厂类的代码改成读取配置文件,那以后如果要新增产品,那只需要新增具体的产品类和工厂类,并修改下配置文件,就整体替换了。
以上是关于4.抽象工厂模式的主要内容,如果未能解决你的问题,请参考以下文章
设计模式抽象工厂模式 ( 简介 | 适用场景 | 优缺点 | 产品等级结构和产品族 | 代码示例 )