Javaで使用されるソフトウェア設計パターンを、それぞれの簡単な説明をリストしますか？
設計パターンは、特定のプログラミングコンテキスト内で発生する問題に対する再利用可能なソリューションです。

最も重要な設計パターンのいくつかは次のとおりです。

工場法
通常の工場は商品を生産します。ソフトウェア工場はオブジェクトを生成します。そして、それが作成されるオブジェクトの正確なクラスを指定していないだけではありません。これを達成するために、オブジェクトは、ビルダーを呼び出す代わりに工場メソッドを呼び出すことによって作成されます。

シングルトン
シングルトンパターンは、クラスの作成を単一のオブジェクトに制限するために使用されます。これは、システム全体のアクションを調整するためにオブジェクト（および1つだけ）が必要な場合に有益です。キャッシュ、サブプロセスグループ、レコードなど、クラスの単一のインスタンスが必要な例がいくつかあります。

観察
このパターンは、オブジェクトの中で1つの多くの依存性であるため、オブジェクトが状態を変更すると、すべての依存者が通知されます。通常、これはその方法の1つを呼び出すことによって行われます。
簡単にするために、Twitterで誰かをフォローしているときに何が起こるかを考えてください。基本的に、あなたはTwitterにあなた（オブザーバー）があなたが従った人（主題）の更新をツイートするように送るように頼んでいます。雇用主は2人の俳優、更新に興味があるオブザーバーと更新を生成する主題で構成されています。

ストラテジー
戦略パターンにより、抽象化の下で関連するアルゴリズムをグループ化できます。これにより、クライアントを変更せずに他の人のアルゴリズムまたは政治を変更できます。単一のアルゴリズムを直接実装する代わりに、コードは実行時間の指示を受信し、実行するアルゴリズムグループのどれを指定します。

適応
これにより、互換性のないクラスは、あるクラスのインターフェイスを別のクラスに変換することで連携できます。それを一種の翻訳者として考えてください：共通言語を話さない州の2つの本部が一般的に通訳者が2つの間に座っており、コミュニケーションを可能にする会話を翻訳します。
2つのアプリケーションがあり、そのうちの1つがXMLとして出口をスローし、もう1つはJSONの入り口を必要とする場合、2つの間にアダプターが問題なく動作する必要があります。

ビルダー
名前が示すように、構造パターンを使用してオブジェクトを構築します。時々、私たちが作成するオブジェクトは複雑であるか、いくつかのサブ政府によって形成されるか、精巧な建設プロセスが必要です。複雑なタイプを作成する運動は、構造パターンを使用して簡素化できます。複合オブジェクトまたは集約オブジェクトは、一般的にビルダーを構築するものです。
主な考慮事項：ビルダーパターンは「抽象工場」パターンに似ているように見えるかもしれませんが、違いは、ビルダーパターンがステップごとのオブジェクトを作成し、抽象工場パターンがオブジェクトを1回返していることです。

州
状態パターンは、マシンが存在するさまざまな状態をカプセル化し、内部条件が変化したときにオブジェクトが動作を変更できるようにします。マシンまたはコンテキストは、パターン言語で呼ばれているため、異なる状態に駆動するアクションを持つことができます。雇用主の使用がなければ、コードは柔軟性が伸びられなくなり、条件付きIF-ELSEに悩まされています。