1、单例模式
2、工厂方法
3、抽象工厂模式
(1)定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体类。
(2)核心:既要创建接口的对象,还要约束它们之间的关系。
(3)比较:工厂方法模式或简单工厂关注的是单个产品对象的创建,这里要解决的问题是,要创建一系列的产品对象,而且这一系列对象是构建新的对象所需要的组成部分,也就是这一系列被创建的对象相互之间是有约束的。
(4)介绍:在这个模式里面,会定义一个抽象工厂,在里面虚拟的创建客户端需要的这一系列对象,所谓虚拟的就是定义创建这些对象的抽象方法,并不去真的实现,然后由具体的抽象工厂的子类来提供这一系列对象的创建。这样一来可以为同一个抽象工厂提供很多不同的实现,那么创建的这一系列对象也就不一样了,也就是说,抽象工厂在这里起到一个约束的作用,并提供所有子类的一个统一外观,来让客户端使用。
(5)优点:
①分离接口和实现
②使得切换产品簇变得容易
(6)缺点:
①不太容易扩展新的产品
②容易造成类层次复杂
(7)本质:选择产品簇的实现
(8)场景:希望一个系统只是知道产品的接口,而不关心实现的时候;可以动态的切换产品簇的时候;如果要强调一系列相关产品的接口,以便联合使用它们的时候