工厂方法模式(Factory Method Pattern)草书
2009-04-21 19:32
190 查看
一。工厂方法(Factory Method)
从耦合关系谈起
耦合关系直接决定着软件面向变化时的行为。
模块如何划分,就是设计模式的问题。
1.紧耦合关系:相关的模块都要随之更改。
2.松耦合关系:一些模块更容易更改,替换,其他模块不变。
把软件划分成主次关系。
把主的
软件公理:抽象部分(主要部分)变化慢,次要部分变化快。
二。动机
“某个对象”的创建工作。由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它确拥有比较稳定的接口。如果不符合上述要求,那就不适宜使用Factory Method
找出变的部分和不变的部分。
假如接口也变了,那就不行了。。。
每个设计模式都有它自己的使用范围。。
每个设计模式的使用都会依赖于某个不变的东西。。
如何应对这种变化?如何提供一种“封装机制”来隔离“这个易变对象”的变化,从而保持系统中“其他依赖该对象的对系那个”不随着需求改变而改变。。
辅逻辑的
定义一个用于创建对象的接口
二。代理模式
增加一间接层,从而对系统获得一种更为灵活,满足特定需求的解决方案。
A---->B 更改为 A--->C---->B
A,C位于同一个地址空间。
加入A需调用3次B,使用代理,则只需调用C3次,而C调用B一次,就完成任务。
直接和间接的关系。。。
例如:操作系统为硬件和操作(人)之间的一个代理。。。
动机:
有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者,或者系统结构带来很多麻烦。
意图:为其他对象提供一种代理以控制对这个对象的访问。
从耦合关系谈起
耦合关系直接决定着软件面向变化时的行为。
模块如何划分,就是设计模式的问题。
1.紧耦合关系:相关的模块都要随之更改。
2.松耦合关系:一些模块更容易更改,替换,其他模块不变。
把软件划分成主次关系。
把主的
软件公理:抽象部分(主要部分)变化慢,次要部分变化快。
二。动机
“某个对象”的创建工作。由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它确拥有比较稳定的接口。如果不符合上述要求,那就不适宜使用Factory Method
找出变的部分和不变的部分。
假如接口也变了,那就不行了。。。
每个设计模式都有它自己的使用范围。。
每个设计模式的使用都会依赖于某个不变的东西。。
如何应对这种变化?如何提供一种“封装机制”来隔离“这个易变对象”的变化,从而保持系统中“其他依赖该对象的对系那个”不随着需求改变而改变。。
辅逻辑的
定义一个用于创建对象的接口
二。代理模式
增加一间接层,从而对系统获得一种更为灵活,满足特定需求的解决方案。
A---->B 更改为 A--->C---->B
A,C位于同一个地址空间。
加入A需调用3次B,使用代理,则只需调用C3次,而C调用B一次,就完成任务。
直接和间接的关系。。。
例如:操作系统为硬件和操作(人)之间的一个代理。。。
动机:
有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者,或者系统结构带来很多麻烦。
意图:为其他对象提供一种代理以控制对这个对象的访问。
相关文章推荐
- 工厂方法模式(Factory Method Pattern)应用篇(直接使用工厂方法)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)理论篇
- 工厂方法模式【Factory Method Pattern】
- 工厂方法模式(Factory Method Pattern)(转)
- Net设计模式实例之工厂方法模式( Factory Method Pattern)
- 极速理解设计模式系列:9.工厂方法模式(Factory Method Pattern)
- 2.工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(英语:Factory method pattern)
- 设计模式-工厂方法模式(factoryMethod pattern)
- 设计模式(创建型)之工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory method pattern)
- 浅谈 java 设计模式--工厂方法模式(Factory Method pattern)
- 工厂方法模式( Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- .NET设计模式(2) - 工厂方法模式(Factory Method Pattern)