批注:builder模式

https://www.kancloud.cn/sstd521/design/193625

director(角色是boss or 产品经理) ----->(包含or使用)builder(工程师)----->(包含or使用)Product(最终产品)
director作用,根据程序员 requirement,调用builder,给builder传入requirement parameters(eg:createCar(bmwBuilder, "BMW的引擎", "benz的轮胎");)
builder根据requirement parameters,生产engine和wheel。然后add成product。
这个有个小tricky,可以增加一个Blueprint class。builder 调用 Blueprint 具体生产engine和wheel,然后返回给builder(getBlueprint().getWheel();)
product从builder返回给director,在返回给程序员使用。

builder模式和工厂模式区别:
工厂模式:定义接口,然后根据接口实现不同厂家产品
代码清单30-19 抽象工厂
public interface CarFactory {
     //生产SUV
     public ICar createSuv();
     //生产商务车
     public ICar createVan();
}
代码清单30-20 宝马车工厂
public class BMWFactory implements CarFactory {
     //生产SUV
     public ICar createSuv() {
             return new BMWSuv();
     }
     //生产商务车
     public ICar createVan(){
             return new BMWVan();
     }
}
builder模式:代码清单30-23 车辆产品描述 到代码清单30-30 场景类
工厂模式理解为工厂,builder模式更详细下到车间,上到公司(direct将所有类型工厂都放到它里面了,比如BMWVan和Benz等)
builder 详细到生产product的各个零件,然后组装后成产品。
factory模式到整体产品级别。

other:
https://blog.csdn.net/carson_ho/article/details/54910597

猜你喜欢

转载自blog.csdn.net/fdsafwagdagadg6576/article/details/81570149