7.创建型模式总结

来源:互联网 发布:探究小车速度实验数据 编辑:程序博客网 时间:2024/06/06 07:21

【目的】

         创建型模式解决 与“对象创建”相关 的问题。

 

【相似点和不同点】

         一。Singleton解决 如何限制“对象个数”问题; Prototype, Fatory Method, Abstract Factory, Builder解决“单独封装创建过程”问题。

         二。Singleton, Prototype都将“创建过程”集成到了类的内部; Factory Method, Abstract Factory, Builder都用一系列工厂类“封装创建过程”。

         三。Prototype, Factory Method都是针对“单个类”; Abstract Factory, Builder都是针对“一系列相关的类”。

         四。Prototype在创建对象时,已进行了初始化; Factory Method只是new出一个全新对象。

         五。Abstract Factory是对Factory Method的横向扩展(扩展到相关的多个类),Builder是对Abstract Factory的完善(用相关的多个类组合出一个新的类)

         六。都是在想方设法减轻Client的工作,把活揽到了自己手里。

 

【核心】

         类模式的使用:在Client的代码中用“父类变量”引用“具体类对象”,起到一个宏的作用(一变都变);“父类变量”所赋的值是“具体类对象”,可以直接new,也可以通过读取配置文件中具体类的信息(然后反射得到具体类)动态创建;

 

【优点】

         其实也是类模式的优点:将Client中同一类对象(多个创建点)“抽象”到了“父类工厂”(一个点),减少了对象类型变化时的“修改点”。

         这正是创建型设计模式的真正目的:将变化点封装到类库中,减轻Client在应对类型变化时的工作!(付出的代价是创建多余的工厂类)