Agile Software Development Principles, Patterns,and Practices 第13-17章读书笔记

command模式

    该模式仅由一个具有唯一方法的接口组成。

    适用范围:数据库事务操作、设备控制、多线程核心以及GUI的do/undo管理。

template method模式和strategy 模式

    用途:都可以分离通用的算法和具体的上下文。都允许高层的算法独立于它的具体实现细节重用

    区别:

        1.template method 模式使用继承实现,而strategy 模式使用委托实现

        2.template method模式通用算法被放置在基类中,并且通过继承在不同的上下文中实现该通用算法。但是这项技术是有代价的。继承是一种非常强的关系。派生类不可避免的要和他们的基类绑定在一起。

            strategy模式通用抽象算法定义在接口中,然后从接口派生出具体类,之后把具体类传递给调用者,调用者就可以把具体工作委托给接口完成。

           3. strategy模式比template method 模式涉及更多数量的类和间接层次。

            4.template method 模式部分违反了DIP,strategy完全遵循DIP原则。

    说明:优先使用对象组合,而不是类继承

facade模式和mediator模式

    两个模式具有共同的目的。他们把某种策略施加到另外一组对象上,facade模式从上面施加策略,而mediator模式则是从下面施加策略。facade模式的使用是明显而受限的,而mediator模式的使用是不明显且不受限制的。

singleton模式和monostate模式

    用途:在强制要求某个特定对象只能有一个单一实例的时候使用。

    实现技术:

        1.singleton模式使用私有构造函数,一个静态变量,以及一个静态方法对实例化进行控制和限制。

        2.monostate模式把对象的所有变量变成静态的。

null object模式

    使用null object模式,可以确保函数总是返回有效的对象,即使在他们失败时也是如此,这些代表失败的对象“什么也不做”。

你可能感兴趣的:(Agile Software Development Principles, Patterns,and Practices 第13-17章读书笔记)