怎样才能开发出好的软件(五)

 

行为型模式:观察者模式、模板方法模式、命令模式、状态模式、职责链模式、解释器模式、中介者模式、访问者模式、策略模式、备忘录模式、迭代器模式。

观察者模式:

 

怎样才能开发出好的软件(五)

       模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。其实就是通过把不变的行为搬到超类中,去除子类中的重复代码。何时使用他就显而易见了,当不变的喝可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现,这时候我们就可以用模板方法模式,将这些重复的行为搬到一个单一的地方,也就是超类中,这样就提高了代码的复用率。

命令模式:

怎样才能开发出好的软件(五)

       状态模式是当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。它主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然,如果这个状态判断很简单,就没有必要用状态模式了。当一个对象的行为取决于他的状态,并且它必须在运行时刻根据状态改变他的行为时就可以考虑使用状态模式了。状态模式的好处就是他将与特定状态有关的行为放到一个ConcreteState中,所以通过定义新的子类就可以很方便的增加新的状态和转换了。有了状态模式就省略了判断状态转换的条件了,其实也不是省略了,只不过是把这个判断的条件都转移到ConcreteState中了。

职责链模式:

怎样才能开发出好的软件(五)

       职责链模式就是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。每一个处理者类都有一个设置下一个后继者的方法和一个处理请求的方法,这两个方法就保证了一个处理请求链存在的可能。这种模式使得接收者和发送者都没有对方的明确信息,并且链中的对象也不知道链的结构,它们只需要保持一个指向后继者的引用,从而大大降低了耦合度,并且可以随时改变或者增加处理一个请求的结构,增强了灵活性。但是需要注意的是有可能一个请求到了链的末端都没有得到处理,所以事先要考虑全面。

       剩下的几个行为型设计模式留到后面再说

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33896 人正在系统学习中

来源:lixueru0819

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年11月10日
下一篇 2011年11月11日

相关推荐