设计模式之工厂模式 - 工厂方法模式
一、简介 概念:定义了一个创建对象的抽象方法,由子类决定要实例化的类,将对象实例化推迟到子类进行。 按照前面讲解的简单工厂模式,假如随着需求不断变化,系统需要优化,想将宝马汽车、奔驰汽车等不同品牌的汽车分开生产,可能后面会扩展不同品牌不同厂家这种情况。针对这种情况,我们可以使用工厂方法模式创建不同品牌汽车的工厂,这样的话,他们之间互不影响。后面如果想扩展其他品牌的话,也无需改动旧代码,直接添加多一个工厂实现类即可。 二、工厂方法模式 相关类图如下: 通过类图可以看到,工厂方法模式有四个要素: 抽象工厂类:抽象工厂类是工厂方法模式的核心,与调用者直接交互用来提供产品,可以是接口,也可以是抽象类。 具体工厂实现:工厂实现是具体的实例化对象的类,如果需要扩展新的产品种类,就增加多一个工厂的实现即可。 产品接口:产品接口的主要目的是定义产品的规范,所有的产品实现都必须遵循产品接口定义的规范。产品接口是调用者最为关心的,产品接口定义的优劣直接决定了调用者代码的稳定性。同样,产品接口也可以用抽象类来代替,但要注意最好不要违反里氏替换原则。 产品实现:实现产品接口的具体类,决定了产品在客户端中的具体行为。 具体代码实现如下: 【a】ICar汽车接口 /** * @Description: ICar汽车接口 * @author: weixiaohuai * @Date: 2019/10/19 20