【设计模式】创建型
创建型设计模式是对类的实例化过程进行抽象。
简单工厂模式
根据传入参数返回不同对象
缺点:当对象具体类型增加时,需要修改工厂代码,添加新的具体类型判断和生成逻辑,违反了开闭原则
工厂方法模式
不仅将具体对象抽象,同时将工厂也抽象,解决新增加具体类型时需要修改工厂代码的问题,但是需要新建工厂
缺点:维护具体类型对象的同时需要维护工厂类型,增加了系统的复杂度
抽象工厂模式
将工厂进一步抽象,不仅用于生产同一种产品,改为生产同一族产品,例如:Benz抽象工厂具体实现,生产轮子,也生产车架,生产发动机。将同一族对象的生产抽象到一个工厂
缺点:扩展不方便,新增工厂时可能添加新的生产方法从而需要修改抽象工厂
单例模式
一个类一个实例
生成器模式
将复杂的创建流程分割,例如创建某个对象需要十几个参数,但实际常用的只有几个。将产品本身与产品的创建过程解耦,可参考 @Builder
原型模式
用于复制已有对象。通过被复制类实现copy接口的copy方法,以便能获取private等成员变量值。即:复制方法由被复制类提供