2

私は周りを見回しましたが、私の質問に固有のものは何も見つかりませんでしたが、それは部分的には、それをどのように表現するかわからないためです.

私は約 20 の異なる C# .NET アプリケーションを管理していますが、それらはすべて比較的似たようなことを行います。

共通コードをデータ、ビジネス ロジック、およびプレゼンテーションに統合する作業を行っています。

私の質問は、ビジネス ロジック層に関連しています。

ビジネス/ドメイン オブジェクトは、状態を保持し、関連するアクションを実行する場合があるオブジェクトであることがわかります (そのアプローチを取る場合)。

しかし、ルーチンを介してのみ機能するオブジェクトを何と呼びますか?

例えば:

  1. プレゼンテーション層では、ボタン イベントが発生します。
  2. プレゼンテーション層はこのクラスを指し、「RunJob()」メソッドを呼び出します。
  3. RunJob() は、実行する必要があるすべての作業を実行してから終了します。たとえば、テーブルを読み取って CSV に出力する場合があります (これらのアプリの多くはデータ プッシャーです)。内部フィールド/プロパティを使用する場合と使用しない場合があります。これらのプロパティを使用して、インターフェイスにデータを表示したり、出力を作成したりできます。

これに名前はありますか、それとも実際には悪いパターン/悪いOOですか? これは、ビジネス オブジェクトまたはヘルパーとしての資格があるとは思いません。「サービス」オブジェクトである可能性をほのめかす 他のトピックを見てきました。

ありがとう!

4

2 に答える 2

0

とりあえず WorkerThread と呼んで、命名に関するボブおじさんの記事を参照してください" http://www.objectmentor.com/resources/articles/Naming.pdf。その後、名前を適切な名前に変更します。

あなたのクラスは必ずしも悪いクラスではありません。ほとんどのエンティティは通常、多くの動作を持ちません。また、一部のヘルパー クラスには多くの状態がありません。

于 2012-11-28T23:34:52.017 に答える
0

オブジェクトの名前は、具体的にどのような作業を行うかによって異なります。TableImporter と CsvExporter は、説明したタスクに適した名前です。メソッドにも適切な名前を付ける必要があります。インターフェースを抽象化し、プレゼンテーション層とモデル層を分離するRunnerための一般的なRunJob方法が必要な場合がありますが、代わりにコントローラーを使用すると、より明確で分離することができます。

于 2012-11-28T23:51:36.520 に答える