第15期-Command命令模式
耦合是软件不能抵御变化灾难的根本性原因,不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系。在软件构建过程中,行为请求者与实现者通常呈现一种紧耦合,但在某些场合,这种无法抵御变化的紧耦合是不合适的,命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作,关于.NET 架构中的命令模式。
接着看
第25期-设计模式总结
设计模式建立在对系统变化点的基础上进行,哪里有变化点,哪里应用设计模式,设计模式应该以演化的方式来获得,系统的变化点往往是经过不断演化才能准确定位,不能为了模式而模式,设计模式是一种软件设计的软力量,而非规范标准,不应夸大设计模式的作用。
第24期-Visitor访问者模式
类层次结构中可能经常由于引入新的操作,从而将类型变得脆弱,由于需求的改变,某些类层次结构中常常需要增加新的行为方法,如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负担,甚至破坏原有设计。表示一个作用于某对象结构中的各元素的操作,它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。
第23期-Strategy策略模式
对象可能经常需要使用多种不同的算法,但是如果变化频繁,会将类型变得脆弱,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。策略模式定义一系列算法,把它们一个个封装起来,并且使它们可互相替换,该模式使得算法可独立于使用它的客户而变化。
第22期-State状态模式
对象拥有不同的状态,往往会行使不同的行为,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同,如何在运行时根据对象的状态来透明地更改对象的行为,而不会为对象操作和状态转化之间引入紧耦合?状态模式允许一个对象在其内部状态改变时改变它的行为,从而使对象看起来似乎修改了其行为。