什么是工厂设计模式?
工厂设计模式就是用来生产对象的,它使用一个单独的类来生产对象,而不是让调用者直接使用new来创建对象。
优缺点
工厂设计模式使得创建对象的逻辑不会暴露,并且其最大的优点便是使得程序员与对象进行解耦。
其主要缺点为没增加一个产品,就要增加对应的实现类和对象实现工厂,增加了系统复杂度。
分类
1.简单工厂
2.抽象工厂
简单工厂
创建产品接口:
1 | public interface Shape { |
创建产品实现类:
1 | public class Rectangle implements Shape{ |
创建工厂类:
1 | public class ShapeFactory { |
测试:
1 | public class Test { |
应用场景
抽象工厂
与简单工厂模式不同的是,抽象工厂模式多出了一个超级工厂(工厂接口),围绕超级工厂类,创建其他工厂类,再围绕工厂类,创建实体类。
抽象工厂可以生产一组相关(不止一类)的产品。
创建产品1接口及实现类:
1 | public interface Cpu { |
创建产品2接口及实现类:
1 | public interface Screen { |
超级工厂:
1 | public interface PhoneFactory { |
A工厂:
1 | public class APhoneFactory implements PhoneFactory{ |
B工厂
1 | public class BPhoneFactory implements PhoneFactory{ |
参考:
https://www.runoob.com/design-pattern/factory-pattern.html
https://www.jianshu.com/p/38493eb4ffbd
https://xin-tan.com