设计模式重温--创建型模式

设计模式看了不下10遍了。不过每次看都会有不同的理解,和自己的项目经验有关系。

下面再次总结一下对设计模式的一些简单理解。

具体设计模式内容不记录了,这里只是简单精要的说明一下自己对各种模式的理解。


第一大类,创建型模式

1.abstract factory抽象工厂<直接创建对象>

目的,提供创建一系列相关对象的接口,无需指定他们的具体类。

说白了,就是提供一系列创建对象的接口,这些接口干嘛用的呢,就是用来创建各种完整的最终对象。


Room* r = factory.MakeRoom(); //直接构建对象Room


2.builder生成器<先构建子对象,然后在构建最终的对象>

目的,将复杂的对象构建过程封装起来,使得同样的构建函数,达到不同的构建结果。

其实这个模式可以理解成abstract factory的延伸,这里要把abstract factory里面提到的"创建各种完整的最终对象"扩展成提供创建一个完整对象的各种子接口,就是让用户可以随便组合子接口,最后得到一个想要的对象。

createMaze(Builder& builder) {

builder.BuildMaze();//构建迷宫

builder.BuildRoom(1);//构建一个房间

builder.BuildRoom(2);//构建另一个房间

return builder.GetMaze();//这里才返回最终的对象

}


3.factory method工厂方法<抽象创建对象的接口>

目的,定义一个用于创建对象的接口,让子类决定实例化哪一个类。

这个模式其实就是abstract factory细化,把创建对象的接口抽象出来成为抽象基类里面的抽象方法了,在子类里面随便定义各种接口的具体实现了。

C++/Java里面经常用模板类来实现这个模式。


4.prototype原型

目的,通过克隆技术实现创建对象。

一般需要实现一个方法clone()


最后是用得最多的singleton

5.singleton单件

目的,保证程序运行中只存在一个该类的实例。

你可能感兴趣的:(设计模式重温--创建型模式)