工厂模式 factoryPattern
解决问题:解决了使用何种接口的问题
原理:创建对象的接口,由其子类实现实例化哪一个工厂类,使得实例化类的过程延迟到子类进行
使用场景:根据不同条件创建不同的实例
关键代码:创建对象的过程在子类进行
优点:
1调用者知道名称即可,不用关心具体是哪个实例,如draw() 方法,客户不用关心是哪种car,只要工厂返回汽 车调用car即可
2扩展性能高,如新增一种产品,扩展工厂类即可
缺点
增加一种产品需要对应的增加工厂类和具体对象,增加类的依赖和复杂度
使用场景
日志记录,数据库访问
注意事项:作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过 new 就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度
idea 生成类图