1.简单工厂
通过不同的类名参数(A或B)创建不同的实例A、B,AB有共同的父类;
优点:创建简单
缺点:添加产品需要添加新的if else
2.工厂方法
产品有抽象的父类;
工厂有抽象的工厂;
不同的对象用不同的工厂产生;
优点:耦合少,减少修改,开放扩展;
缺点:不同的对象要创建工厂;
3.抽象工厂
产品变成产品组
仍然违反开闭原则;
使用场景 new 对象的时候解耦合防止后面对象要修改创建时,所有new的地方都要修改,只用修改工厂里的就行;
1.简单工厂
通过不同的类名参数(A或B)创建不同的实例A、B,AB有共同的父类;
优点:创建简单
缺点:添加产品需要添加新的if else
2.工厂方法
产品有抽象的父类;
工厂有抽象的工厂;
不同的对象用不同的工厂产生;
优点:耦合少,减少修改,开放扩展;
缺点:不同的对象要创建工厂;
3.抽象工厂
产品变成产品组
仍然违反开闭原则;
使用场景 new 对象的时候解耦合防止后面对象要修改创建时,所有new的地方都要修改,只用修改工厂里的就行;