假设有一个CarFactory class
,它会classes
扩展FerrariFactory
和VolvoFactory
。每个类都有一个List<Car> build(List<CarPart>)
方法
现在有一个要求,即对于任何给定的List<CarPart>
,必须返回最佳的汽车列表。
将逻辑放在CarFactory.build
?
CarFactory
List<Car> build(List<CarPart>)
split car part list into optimal car part sub-lists for each factory
instantiate car factories and pass in the sub-list of car parts
return collection of cars
或者像CarBuilder
类这样的另一个类会这样做会更好吗?我可以用一种典型的设计模式来解决这个问题吗?
答案 0 :(得分:-1)
我认为,构建器中的任何逻辑都是反模式的,因为实例化新对象应该非常快且相当。
我的意思是,构建器中的最大代码 - 只有一个运算符new ClassName(params...)
。
如果你需要任何逻辑 - 将它移动到新的小类,解决这个问题:
List <Car> CarFactory.build (params...) {
return new CarLogicSolver(params).list();
}
你可以在java.util.stream.Collectors.toSet,.toList,toMap等中看到很好的例子。