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が複数の同様のサービスにデータをフィードする必要がある場合は、サービスを作成します。そうしないと、常にビューが変更されることになります。もう1つの理由は、サービスがプラグイン可能である場合です(つまり、顧客は、いくつかの事前定義されたサービスの1つを使用するようにアプリケーションを構成できます)。

何百ものサービスを作成していて、それぞれが1回だけ使用されている場合、それぞれにメソッドが1つしかない場合など、おそらく時間を無駄にしていることになります。

于 2012-11-20T16:28:18.947 に答える