设计模式之——行为型模式一

来源:互联网 发布:手机360全景软件 编辑:程序博客网 时间:2024/06/11 04:54
【1】引入
      常见行为型模式有11种:职责链、命令、解释器、迭代、中介者、备忘录,观察者、状态、策略、模版方法、访问者。这里先介绍一部分。

【2】单个模式简介
一:观察者模式:
            定义对象之间的一种一对一或者一对多的依赖关系,也就是行为上产生某种依赖关系,分离了目标和观察者。当一个对象(即目标)的状态发生改变时,所有依赖于它的对象(观察者)都得到通知并改变自己。

二:模板方法模式:
       模板方法给出了逻辑的骨架,而其中的抽象操作推迟到子类中实现。使得子类可以不改变逻辑的骨架也可以定义该算法的某些特定步骤。

三:命令模式:
            命令模式把请求一个操作的对象(即命令)与执行者分离开来,达到解耦的目的。将一个请求封装为一个对象,具体的请求可被不同的请求者重用,还可以记录请求日志,以及支持可撤销的操作。
四:状态模式:
           状态模式允许一个对象的内部状态改变时改变它的行为,看起来这个对象好像是              改变了这个类。可以这样理解,即状态模式把多个状态分隔开来放到抽象状态类的子类中,内部状态的改变引起行为的改变。消除switch..case的逻辑判断语句。
          当一个对象的行为取决于它的状态,即根据状态来改变自己的行为时,就要设计到状态模式。
五:职责链模式:
            当有多个对象可以处理同一个请求时,职责链模式就将发送者和处理者分离,然后将所有能处理这请求的对象(即处理者)连成一条链,沿着链传递请求,直到被处理为止。

【3】模式之间分析
            1·观察者模式VS命令模式VS职责链模式
                       首先这三个模式的共同点来说,首先都是达到解耦的目的,其次都作为行为型             模             式来说,主要作用于两者对象的通信方式上,充当中间行为的传递者。
                       针对于它们的区别,就我认为:观察者模式仅仅是解除了观察者和目标的紧耦合关系;而命令模式的话,除了分离请求发送者和具体实现者之间的紧耦合关系,其次,命令小姐(服务员)可以在不同时刻指定、排列、执行和记录请求,也可支持取消和重做的操作;而职责链模式的话,除了分离请求发送者和具体实现者之间的紧耦合关系外,还对具体实现者这些对象可作调整,以达到最终请求被处理的目的。
【4】总结
        行为型模式涉及到算法和对象间的职责分配,不再单单涉及到类和对象,更主要集中描述类与对象之间的通信方式,类和对象如何关联。

0 0