您的位置:首页 > 其它

设计模式之5 多方法的工厂模式

2018-02-01 13:42 417 查看

多方法工厂模式

uml类图



相较于上一篇,稍作改动即可。

MultiMachineFactory.java

/**
* @author heshiyuan
* @description <p></p>
* @path java-design-pattern/com.hsy.java.design.pattern.method
* @date 2018/1/30 16:01
* @github http://github.com/shiyuan2he * @email shiyuan4work@sina.com
* Copyright (c) 2018 shiyuan4work@sina.com All rights reserved.
* @price ¥5    微信:hewei1109
*/
public class MultiMachineFactory {
/**
* 造自行车
*/
public static Machine createBike() {
return new Bike();
}

/**
* 造小汽车
*/
public static Machine createCar() {
return new Car();
}

/**
* 造卡车
*/
public static Machine createTruck() {
return new Truck();
}
}


测试类

public class MultiMethodClientTest {
@Test
public void createMachine(){
// 打包给客户的集装箱
List<Machine> list = new ArrayList<>() ;

/**
* 1.客户下订单,开始造车(2辆汽车,2两卡车,2两自行车)
*/
// 造汽车生产线
for(int i=0;i<2;i++){
list.add(MultiMachineFactory.createCar());
}
// 造卡车生产线
for(int i=0;i<2;i++){
list.add(MultiMachineFactory.createTruck());
}
// 造自行车生产线
for(int i=0;i<2;i++){
list.add(MultiMachineFactory.createBike());
}

//客户开始测验每辆车的性能
list.forEach(ele -> {
ele.start() ;
ele.speed();
ele.stop();
if(ele instanceof Car){
((Car) ele).blow();
}
if(ele instanceof Truck){
((Truck) ele).blow();
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息