创建型模式
工厂:工厂方法---子类决定实例化那个类,抽象工厂---创建相关对象无需指定具体类。
原型:拷贝对象来创建新的对象
单例:确保一个类只有一个实例,自行实例化对外提供
建造者:对象的创建与表示想分离,同样的创建可以创建不同的表示
一、工厂方法与抽象工厂
一、定义:
工厂方法模式是用来创建一个产品的等级结构的,抽象工厂模式是用来创建多个产品的等级结构的
二、目的
1)重点在于"怎么创建",围绕着一种产品的构造,初始化这些细节上面,产品之间有很多可以复用的特征,所以会和模版方法相随,
工厂方法模式通常和模板方法模式一起结合使用。
2)重点在于"创建哪些"产品上,划分不同差异的产品线,并且尽量保持每条产品线接口一致,从而可以从同一个抽象工厂继承。
三、区别:
工厂方法创建一般只有一个方法,创建一种产品。
抽象工厂一般有多个方法,创建一系列产品。
工厂方法模式是采用inheritence,而抽象工厂模式是采用composition
抽象工厂模式与工厂方法模式的最大区别在于,
1、工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构
2、区分产品族和等级结构。