求心性
何かがさまざまなもの(求心性結合の数が多い)を使用している場合、それらのいずれかが変更されると壊れやすくなります。
不安定性= 1
遠心性
さまざまなもの(多数の遠心性カップリング)で何かが使用されている場合、それが変更されると、多くのものが壊れる可能性があります。
不安定性= 0
安定
「安定性」のマーティンの定義は、「変更するのが難しい」と「変更する理由がほとんどない」とのエキゾチックな融合です。しかし、彼の不安定な測定基準は「変化の難しさ」のみを説明しています。「変更する理由」は、適切な抽象化レベルでインターフェイスを適切に設計する、ユーザーエンドの要件をより明確に事前に理解するなど、簡単に計算できない要因と関係があります。
そのため、求心性の低いカップリングと高い遠心性のカップリングは安定性をもたらします(多くのものを壊すので変更が難しいもののように)、反対は不安定性をもたらします(多くのものを壊さないので変更しやすいもののように) 。
多数の求心性カップリングは、デザインに焦点が合っていないことを示す指標になる可能性があります。さまざまなものを使用しているため、明確で単一の責任がない可能性があります。
多数の遠心性カップリングは、設計が広く(再)使用されていることを示すため、最初は非常に良いものと解釈される可能性があります。それでも、すべてを壊すような方法でデザインを頻繁に変更したいと思うなら、それは悪いことです。したがって、多数の遠心性カップリングを使用する場合、そのようなパッケージには「変更する理由がほとんどないか、まったくない」必要があります。設計は、変更するのが非常に難しいため、変更する理由がないという理想的な意味で安定している必要があります。
安定した抽象化の原理
依存関係の反転(当然、依存関係の注入を必要とします)やSAP(安定した抽象化の原則)などの概念はすべて、依存関係が抽象化に向かって流れることを示唆しています。また、「変更する理由がほとんどない」という文脈で「安定性」を検討する場合には、単純な理由があります。抽象インターフェースは具体的な詳細に言及せず、「物事」ではなく「何をすべきか」にのみ焦点を合わせているため、変更する理由はほとんどありません。マザーボードの加速グラフィックスポート(抽象インターフェイス)は、プラグインするGPU(具体的な詳細)よりも設計変更を受ける理由が少なくなります。
再利用性と再利用
マーティンのものといくらか衝突するものを提案できる場合、私自身の個人的な種類のメトリックは、最も再利用可能なライブラリが他のコードを最小限に再利用しようとするべきであるというこの概念です。これは、不安定な状態をハード0に向かって押し出します。これは、変更する理由が最小限であるという実際的な理由だけでなく、展開が最も簡単なライブラリを促進するためでもあります。多数の異なるライブラリに依存する汎用の広く使用されているライブラリには、変更が必要な理由がたくさんあります。また、配布が難しい厄介なバンドルもあります。ここでの違いは、私の場合の「変更の理由」は実装にまで及ぶことです。これは、ライブラリの安定したバージョンをリリースしようとするライブラリ指向のビューから来ているからです。マーティンは実装を非常に別個の部分として割り引くかもしれませんが、
配布の観点から見ると、実装とインターフェースがあいまいになり、安定したライブラリまたは不安定なライブラリに対するユーザーの依存関係が生じます。インターフェイスの観点からは、インターフェイスのみが使用され、関連付けられている実装の詳細は完全に分離されています。