これまでの私の知識では、カップリングは 2 つ以上のクラスが「相互接続」されている程度に関連していると考えていました。つまり、クラスが他のクラスのメソッドまたは変数をどの程度使用するかということです。適切に設計されたソフトウェア システムにおける私たちの目標は、もちろん結合を低く (緩く) 保つことです。
私は現在本を読んでいますが、疎結合の目的はシステムを設計することによって達成され、すべてのクラスが他のクラスの API (パブリックメソッド) のみを使用し、インスタンス変数を直接使用しないように明示的に述べている本を読んでいます。したがって、インスタンス変数はプライベートでなければなりません。それがポイントである場合、疎結合と強力なカプセル化の違いは何ですか? 私に関する限り、後者はカプセル化を指します。オブジェクト指向ソフトウェア開発の上記の概念に関して実際に正しいのはどれですか?