2、工厂方法模式
用来生产同一等级结构中的固定产品(支持增加任意产品)
1、创建工厂方法接口
package com.design.model_02_factory.method;
//工厂方法模式
public interface CarFactory {
Car getCar();
}
2、创建工厂方法接口的实现类
1、特斯拉工厂类
package com.design.model_02_factory.method;
/**
* @program: designMode
* @description: 特斯拉工厂
* @author: lxf
* @create: 2021-09-09 13:27
*/
public class TeslaFactory implements CarFactory {
@Override
public Car getCar() {
return (Car) new Tesla();
}
}
2、五菱宏光
package com.design.model_02_factory.method;
/**
* @program: designMode
* @description: 五菱宏光工厂
* @author: lxf
* @create: 2021-09-09 13:34
*/
public class WuLingFactory implements CarFactory {
@Override
public Car getCar() {
return (Car) new WuLing();
}
}
3、消费者
package com.design.model_02_factory.method;
/**
* @program: designMode
* @description: 客户
* @author: lxf
* @create: 2021-09-09 13:35
*/
public class Consumer {
public static void main(String[] args) {
Car car = new WuLingFactory().getCar();
Car car1 = new TeslaFactory().getCar();
car.name();
car1.name();
}
}
简单工厂模式和工厂方法模式的对比
从结构复杂度:simple
从代码复杂度:simple
从编程复杂度:simple
从管理上的复杂度:simple
根据设计原则:工厂方法模式
根据实际业务:简单工厂模式