天天看点

Java设计模式--抽象工厂模式抽象工厂模式(别名:配套)Abstract Factory Pattern(Another Name: Kit)类图模式的结构与使用简单的例子抽象工厂模式的优点适用抽象工厂模式的情景下载源码请到

提供一个创建一系列或相互依赖对象的接口,而无需指定它们具体的类。

provide an interface for creating an families of related or dependent objects without specifying their concrete classes。

Java设计模式--抽象工厂模式抽象工厂模式(别名:配套)Abstract Factory Pattern(Another Name: Kit)类图模式的结构与使用简单的例子抽象工厂模式的优点适用抽象工厂模式的情景下载源码请到

工厂方法模式的结构中包括四个角色。

+ 抽象产品(product):抽象类或接口,负责定义具体产品必须实现的方法。

+ 具体产品(concrete product):具体产品是一个类,如果product是一个抽象类,那么具体产品是product的子类;如果product是一个接口,那么具体产品去实现接口。

+ 构造者(creator):一个接口或者抽象类。构造者负责定义一个称作工厂方法的抽象方法,该方法返回具体产品类的实例。

+ 具体构造者(concrete creator):具体构造者重写工厂方法使该方法返回具体产品的实例。

抽象工厂模式可以为用户创建一系列相关的对象,使用户和创建这些对象的类脱耦。

使用抽象工厂模式可以方便的为用户配置一系列对象。用户使用不同的具体工厂就能得到一组相关的对象,同时也能避免用户混到不同系列的对象中。

在抽象工厂模式中,可以随时增加“具体工厂”为用户提供一组相关的对象。

系统需要为用户提供多个对象,但不希望用户直接使用new运算符实例化这些对象,即希望用户和创建对象的类脱耦。

系统需要为用户提供多个相关的对象,以便用户联合使用它们,但又不希望用户来决定这些对象是如何关联的。

系统需要为用户提供一系列对象,但只需要用户知道这些对象有哪些方法可用,不需要用户知道这些对象的创建过程。

<a href="https://github.com/androidwolf">mygithub</a>