工厂方法模式--应用最广(创建型模式02)

什么是工厂方法模式?
定义一个用于创建对象的接口,让子类决定实例化哪个类。
在任何需要生成复杂对象的地方,都可以使用工厂方法模式。用new就可以完成的创建无需要使用工厂方法模式。

工厂方法四大模块:

  1. 抽象工厂角色(AbstractFactory)
  2. 具体工厂角色(ConcreteFactory)
  3. 抽象产品角色(AbstractProduct)
  4. 具体产品角色(ConcreteProduct)

这个和下一个模式抽象工厂方法模式里是一样的,都有四类角色。

工厂方法的应用
结合例子来分析吧,汽车厂生产汽车吧,这个模式下假如我们的需求没有那么大,我们只生产国产的东风汽车。他有搭配轮胎和引擎的方法吧。

东风车厂类:

public interface IDongFengFactory{
    IDongFengCar createCar();
}
public class DongFengFactory implements IDongFengFactory{
    public IDongFengCar createCar(){
        return new DongFengCar();   
    }
}

东风汽车类:

public interface IDongFengCar{
    public void createTire();
    public void createEngine();
}
public class DongFengCar implements IDongFengCar{
    public void createTire(){
        system.out.println("我是轮胎");
    }
    public void createEngine(){
        system.out.println("我是引擎");
    }
}

主类调用:

public static void main(String[] args){
    IDongFengFactory df = new DongFengFactory();
    IDongFengCar car = df.createCar();
    car.createTire();
    car.createEngine();
}

运行结果:

我是轮胎
我是引擎

至此一辆东风车就造好了,零件搭配齐全。

总的来说。工厂方法设计还是很实用的,代码系统结构清晰,将要生产的产品具体细节操作封装起来,使用者只关心调用接口就是,不用担心他汽车怎么造的过程。
但是工厂方法模式也有不好的地方就是我们要引入新的产品,比如新增加进口汽车就要重新写的产品类,还要引入新的接口,从而导致整体文件多起来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值