设计模式——工厂方法模式(FactoryMethod)和抽象工厂模式(Abstract Factory)
来源:互联网 发布:日货清单 国人必知 编辑:程序博客网 时间:2024/06/06 00:33
工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory).
这两个模式没有很明显的区别,区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,我们就可能要将上例中Factory变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现。
下面关于是在网络中查到关于工厂方法模式与抽象工厂模式的概述和区别:
工厂方法模式:
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
抽象工厂模式相比工厂方法模式要复杂一些,这里针对抽象工厂模举例说明。如果能够理解抽象工厂模式,工厂方法模式就很easy了。
抽象产品角色:
public interface Creator
{
public ProductA factoryA();
public ProductB factoryB();
}
具体工厂类1:
public class ConcreteCreator1 implements Creator
{
public ProductA factoryA()
{
return new ProductA1();
}
public ProductB factoryB()
{
return new ProductB1();
}
}
具体工厂类2:
public class ConcreteCreator2 implements Creator
{
public ProductA factoryA()
{
return new ProductA2();
}
public ProductB factoryB()
{
return new ProductB2();
}
}
抽象产品类A:
public interface ProductA
{
}
抽象产品类B:
public interface ProductB
{
}
具体产品类ProdcutA1:
public class ProductA1 implements ProductA
{
public ProductA1()
{
}
}
具体产品类ProdcutA2:
public class ProductA2 implements ProductA
{
public ProductA2()
{
}
}
具体产品类ProdcutB1:
public class ProductB1 implements ProductB
{
public ProductB1()
{
}
}
具体产品类ProdcutB2:
public class ProductB2 implements ProductB
{
public ProductB2()
{
}
}
我个人理解抽象工厂模式是工厂方法模式的扩充。
- 设计模式——工厂方法模式(FactoryMethod)和抽象工厂模式(Abstract Factory)
- 设计模式——抽象工厂模式(Abstract Factory)
- 设计模式 —— 抽象工厂模式(Abstract Factory)
- 设计模式——抽象工厂模式(Abstract Factory)
- 深入浅出设计模式(2)——工厂和抽象工厂(Factory/Abstract Factory)
- 抽象工厂(Abstract Factory)设计模式
- 设计模式-抽象工厂(Abstract Factory)
- 抽象工厂(Abstract Factory)设计模式
- 设计模式-抽象工厂(Abstract Factory)
- 设计模式——(Abstract Factory)抽象工厂
- 设计模式——抽象工厂(Abstract Factory Pattern)
- 设计模式 一 抽象工厂Abstract Factory(工厂模式)
- 简单工厂,Factory Method(工厂方法)和Abstract Factory(抽象工厂)模式
- 工厂方法模式(Factory Method)和抽象工厂模式(Abstract Factory)-----基于JAVA语言
- 设计模式——抽象工厂模式【Abstract Factory Pattern】
- Java设计模式 —— 抽象工厂模式 (Abstract Factory)
- JAVA设计模式 — 抽象工厂模式(Abstract Factory)
- 设计模式(3)抽象工厂模式(Abstract Factory)
- Javascript 心得 (待续)
- 软件开发生命周期
- 指针
- mvc 和 三層架構有什麽區別
- Silverlight 最佳学习Blog
- 设计模式——工厂方法模式(FactoryMethod)和抽象工厂模式(Abstract Factory)
- JSP开发应用--环境配置
- 关于进程间的通信
- delphi 中dataset的 bookmark的使用
- 软件测试之验收测试
- 9大绝招吃掉了亚健康
- blog_css
- 常用测温方法
- 几个数据库案例分析