创建类模式主要关注:
对象的创建过程,将对象的创建过程进行封装,使客户端直接得到对象,而不用去关心创建对象的细节。
创建类模式有5种:
- 单例模式(Singleton):
用于得到内存中唯一对象
- 工厂方法模式(Factory method):
用于创建复杂对象
- 抽象工厂模式(Abstract factory):
用于创建一组相关或相互依赖的复杂对象
- 建造者模式(Builder):
用于创建模块化的更加复杂的对象
- 原型模式(Prototype):
用于得到对象的一个拷贝
为什么需要创建性模式:
(1)在编程中,对象的创建是一件比较复杂的事,因为,为了达到降低耦合的目的,我们通常采用面向抽象编程,对象间的关系不会硬编码到类中,而是等到调用的时间再进行组装,这样虽然降低了对象间的耦合,提高了对象的复用性,但是在一定程度上将组装类的任务都交给了最终调用的客户端程序,大大的增加了客户端的复杂度。采用创建型模式的优点之一就是将组装对象的过程封装到一个独立的类中,这样既不会增加对象间的耦合,又可以最大限度的减小客户端的负担
(2)使用普通的方式创建对象,一般都是返回一个具体的对象,即面向实现编程,这与设计模式原则是相违背的。采用创建类模式则可以实现面向抽象编程。客户端要求的只是一个抽象的类型,具体返回什么样的对象,由创建者自己决定。
(3)可以对创建对象的过程进行优化,客户端关注的只是得到对象,对对象的创建过程则不关心,因此,创建者可以对创建的过程进行优化。例如,在特定的条件下,单例模式和原型模式都可以优化系统的性能。
总结:
所有的创建类模式本质上都是对对象的创建过程进行封装。
设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。