如果我有一个物体,例如
class Car {
boolean sold = false;
}
并且该对象存在于视图层中,如果我想更改该值会更好:在像这样的视图类中更改
sold
值class CarView {
Car car;
onButtonAction() {
car.setSold(true);
//or: carService.sellCar(car)
}
}
要么
使用像
carService.sellCar(car);
这样的后端服务,其中class CarService {
sellCar(car) {
car.setSold(true);
}
}
这些动作应该放在哪一层?从设计的角度来看,在视图类中应用这样的对象更改是否会出错?
最佳答案
当您有多个彼此排斥的选择时,设计总是意味着找到最佳选择。因此,永远不可能有一个正确的设计,就您的设计目标而言(总的来说,这也不是普遍有效/良好的)总是好事或坏事。
如果服务经常更改,或者您的UI需要将数据提供给几个类似的服务,请创建一个服务,因为否则,您会发现自己一直在更改视图。另一个很好的理由是服务何时可插入(即客户可以将应用程序配置为使用几种预定义服务之一)。
如果您发现自己编写了数百个服务,而每个服务仅使用一次,则每个服务只有一个方法,依此类推。您可能会浪费时间。