简单工厂设计模式(2021-3-18)
简单工厂模式要求所有得产品必须有共同的接口或者父类,是属于同一个产品系列的。 定义产品共同的接口: 新建类(继承接口,实现接口的方法): 定义含有main()方法的test类,使对象实例化(没有采用工厂设计模式): 可以看出没有采用工厂设计模式之前,对象的创建以及对象的使用没有分开,都由开发者搞定。 简单工厂设计模式: 解耦对象的创建与使用的分开 对象的创建由专门的工厂搞定,开发者直接从工厂中获取已经创建好的产品即可。
定义一个工厂类,里面含有返回值为接口的方法(该方法含有参数,根据传递参数的值创建不同类型的对象): 修改测试类: 首先创建一个工厂(SimpleFactory对象),不需要创建商品,直接从工厂获取即可(调用工厂对象的方法创建商品对象)。相当于在工厂类中new了继承接口的类的对象赋值给了接口并返回,按照多态原则,调用方法时调用的是实际创建类中重写override的方法。 也可以连工厂也不创建,将生产产品的方法设为静态方法: 该方法还是有缺点,如果要增加产品种类要修改工厂类SimpleFactory,不符合开闭原则,如下图增加产品种类Product4。
