《Java与模式》学习笔记之二---工厂方法模式(Factory Method)
来源:互联网 发布:怎么用手机看网络电视 编辑:程序博客网 时间:2024/05/22 01:39
问题:
在学习笔记一中曾提到简单工厂模式的缺点是对"开-闭"原则支持不够, 当系统中有新产品加入时, 必须修改工厂类, 添加必要的逻辑在工厂类中.
为了克服简单工厂模式的缺点, 引入了工厂方法模式. 即增加一个抽象工厂接口, 仅负责给出具体工厂类必须实现的接口, 不负责哪个抽象类被实例化的细节.
工厂方法模式可以使系统在不修改具体工厂类的情况下添加新产品.
类图:
* 抽象工厂接口
* 负责给出具体工厂类必须实现的接口
*/
public interface Factory
{
public Product factory();
}
* 具体工厂类
* 负责创建具体产品类ConcreteProduct1.
*/
public class ConcreteFactory1 implements Factory
{
public Product factory()
{
return new ConcreteProduct1();
}
}
* 具体工厂类
* 负责创建具体产品类ConcreteProduct2.
*/
public class ConcreteFactory2 implements Factory
{
public Product factory()
{
return new ConcreteProduct2();
}
}
* 抽象产品接口
*/
public interface Product
{
}
* 具体产品类ConcreteProduct1
*/
public class ConcreteProduct1 implements Product
{
public ConcreteProduct1()
{
//do something
}
}
* 具体产品类ConcreteProduct2.
*/
public class ConcreteProduct2 implements Product
{
public ConcreteProduct2()
{
//do something
}
}
* 客户端代码.
*/
Factory theConcreteFactory1 = new ConcreteFactory1();
Factory theConcreteFactory2 = new ConcreteFactory2();
Product aConcreteProduct1 = theConcreteFactory1.factory();
Product aConcreteProduct2 = theConcreteFactory2.factory();
注意:
1) 在给类和方法取名时应让人明显看出系统应用了工厂方法模式
2)抽象工厂类可以定义多个工厂方法, 这些方法可以提供不同逻辑, 满足提供不同产品对象的目的.
- 《Java与模式》学习笔记之二---工厂方法模式(Factory Method)
- 7种创建型模式 之2 FACTORY METHOD 工厂方法模式 《Java与模式》学习笔记
- java与模式 工厂方法(factory method)
- 设计模式之二 工厂方法模式 Factory Method
- java设计模式学习 ----- 工厂方法模式(Factory Method)
- java与模式--工厂方法模式 factory method
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]
- JAVA设计模式之 工厂方法模式【Factory Method Pattern】
- java模式 之工厂方法模式(Factory Method)
- Java开发之设计模式--工厂方法模式(Factory Method)
- Java设计模式之工厂方法模式【Factory Method Pattern】
- 创建模式之二:工厂方法(Factory Method)
- 软件设计模式系列之二 FACTORY METHOD(工厂方法)
- 二、工厂方法模式(Factory Method Pattern)
- 二、工厂方法(Factory Method) 模式
- 设计模式C++学习笔记之五(Factory Method工厂方法模式)
- 设计模式C++学习笔记之五(Factory Method工厂方法模式)
- 设计模式C++学习笔记之五(Factory Method工厂方法模式)
- 某"面霸"疯狂应聘IT名企的经历 另附试题
- 经典唐诗配画欣赏
- Finish Data Structure Examination
- 防范windows消息钩子的入侵
- 名企献身说法:我们喜欢这样的简历
- 《Java与模式》学习笔记之二---工厂方法模式(Factory Method)
- 子网掩码的简便算法 划分子网的方法
- 特殊用途的IP地址介绍
- 编程急转弯
- 主题: 心理测试
- http错误 401.3 ACL 禁止访问资源 解决办法
- “绝招”也需打假——以讹传讹四例
- 开源软件Asterisk:386变身交换机
- datagrid(web应用)