0

如果我有一个对象,例如

class Car {
  boolean sold = false;
}

并且对象存在于视图层中,如果我想更改该值,这会更好:更改sold视图类中的值,例如

class CarView {
  Car car;

  onButtonAction() {
      car.setSold(true);
      //or: carService.sellCar(car)
  }
}

或者

使用像carService.sellCar(car);where这样的后端服务

class CarService {
    sellCar(car) {
        car.setSold(true);
    }
}

我应该将这些动作放在哪一层?从设计的角度来看,在视图类中应用这样的对象更改会不会是一个错误?

4

1 回答 1

1

当您有多个相互排斥的选项时,设计总是意味着找到一个最优值。因此,永远不可能有正确的设计,就您的设计目标而言,它总是只会变得更好或更糟(这也不是普遍有效/好的)。

如果服务经常更改,或者您的 UI 需要将数据提供给几个类似的服务,请创建一个服务,否则,您会发现自己一直在更改视图。另一个很好的理由是服务是可插入的(即客户可以配置应用程序以使用几个预定义的服务之一)。

如果您发现自己编写了数百个服务并且每个服务只使用一次,每个服务只有一个方法,等等。您可能在浪费时间。

于 2012-11-20T16:28:18.947 回答