创建型模式就是与对象的创建有关的模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、建造者模式和原型模式。
工厂模式
工厂模式就是用工厂方法代替new
来实例化对象的方式。主要目的是降低new
所带来的耦合关系。
简单工厂
工厂模式最简单的一种实现,隔离了new
的过程,但不满足开闭原则,由于简单工厂模式通常采用静态方法实现,因此也叫静态工厂,一般会配合反射一起使用。
工厂方法
主要目的是将类的实例化延迟到工厂类的子类中完成,即由子类来决定应该实例化哪一个类,对于客户端来说,消除了对具体产品的依赖。
抽象工厂
有了产品族概念,为相互关联或者相互依赖的对象提供一个统一的接口。
单例模式
解决的是实体对象个数的问题,即应对对象只需要创建一次的情况,当然,创建固定个数的情况也是可以的,现在更流行的方式是通过IOC容器实现。
建造者模式
主要用于动态的创建复杂的、具有复合属性的对象。从结构上可以看成是一个抽象工厂(生产相关联的部件)和一个简单工厂(组装完整的产品)的组合使用。建造者可以抽象并约束产品的建造流程。
原型模式
用于重复创建一个包含大量公共属性,或者初始化需要消耗大量资源的对象时,即主要用于实现对象的自我复制。
- 尽量将实现原型模式的类标记为
sealed
; - 尽量避免使用
ICloneable
接口。