6

関心の分離と緩い結合の違いを理解したいと思います。

関心の分離によるコーディングが緩く結合されたコードを与えるというのは本当ですか?

ありがとうございました。

4

2 に答える 2

11

結合とは、各コンポーネントが他のコンポーネントについてどれだけ知っているかということです。

関心の分離とは、さまざまなコンポーネントの機能のさまざまな側面を分離することです。さまざまな側面を分離できますが、コンポーネントを緊密に結合します(つまり、抽象化の代わりに具象クラスを使用します)。

更新:結束は、コンポーネントの責任がどれほど密接に関連しているかを示しています。さまざまなコンポーネントでさまざまな懸念事項を分離すると、コンポーネントの責任は強く関連しているため、高い結束力が得られます。

于 2012-05-16T14:20:52.307 に答える
6

これについて考えるのに役立つ方法は、関心の分離が各クラス/関数が何をすべきかを決定し、結合がこれらのクラス/関数がお互いについてどれだけ知っているかを決定するということです。

関心の分離は、システム内の各コンポーネントが 1 つのことだけを担当するべきであるという単一責任の原則に関連しています。

システム内の結合の量は、これらの各コンポーネントが互いにどのように通信するかに関係しています。彼らはお互いに強い知識を持っていますか (密結合)、またはインターフェース/機能バインディングなどを介してお互いの知識が抽象化されていますか (疎結合)? システムの 1 つの部分を変更しても他のコンポーネントには影響しないため、通常、疎結合はシステムの変更を容易にします。

于 2012-05-16T14:23:48.410 に答える