工厂,顾名思义,就是用来生产某种物品的组织。在程序设计的过程中,我们一般用它来生产对象。程序设计过程中,我们把某一类对象的生产操作交给制定的工厂,比如CarFactory 、AnimalFactory分别用来生产不同的汽车和不同的动物。
对象的统一管理,提高开发效率,便于维护比如我们之前需要一个汽车对象 Car car = new Car();用一次new一次,用100次就要new一百次,比如某一天,产品提了一个需求,要将所有的燃油汽车车牌类型全部换成新能源,于是乎,我们开始一个一个的修改。但是如果我们使用的工厂模式,我们只需要在源头上做一个简单的修改操作,实现全局修改的需求。
直接通过一个Factory类创建多个实体类对象
public abstract class SimpleBeanFactory { abstract Object getBean(String objFlag); }
public class SimpleObj extends SimpleBeanFactory { @Override Object getBean(String objFlag) { if (Objects.equals("A", objFlag)) { return new ObjA(); } else if(Objects.equals("B", objFlag)) { return new ObjB(); } return null; } }
一个抽象产品类,可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类只能创建一个具体产品类的实例。
一个接口interface AnimalBeanFactory,多个抽象类 abstract class DogFactory ;abstract class CatFactory, 其中DogFactory用来生产 泰迪、金毛、萨摩.... CatFactory用来生产 美短、英短、土猫...