私はアーキテクチャの設計に新しく、これに関する助けが必要です。クラスデザイン、これは最高のデザインアプローチですか?
私は2つのクラス、すなわち「パート」と「サプライヤ」を持っています。部品がサプライヤを持つ。
私のクラスデザインでは、パートクラスのプロパティとして 'int SupplierID'(型は 'int')か 'Supplier supplier'(型は 'Supplier')ですか?
どちらが優れていますか?彼らの長所と短所は何ですか?
Kinldyから入力があります。
私はアーキテクチャの設計に新しく、これに関する助けが必要です。クラスデザイン、これは最高のデザインアプローチですか?
私は2つのクラス、すなわち「パート」と「サプライヤ」を持っています。部品がサプライヤを持つ。
私のクラスデザインでは、パートクラスのプロパティとして 'int SupplierID'(型は 'int')か 'Supplier supplier'(型は 'Supplier')ですか?
どちらが優れていますか?彼らの長所と短所は何ですか?
Kinldyから入力があります。
Supplier supplier
タイプとしてサプライヤーを持つとサプライヤーの財産としての仕入先を持つことは私にはより多くの意味になるだろう。初期のメリットは、サプライヤIDで基本的な検証を行うことができることです。確かにそれをintとして表現していますが、これは将来的には変わる可能性があります。たとえば、IDを文字列と内部で表現することができますが、内部的にIDを表すことができますが、レポートする際にはXYZ1234(XYZはサプライヤの会社名(文字列)、1234は一意のID悪い人為的な例かもしれませんが、それでも何らかの方法で変更される可能性があります)/
サプライヤをタイプとして持つことの本当の利点は、Dependancy Injectionを使用してサプライヤをパートに割り当てることができるためですあなたがPartのインスタンスを作成するとき。したがって、Partのコンストラクタは次のようになります。
Part(Supplier supplier)
{
_supplier = supplier;
}
ここで、PartクラスはSupplierクラスの変更に依存しません。私。それに依存していません。
注:依存性の注入を使用して慣れていない場合は、Martin Fowler氏から、この記事では説明しなければならない:
良い情報の男を!ありがとう!! – Dhana
@Dhana:No prob。ちなみに、私はこの本http://www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258が本当にこの種の質問に私を助けてくれたことを知りました。また、ソリッドの原則に関するロバート・マーティンのオンライン記事は、読む価値があります。 –