设计模式学习--抽象工厂模式

模式定义

提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。

模式结构

1.AbstractFactory抽象工厂

用于声明生成抽象产品的方法,在一个抽象工厂中可以定义一组方法,每一个方法对应一个产品等级结构

public abstract class AbstractFactory {
    public abstract AbstractProductA createProductA();
    public abstract AbstractProductB createProductB();
}
2.ConcreteFactory具体工厂

具体工厂实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。

public class ConcreteFactory1 extends AbstractFactory{

    @Override
    public AbstractProductA createProductA() {
        return new ConcreteProductA1();
    }

    @Override
    public AbstractProductB createProductB() {
        return new ConcreteProductB1();
    }

}
3.AbstractProduct抽象产品

抽象产品为每种产品声明接口,在抽象产品中定义了产品的抽象业务方法。

4.ConcreteProduct具体产品

具体产品定义具体工厂生产的具体产品对象,实现抽象产品接口中定义的业务方法。


抽象工厂模式图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计原则: 要依赖抽象,不要依赖具体类 目录 本文的结构如下: 什么是抽象工厂模式 为什么要用该模式 模式的结构 ...
    w1992wishes阅读 4,806评论 0 6
  • 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一...
    justCode_阅读 4,913评论 1 6
  • 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。通常我们所说的工厂模式是指工厂方法模...
    zfylin阅读 5,111评论 0 7
  • 昨天我们学校有活动,早上我便早早的起床,按照老师说的,我开始准备着装,吃早点,和往常一样来到学校,我们整整...
    高金鑫a阅读 24评论 0 0
  • 给睿睿报了秋月湖“小喜鹊”活动,今天就不能睡懒觉了,不到七点,我就开始叫醒睿睿。昨天晚上和她说好要早起,一叫睿睿就...
    a晟睿阅读 3,831评论 0 0