<正文>
早期的软件开发,基本都是面向过程开发。它逻辑顺畅,易于理解。基本上是顺着CPU运行的前后逻辑来展开的,有利于理解计算机的运行过程。
随着软件规模的扩大,人们认识到业务的复杂度开始超过计算机本身的复杂度,于是开始转向了面向对象开发。
面向对象,本质是代码逻辑对真实世界对象的模拟,从而使程序员对业务逻辑的理解变的容易。
代价是需要隐藏了代码在计算机中的运行逻辑,这就是C和C++的主要区别,即在编译器层面改变生成代码的规则。比如构造函数和析构函数的定义。
当进入到面向对象的阶段时,无非就有三个方面的情况需要注意:
1)如何构造对象,如何销毁对象 -----------> 构造型设计模式
2)对象间的关系是怎样(静态) ------------> 结构型设计模式
3)对象间如何通讯(动态) ------------> 行为型设计模式
一, 构造型
1, Factory模式。 隔离product变化点,提供一类对象的创建接口。
2, AbstractFactory模式。 隔离product变化点,提供一系列对象的创建接口。(本身就使用了Factory模式,可以理解为加强版的Factory模式)
3, Singleton模式。 创建单一实例。
4, Builder模式。 隔离product各部分的创建细节和创建顺序。
5,Prototype 模式。 Clone函数。
总结:不使用new来创建对象,通过另一个对象来创建对象,从而达到隔离对象使用者和对象创建者的变化点。
</正文>