《Java与模式》学习笔记——Abstract Factory
Posted brooksychen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Java与模式》学习笔记——Abstract Factory相关的知识,希望对你有一定的参考价值。
抽象工厂(Abstract Factory)模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。 抽象工厂模式与工厂方法模式的最大区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构。 为了方便引进抽象工厂模式,特地引进一个新的概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构中,功能相关联的产品组成的家族。 抽象工厂模式的结构图如下: 源代码: public interface Creator ...public ProductA factoryA();
public ProductB factoryB();
public class ConcreteCreator1 implements Creator ...
public ProductA factoryA() ...
return new ProductA1();
public ProductB factoryB() ...
return new ProductB1();
public class ConcreteCreator2 implements Creator ...
public ProductA factoryA() ...
return new ProductA2();
public ProductB factoryB() ...
return new ProductB2();
public interface ProductA ...
public class ProductA1 implements ProductA ...
public ProductA1() ...
public class ProductA2 implements ProductA ...
public ProductA2() ...
public interface ProductB ...
public class ProductB1 implements ProductB ...
public ProductB1() ...
public class ProductB2 implements ProductB ...
public ProductB2() ...
在以下情况下应当考虑使用抽象工厂模式: 1. 一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。 2. 这个系统的产品有多于一个的产品族,而系统只消费其中某一族的产品(这一条是抽象工厂模式的原始用意)。 3. 同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。 4. 系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。 当系统中的产品族增加时,抽象工厂模式是支持“开-闭”原则的;但对于产品等级结构的增加,抽象工厂模式不支持“开-闭”原则。
以上是关于《Java与模式》学习笔记——Abstract Factory的主要内容,如果未能解决你的问题,请参考以下文章
《Java与模式》学习笔记——Abstract Factory