背景:
我们拥有一间车厂,可以接受奔驰厂商和福特厂商的订单。但由于我们是黑心厂商,发扬我大天朝山寨的特色,给2个厂商的车造成一模一样,造完之后贴个车标就完成了。
于是身为厂长的我们就开始改装车厂的流水线。
UML图:
这是也是我们的施工图。我们需要根据不同的订单厂商,贴不同的车标。
interface iCar{
public String getCarName();
}
public class ford implements iCar{
@Override
public String getCarName(){
return "福特车";
}
}
public class mercedesBenz implements iCar{
@Override
public String getCarName(){
return "大奔";
}
}
class carFactory{
public static iCar bulidCar(String type){
switch (key) {
case "ford":
return new ford ();
break;
case "daBen"
return new mercedesBenz();
break;
default:
System.out.printIn("你小子接私活呢!没让你接的单子怎么跑车间里来了!");
return null;
break;
}
}
}
这样就组建好了我们的简单工厂,只要根据不同厂商的订单名称就能获得我们想要的车啦!
class Test{
public static void main(String[] args) {
iCar mCar = carFactory.bulidCar("daBen");
System.out.printIn("媳妇儿,我买了一辆" + mCar.getCarName() + "回家!");
}
}
这就是我们的简单工厂模式。
需要一个定义功能的接口,其余业务类继承这个接口
然后创建一个工厂,依赖于具体实现业务的类,根据不同的情况,创建不同的产品。