设计模式创建型总结

创建型设计模式一共有5个:

单例模式:Singleton,保证一个类只有一个实例,并提供一个访问它的全局访问点 

抽象工厂模式:Abstract Factory,提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。

简单工厂模式:Factory Method,定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。

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

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

简单工厂模式与抽象工厂模式的区别:

工厂模式:创建一种产品,当你发现,有一个接口可以有多种实现的时候,可以考虑使用工厂方法来创建实例。

抽象工厂:创建一组产品,当你发现,有一组接口可以有多种实现方案的时候,可以考虑使用抽象工厂创建实例组。

抽象工厂模式与建造者模式的区别:

抽象工厂:每一次工厂对象被呼叫时都会传回一个完整的产品对象,而使用端有可能会决定把这些产品组装成一个更大的和复杂的产品,也有可能不会。工厂对象是没有状态的,不知道上一次构建的是哪一个产品,也没有未来的概念,不知道下一次构建的是哪一个产品,更不知道自己构建的产品在更高层的产品结构蓝图中是什么位置。

建造模式:建造模式的重点在导演者角色。导演者对象是有状态的,它知道整体蓝图,知道上一次、这一次和下一次交给建造者角色去构建的零件是什么,以便能够将这些零件组装成为一个更大规模的产品。它一点一点地建造出一个复杂的产品,而这个产品的组装程序就发生在导演者角色内部。建造者样式的使用端拿到的是一个完整的最后产品。

换言之,抽象工厂模式处在更加具体的尺度上,而建造模式则处于更加宏观的尺度上。一个系统可以由一个建造模式和一个抽象工厂模式组成,使用端通过呼叫这个导演角色,间接地呼叫另一个抽象工厂模式的工厂角色。工厂模式传回不同产品族的零件,而建造者模式则把它们组装起来。

饿汉式与懒汉方式的区别:

饿汉方式:指全局的单例实例在类装载时构建。 急切初始化。速度快,不调用时也创建。

懒汉方式:指全局的单例实例在第一次被使用时构建。延迟初始化。速度慢,调用时才创建

这个主要是在单例模式中涉及到了,至于采用哪种单例模式主要还是依情形而定。

影子克隆与深度克隆的区别:

影子克隆:对基本数据类型,克隆是没有问题的,但对非基本类型变量,保存的仅仅是对象的引用,克隆的仅仅是基本数据类型,并没有完全克隆,这种克隆也被称为"影子克隆"。

深度克隆:克隆把基本类型和非基本类型变量完全克隆出另一个对象,这种克隆也被称为"深度克隆"。

原文地址:https://www.cnblogs.com/hnhcc39/p/2615709.html