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

状态模式与职责链模式

时间:2015-03-29 20:59:02      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:设计模式   合作   优化   对象   

	在学习设计模式的时候发现状态模式与职责链模式特别的相似,当时没有能理解,现在回过头来看了看,查
 了查资料,明白了一点,先把自己的理解写下来,在以后的学习继续深入学习
 一、状态模式
     当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
     类图
	技术分享
     Context类就是用户当前定义的一个状态,而抽象状态类State就是用来解决特定状态的方法,其下有很
 多的子类会针对用户定义的状态不同而选择不同的子类方法;可以说抽象类State是解决Context类的方法,
 它的子类是针对不同的状态而分成的不同的方法(State类与其子类的关系可以理解为组合关系)
 二、职责链模式
    使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链
 并沿着这条链传递该请求,直到有一个对象处理它为止
    类图
       技术分享
    Handler是一个接口类,其下的对象,用来处理用户的请求,他们会按照一定的顺序执行下去,直到有一
 个对象可以处理为止
 三、比较
    单独从上边来看,两者几乎是没有区别的,那还分成两个模式干什么?事实上两者的区别还是挺大的
    1.描述问题的角度不一样:状态模式是从用户的状态方面描述的;职责链模式是从管理者角度描述的,每
 个对象处理问题的结果都为两种情况是或否
    2.状态模式是类的不同状态的多种不同的反映;职责链模式是不同类对同一个问题的反映
    3.状态模式的子类是从抽象类中分离出去的;职责链模式是针对一类问题的结构优化,在处理问题时森严
 的等级关系
 四、总结
    这两个模式现在只是在理论上有了一点点理解,还需要在实践中亲自动手去做,在机房合作的时候要用到
 这两个模式,加深对两者之间区别的联系


状态模式与职责链模式

标签:设计模式   合作   优化   对象   

原文地址:http://blog.csdn.net/husen1314/article/details/44729837

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