java设计模式--抽象工厂
2013-09-06 11:48
381 查看
1、抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。
2、 一个系统不应当以来与产品类实例如何被创建、组合和表达细节,这对于所有形态的工厂模式是重要的。
这个系统的产品有多于一个产品族,而系统只消费其中某一族的产品。
同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中表现出来。
系统一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖与实现。
3、抽象工厂对“开-闭”原则的支持
对于产品族的增加,抽象工厂符合“开-闭”原则,而对于产品层次的增加,抽象工厂不符合“开-闭”原则。
4、实例
public abstract class AbstractFactory {
abstract public AbstractProductA CreateProductA();
abstract public AbstractProductB CreateProductB();
}
2、 一个系统不应当以来与产品类实例如何被创建、组合和表达细节,这对于所有形态的工厂模式是重要的。
这个系统的产品有多于一个产品族,而系统只消费其中某一族的产品。
同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中表现出来。
系统一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖与实现。
3、抽象工厂对“开-闭”原则的支持
对于产品族的增加,抽象工厂符合“开-闭”原则,而对于产品层次的增加,抽象工厂不符合“开-闭”原则。
4、实例
public abstract class AbstractFactory {
abstract public AbstractProductA CreateProductA();
abstract public AbstractProductB CreateProductB();
}
public class ConcreteFactory extends AbstractFactory { @override public AbstractProductA CreateProductA() { return new ProductA(); } @override public AbstractProductB CreateProductB() { return new ProductB(); } } public abstract class AbstractProductA { protected abstract void use(); } public abstract class AbstractProductB { protected abstract void use(); } public class ProductA extends AbstractProductA { @Override protected void use() { System.out.println("A"); } } public class ProductB extends AbstractProductB { @Override protected void use() { System.out.println("B"); } }
public static void main(String[] args) { ConcreteFactory mFactory = new ConcreteFactory(); AbstractProductA mAbstractProductA = mFactory.CreateProductA(); AbstractProductB mAbstractProductB = mFactory.CreateProductB(); }
相关文章推荐
- JAVA设计模式之二抽象工厂
- JAVA设计模式之二抽象工厂
- JAVA设计模式之二抽象工厂
- java设计模式--创建型模式--抽象工厂
- JAVA设计模式之二抽象工厂
- JAVA设计模式之二抽象工厂
- [Java] 设计模式之工厂系列 02-面向抽象编程 抽象工厂 - 缺点 : 产生新的产品品种的时候,改动太多
- java设计模式-抽象工厂
- Java设计模式笔记之抽象工厂代码示例
- JAVA设计模式之二抽象工厂
- JAVA设计模式之二抽象工厂
- [Java] 设计模式之工厂系列 02-面向抽象编程 抽象工厂 - 缺点 : 产生新的产品品种的时候,改动太多
- Java设计模式之抽象工厂
- java设计模式之工厂设计模式(简单工厂设计模式、工厂设计模式、抽象设计模式)
- JAVA设计模式之二抽象工厂
- JAVA设计模式之二抽象工厂
- java设计模式笔记之抽象工厂
- 总结:java设计模式之----抽象工厂
- JAVA设计模式之二抽象工厂
- JAVA设计模式之二抽象工厂