Boolan 设计模式_2

主要内容:

本节主要讲对象创建和接口隔离各四种设计模式。

1. 对象创建模式

1.1 工厂模式

ISplitter *splitter = new BinarySplitter(); 这样写是编译时的依赖具体类,违反依赖倒置原则。
MainForm只依赖于抽象的ISplitter和SplitterFactory,并不依赖于具体类。
利用工厂方法创建具体的Splitter,延迟对象创建。

1.2 抽象工厂

解决一系列对象创建的工作。

1.3 原型模式

通过克隆自己创建对象,调用自己的拷贝构造函数 eg. new BinarySplitter(*this)。

1.4 构建器
  • eg. 构建房子
  • 在构造函数中调用虚函数是静态绑定,不是动态绑定。因为子类对象在构造时,先调用父类的构造函数,由于子类还没有构造出来,所以在调用父类构造中不能调用子类的虚函数。
  • 适用于:构建过程相同,但构建的各个部分不同的对象。
    分离house和housebuilder,housebuilder中有一个指向house的指针,获取house的成员。housedirector实现对house的构建过程,其中有一个指向housebuilder的指针,获取构造各个部件的方法。

2. 接口隔离模式

2.1 门面模式
  • 无论内部怎么变化,对外的接口还都是一致的。
  • “解耦”。
  • 一种架构设计思想。
2.2 代理模式
  • 两个对象之间增加一层间接层。
  • 在分布式系统中应用广泛。
2.3 适配器
  • 复用原有的类,但现有的接口和原有接口不一致情况使用。
  • 两种适配:
    (1)对象适配,运用组合,符合松耦合。
    (2)类适配,运用多继承,protected继承实现,不是继承接口。一般不推荐使用。
2.4 中介者
  • 多个对象相互关联的情况使用。
  • 用一个对象封装变化。

ps. 暂时写这么多,后面会边看书边补充。

你可能感兴趣的:(Boolan 设计模式_2)