当我仔细观察策略和工厂设计模式时,其外观几乎相似。我们可以使用任何一种模式来实现解决方案。然后我想知道什么时候使用什么。
设计Abstract Factory模式用于解决以下问题:
- 系统如何独立于其对象的创建方式?
- 如何独立更改对象的创建方式
(无需更改现有类)?
该模式的关键思想是抽象对象创建的过程。
客户端(需要创建对象)引用抽象(接口)并且独立于实现(如何创建对象/实例化哪些具体类)。
何时不使用抽象工厂:创建不改变的对象(当实例化的具体类永远不改变时)。
设计Strategy模式用于解决以下问题:
- 对象如何支持使用不同的算法
,以便可以动态选择和更改要使用的算法?
- 如何独立更改算法的实现方式
(无需更改现有类)?
例如,在订单处理系统中计算价格。
为了以不同的方式计算价格,应该可以支持不同的定价算法,以便可以在运行时动态选择和更改要使用的算法。
此模式的关键思想是将算法(发生变化)与其上下文分离(并将其封装在单独的对象中)。
如需进一步讨论,请参阅用于学习面向对象设计和编程的 GoF 设计模式记忆,网址为:http://w3sdesign.com。
| 归档时间: |
|
| 查看次数: |
1081 次 |
| 最近记录: |