目录
1.3、使用 newInstance 方法进行类注册的简单工厂模式
2.1、案例场景:假设有一个汽车工厂,目前只生产两种车型,小型跑车和大型家用车。顾客决定买小还是大型。
2.2、这时候,我们需要拓展业务,增加卡车类的生产,那我们可以创建一个卡车工厂(TruckFactory)。
场景描叙:
比如小汽车(Car)和 卡车 (Truck)都属于车辆(Vehicle),那我们实例化对象时,就需要分别实例化两个对象。
Vehicle vehicle = new Car();
Vehicle vehicle = new Truck();
以上的代码就存在两个问题:
1)类应该保持对扩展开放,对修改关闭(开闭原则);
每增加新的类造成主要代码修改会打破开闭原则。
2)每个类应该只有一个发生变化的原因(单一职责原则);
而主类除了自身固有功能还要负责实例化 vehicle 对象,这种行为打破了单一职责原则。
所以这种情况下就需要一种更好的设计方案。我们可以增加一个新类来负责实例化 vehicle 对象,称之为简单工厂模式。