如果我有一个对象,例如
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);
}
}
我应该在哪一层放置这些动作?从设计的角度来看,在视图类中应用这样的对象更改是错误的吗?
答案 0 :(得分:1)
当您有多个相互排斥的选项时,设计始终意味着找到最佳选择。所以永远不会有一个正确的设计,它总是只会对你的设计目标更好或更差(这也不是普遍有效/好的)。
如果服务经常更改或您的UI需要将数据提供给多个类似的服务,请创建服务,否则,您将发现自己一直在更改视图。另一个很好的理由是服务是可插拔的(即客户可以将应用程序配置为使用多种预定义服务之一)。
如果您发现自己编写了数百种服务,而且每种服务只使用一次,每种服务只有一种方法,等等,您可能会浪费时间。