23种设计模式(工厂模式)
(愿岁月清净)
1.工厂模式分类
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
2.工厂模式说明
比如需要一辆汽车,工厂模式可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。
3.具体
1. 简单工厂模式
汽车生产:
- 汽车类
public interface Car {
void name();
}
- 五菱汽车类:
public class WuLing implements Car{
public WuLing() {
this.name();
}
@Override
public void name() {
System.out.println("WuLing");
}
}
- 奥迪汽车类
public class AoDi implements Car{
public AoDi() {
this.name();
}
@Override
public void name() {
System.out.println("AoDi");
}
}
- CarFactory类:
public class CarFactory {
public static Car getCar(String car) {
if(car.equals("五菱")){
return new WuLing();
}
else if(car.equals("奥迪")) {
return new AoDi();
}
else{
return null;
}
}
}
2. 工厂方法模式(Factory Method)
定义一个抽象工厂,其定义了产品的生产接口,但不负责具体的产品,将生产任务交给不同的派生类工厂。这样不用通过指定类型来创建对象了。
工厂方法模式实在原有工厂模式上的扩展,解决当产品需扩展而不得不修改工厂中代码的问题
CarFactory:
public interface CarFactory {
Car getCar();
}
专门生产五菱的工厂,奥迪工厂也是一样:
public class WuLingFactory implements CarFactory {
@Override
public Car getCar() {
return new WuLing();
}
}
消费者只需获取工厂并调用其方法即可获取产品:
public class Consumer {
public static void main(String[] args) {
Car wuling = new WuLingFactory().getCar();
wuling.name();
Car aodi = new AoDiFactory().getCar();
aodi.printCar();
}
}
3. 抽象工厂模式(Abstract Factory)
下次更新噢~~~~~~