设计模式3

来源:互联网 发布:创建目录 linux 编辑:程序博客网 时间:2024/06/06 11:28

九、建造者模式


主要用于创建一些复杂的对象,这些对象内部的建造间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。


十、观察者模式


将一个系统分割成一系列互相协作的类有一个很不好的副作用,就是需要维护相关对象间的一致性,不希望为了维护一致性而使得类紧密耦合,因此出现此模式。

解除耦合,让耦合的双方都依赖于抽象,而不是具体实现。

尽管应用了依赖倒转原则,但是抽象通知者还是依赖抽象观察者。万一没有抽象观察者这样的接口。

事件委托:

委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托可以看做是对函数的抽象,委托的实例代表一个具体的函数。但是委托对象所搭载的方法必须要有相同的参数列表和返回值类型。


十一、抽象工厂模式


优点:易于交换产品系列,由于具体工厂类,在一个应用中只需要初始化的时候出现一次,这使得改变一个应用的具体工厂变得非常容易,只需要改变具体工厂即可使用不同的产品配置。   其二,让具体的创建实例过程与客户端分离,客户端通过他们的抽象接口操作,产品的具体类名也被具体工厂的实现分离。

缺点:增加一个产品,需要较大的改动。

因此抽象工厂解决的是创 建一系列有共同风格的产品。而工厂方法模式解决的创建有共同特征的一系列产品。当然简单工厂的缺陷在抽象 工厂中又再次出现了,我要新增加一个产品,工厂抽象接口就要改变了。

  • 一个系统要由多个 产品系列中的一个来配置时用抽象工厂模式

十二、状态模式

状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。把不同状态的行为分割开来。




0 0