意图:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
。
别名:
Kit
结构:
代码示例:
AbstractFactory类
public abstract class AbstractFactory {
public abstract AbstractProductA createProductA();
public abstract AbstractProductB createProductB();
}
ConcreteFactory类
public class ConcreteFactory1 extends AbstractFactory {
@Override
public AbstractProductA createProductA() {
return new ProductA1();
}
@Override
public AbstractProductB createProductB() {
return new ProductB1();
}
}
public class ConcreteFactory2 extends AbstractFactory {
@Override
public AbstractProductA createProductA() {
return new ProductA2();
}
@Override
public AbstractProductB createProductB() {
return new ProductB2();
}
}
AbstractProduct类
public abstract class AbstractProductA {
}
public abstract class AbstractProductB {
}
public class ProductA1 extends AbstractProductA {
}
public class ProductA2 extends AbstractProductA {
}
public class ProductB1 extends AbstractProductB {
}
public class ProductB2 extends AbstractProductB {
}
Client类
public class Client {
public static void main(String[] args) {
AbstractFactory factory1 = new ConcreteFactory1();
AbstractFactory factory2 = new ConcreteFactory2();
AbstractProductA productA1 = factory1.createProductA();
AbstractProductA productA2 = factory2.createProductA();
AbstractProductB productB1 = factory1.createProductB();
AbstractProductB productB2 = factory2.createProductB();
}
}
缺点:
难以支持新种类的产品,解决这个缺点的方法很多。
适用性:
在以下情况可以使用Abstract Factory模式
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
相关模式:
Abstract Factory类通常用工厂方法(Factory Method)实现,但它们也可以用Prototype实现。一个具体的工厂通常是一个单件(Singelton)。
- 大小: 19.1 KB
分享到:
相关推荐
Abstract_Factory抽象工厂Abstract_Factory抽象工厂Abstract_Factory抽象工厂Abstract_Factory抽象工厂
里面是整个抽象工厂的实现,具体可以参见我的博客 http://blog.csdn.net/renlei0109/article/details/25242983
AbstractFactory.rar qq:292258449
设计模式C++学习之抽象工厂模式(AbstractFactory)
抽象工厂模式(Abstract Factory Pattern) 引入: 在前面介绍的两个创建型模式里面,我们解决的都是有关"new"的问题,用它们来避免显式指定类创建对象。我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂...
3、抽象工厂模式(Abstract Factory Pattern) 用意:一个工厂生产一系列产品
博客 走进设计模式之抽象工厂(Abstract Factory) 对应代码
设计模式抽象工厂模式(AbstractFactory)源代码
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式) 体验课程
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
C#设计模式之抽象工厂(abstract factory)模式示例源代码
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式) (Level 300)
生产餐具和相应食物的工厂,有两个车间,其中一个车间用以生产餐具,一个车间用以生产相应的食物。 每个具体工厂生产出来的具体产品根据不同工厂的不同各不相同,但是客户使用产品的方法是一致的。比如客户在得到...
逻辑模型:物理模型:抽象工厂的目的是要提供一个创建一系列相关或相互依赖对象的接口,而不需要指定它们具体的类。这种模式可以汽车制造厂所使用的金属冲压设备中找到。这种冲压设备可以制造汽车车身部件。同样的...
java之 抽象工厂模式(abstract factory) 之水果类和蔬菜类 (香蕉、梨、黄瓜、大蒜),北方市场,南方市场。。
设计模式 抽象工厂 Abstract Factory 抽象工厂模式
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式),.net常用设计模式。
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/1032977