设计模式总结2--创建型模式

今天我们讨论了创建型模式。创建型模式包括五种设计模式:工厂方法模式、建造者模式、抽象工厂模式、原型模式、单例模式。

创造型模式:创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。

                                                                                                                                                        ---百度经验

简单来讲,创建型模式就是将对象的创建与实现进行了分离,使程序更加灵活,易修改,易复用。

P.S:由于上一篇博客我已经讲解过两工厂的用法,这里不做过多解释。

1.建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

1.1 UML图:

1.2 模式解析:建立一个产品需要各种方法,而这些方法的步骤是稳定的,因此先定义一个Builder抽象类来提前约束这些方法,使得执行这些方法的子类必须重写这些方法;但每个子类方法内的细节却不尽相同。

所以当客户端要求生产产品A的时候,通过Director类向目标具体建造者类下达命令,进行生产;而若客户端又要要求生产产品B时,Director再向生产B的具体类下达命令即可...

1.3 模式适用情况:当建造复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时所适用的模式。

2.原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

2.1 UML图:

2.2 模式解析:就是从一个对象中再创建另一个可定制的对象,并且这个要新创建的对象不需要知道从原型克隆过来的创建细节。

2.3 深复制与浅复制:

浅复制:被复制对象的所有变量都含有与原对象相同的值,而所有对其他对象的引用仍指向原来的对象。

深复制:将要复制的对象所引用的对象全部复制一遍。

结合值类型与引用类型来理解:对于值类型而言,浅复制与深复制没什么区别;而对于引用类型而言,浅复制就只能复制引用(只是给新对象传了地址,而值还是指向了旧对象对应的值),深复制却可以将引用的变量指向复制过的新对象。

2.4 模式适用情况:在需要重复地创建相似对象时可以考虑使用原型模式。

3.单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

3.1 UML图:无

3.2 模式解析:这个模式的概念不难理解,实现方法就是在Singleton类中添加一个私有的构造函数并添加一个方法,使得这个类只能通过自己且只能建立一个对象。

3.3 模式适用情况:单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。(借鉴博客:https://www.cnblogs.com/restartyang/articles/7770856.html,感谢巨人)

猜你喜欢

转载自blog.csdn.net/Marshallren/article/details/88648205
今日推荐