私はJavaパターンが初めてで、それがREAL WORLDにどのように適合するかを理解しようとしています. パターンに関するほとんどのサイトや本は、非プログラマーによって書かれているようです。
パターンが結合にどのように役立つかを定義しようとしていますが、これが今のところ私の定義です。私が知りたいのは、どのパターンが疎結合に本当に役立つか、そしてそれらは努力する価値があるかということです。また、これまでのところ私の定義/理解は正しいですか:
「カップリングとは、2 つ以上の異なるオブジェクトが相互にアクセスおよび/または相互作用する度合いです。」
2 つのオブジェクト間の密結合:
参照/インスタンス化 : 多くの場所で、一方または両方のオブジェクトで、他のオブジェクトへの多くの敬意 (多対多の参照)
複雑さ : 通常、多くのパラメーターが関数へのアクセス、またはさまざまな関数へのアクセスのシーケンスを必要としました。関連オブジェクトの共通インターフェースはありません。
責任:アクセスされているオブジェクト、または別のオブジェクトで行うべき作業を行う。ネストされた関数に直接アクセスする。
パフォーマンス : 密結合が必要になる場合がある最大の理由ですが、最小化する必要があります。
2 つのオブジェクト間の疎結合:
参照/インスタンス化: 少ないが、1 つのオブジェクトに少なくとも 1 つの参照があるが、両方にはない (1 ~ 少数の参照)
役立つパターン: Factory、Singleton、Builder、Composite複
_責任 : オブジェクトが実行する責任がある作業のみを行い、1 レベル下の機能にのみアクセスしようとします。
役立つパターン: デコレーター、責任の連鎖、MVCパフォーマンス : パフォーマンスが必要な場所を特定し、それらのクラスを一緒に保ちます。定義ごとに、密結合されたネストされたクラスとしても構いません。