2009-07-10 7 views
2

あなたはすべてのアセンブリのメインシーケンスとの距離を低く保つようにしますかビジネスオブジェクト定義のみを含むアセンブリはどうですか?それらを避けることは可能ですか痛みのゾーン?そのようなアセンブリのタイプは、通常、他のアセンブリで使用され、かなり具体的です。どのようにそのような状況を処理するには?アセンブリに関するNDependメトリクス

答えて

5

私は{メインシーケンスからの距離を低くする}という目標はLaw of Demeterに基づいていると思います。このルールに従うと、コードを理解しやすくなり、ユニットテストが容易になります。単なるデータコンテナであるビジネスオブジェクトを使用することにより、必要以上に状態を公開し、カプセル化のルールを破ることになります。

しかし、ファーラーpoints out in this articleとして、「メソッドチェーンはにおいですが、転送メソッドで膨らんだ中間のオブジェクトの反対の問題も、匂いです(私はいつも私がDemeterの提案と呼ばれている場合)」

このような基本的なBusiness Objectsの価値は、データがどのように使用されているかなど、オブジェクトに含まれるもの転送オブジェクト。ただし、空のデータ転送オブジェクトから真のビジネスオブジェクトを区別することはおそらく重要です。実際のBusiness Objectsには、カプセル化されたデータとともに動作が含まれている必要があります。

関連する問題