行为型模式(一)

       行为型模式:涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的结构,还描述他们之间的相互关系。这些模式刻画了在运行时难以跟踪的复杂的控制流。它们将注意力从控制流转移到对象间的联系方式上来。使用继承机制在类间分派行为。    主要有的模式:

       观察者模式(Observer):定义了对象间的一种一对多的依赖关系,让多个观察者同时监某一个主题对象,当一个对象的状态发生变化是,所有依赖与它的对象都得到通知并被自动更新。它所做的工作其实就是在解除耦合,让耦合的双方都依赖于抽象,而不是依赖于具体,从而使得各自的变化都不会影响另一边的变化。

                                          

         命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;可以对请求排队或记录请求日志,以及支持可撤销的操作。

在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者或者被请求的操作者是什么,我们只需要在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。例如灯作为接收者,开关作为发送者,那么他们之间的命令就是靠电线传递的。

                       


      模板方法模式(TemplateMe):是基于继承的代码复用基本技术,它的技术核心是定义一个操作的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可长定义该算法的某些特定步骤。即抽象一个类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来让子类实现剩余逻辑。

                              

     状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的状态的一系列类当中,可以把复杂的判断逻辑简单化。其好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。

                     

职责链模式(Chain ofResponsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

这个模式使得接收者和发送者都没有对方的明确信息,且链中的对象自己也不知道链的结构。结果是职责链可简化对象的相互连接,它们仅需要保持一个指向其后继者的引用,而不需保持它所有的候选接收者的引用。并可以随时增加或修改处理一个请求结构,增强了给对象指派职责的灵活性。

                      


评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值