状态模式与职责链模式

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


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值