码迷,mamicode.com
首页 > 其他好文 > 详细

类关系设计模式小结

时间:2014-11-04 17:23:51      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:设计模式   对比   策略模式   观察者模式   装饰者模式   

前面简单的学习了策略模式、观察者模式、装饰者模式,三种模式主要用于处理类之间的关系,三种模式循序渐进,后面的模式可以说是对前一模式的完善

策略    模式:一对一的类关系,模式中存在一个核心和多个算法,但是核心只能从这多个算法中选择一个进行使用,也算是一个缺点,从而引入观察者模式

观察者模式:一对多的类关系,模式中存在一个主题和多个观察者,此时主题可以持有多个观察个,并使用其方法。但也可以发现,观察者的复用性较低,基本上绑定了主题。

装饰者模式:多对多的关系,模式中可以存在多个装饰者和多个组件,同时组件也可能是一个装饰者,一个装饰者可以装饰多个组件,一个组件也可以拥有多个装饰者。


每种模式都有其局限性,即适用于处理一定范围内的问题,没有通用的模式,只有解决问题的模式。

简单整理一下三种模式适用的【问题域】

策略模式:

1.多个类只表现为行为不同,其他结构体基本相同,如工资结算,类结构区别多在计算方法中不同。

2.需要在不同情况下使用不同算法,或者在可预期内,算法实现方式会发生变化。

3.隐藏具体实现细节(将核心技术保留在自己手中)。

观察者模式

1.抽象个体有两个相互依赖的层面,封装这些对象,使之可以随意修改同时不会影响依赖关系之间的交互

2.一个对象的变化会影响其他对象,但是又不知道被影响对象的数量

3.对象有能力通知其他对象,但又不知道具体实现细节

装饰者模式

1.需要扩展一个类的功能,或者给一个类附加一个职责

2.动态的扩展类的功能

3.需要实现大量由基本功能排列组合而成的功能

4.不能使用继承的方式进行扩充时,一种情况是,可能有大量的独立扩展,使得子类数目过多;另一种情况,类定义被隐藏或不能用于生产子类

类关系设计模式小结

标签:设计模式   对比   策略模式   观察者模式   装饰者模式   

原文地址:http://blog.csdn.net/sunshoupo211/article/details/40744053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!