23种设计模式(工厂模式)

23种设计模式(工厂模式)

(愿岁月清净)

1.工厂模式分类

  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式

2.工厂模式说明

比如需要一辆汽车,工厂模式可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。

3.具体

1. 简单工厂模式

汽车生产:

  1. 汽车类
public interface Car {
    void name();
}
  1. 五菱汽车类:
public class WuLing implements Car{
    public WuLing() {
        this.name();
    }
    @Override
    public void name() {
        System.out.println("WuLing");
    }
}
  1. 奥迪汽车类
public class AoDi implements Car{
    public AoDi() {
        this.name();
    }
    @Override
    public void name() {
        System.out.println("AoDi");
    }
}
  1. 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)

下次更新噢~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值