《大话设计模式》——简单工厂模式

简单工厂模式需要有三个组成角色:

1、工厂类角色:负责生成具体产品类。

2、抽象产品角色:代表了具体产品的一个抽象类或是接口。

3、具体产品角色:最后生成的实例对象即是它。

 

我们以一个车辆选择的例子来作说明:

1、工厂类:此例中代表我们想要选择的车型,可以是“benz”和"audi"。

public class CarFactory {

  //根据我们的输入参数,返回一个具体的产品类 public static Car createCar(String carname){ Car car = null; switch (carname) { case "benz": car = new Benz(); break; case "audi": car = new Audi(); break; default: break; } return car; } }

2、抽象产品类:此例中代表了车的共同特性,例如可以开driver();

public interface Car {

    void driver();
}

3、具体产品类:由工程模式生成的实体类。在这里有两个具体产品类,一个是Benz,一个是Audi。

public class Benz implements Car {

    @Override
    public void driver() {
        System.out.println("driver Benz!");
    }

}
public class Audi implements Car {

    @Override
    public void driver() {
        System.out.println("driver Audi!");
    }

}

客户端代码:在这里我们想要一台benz车,于是调用工厂类生成benz。如果我们想要一台audi车,可以输入参数audi即可。

    public Main() {
        Car car = CarFactory.createCar("benz");
        car.driver();
    }

 

简单工厂模式的缺点:

我们每添加一个实体类,就需要在工厂类中添加一个case分支。这里的工厂类被称为万能工厂。

 

posted @ 2017-07-13 11:18  一响贪欢  阅读(205)  评论(0编辑  收藏  举报