データをロード、保存、更新するためのメソッドを持つデータ オブジェクトがあります。次に、このデータをより複雑に操作するためのオブジェクトを用意します。そのためには、データ オブジェクトから精巧なデータを必要とします。
そこで、操作オブジェクトが知る必要がある特定の質問に答えるために、データ オブジェクトにメソッドを追加し始めました。操作オブジェクトには、操作または何らかの機能に厳密に関連するメソッドしかありませんが、データオブジェクトに関する情報はそれによって作成されます。操作するオブジェクトが要求し、操作されるオブジェクトが応答します。最初に想像した通りです。それから、それらがオブジェクトを操作するメソッドまたは拡張メソッドである可能性があることに気付きました。
データ オブジェクトには、特定の機能に関連するメソッドが多すぎると感じています。さらに多くのメソッドが追加される予定です。これらの機能は主に操作オブジェクトによって管理されるため、オブジェクト間で移動および分散できます。問題は、これらのメソッドのいくつかが異なる操作オブジェクトによって使用され、操作オブジェクトが特に操作に関連するメソッドで十分に満たされていることです。したがって、別のオプションは、それらを静的拡張メソッドとして実装し、そのような作業が実行される名前空間に配置することです (したがって、それらは作業領域からのみ表示されますが、必要に応じて他のオブジェクトから呼び出すことができます)。
問題は、次のようなメソッドをどこに置くかです。
- いかなる種類の操作もなしに、データ オブジェクト情報 (公開情報) から作成された情報を提供します。
- 特定の機能のための1つまたはいくつかの他のオブジェクトの特定の使用のためのものです(主に操作ですが、クエリとプレゼンテーションも含まれます)
- (ヘルパー ビジネス オブジェクトを使用するものもあれば、データ オブジェクトのみに依存し、他に何も必要としないものもあります)
それらは次のものに属します:
- データオブジェクト
- 操作オブジェクト
- ビジネス名前空間の静的ヘルパー クラスに?
答えは、話しているメソッドやアプリケーションの設計などに大きく依存すると思います。そのため、特定のアドバイスを提供するのが難しい場合があることは理解していますが、これについて決定を下すのに役立つヒントをいただければ幸いです。その他の場合。
手短に:
メソッドをどこに配置するかを選択するために、どのような基準や質問を自問する必要がありますか?