49

MVC以外のiPhone開発で使用されているデザインパターンについて知る必要があります。

サンプルの説明または例をコードスニペットで返信してください。

ありがとう。

4

3 に答える 3

108

抽象工場

抽象ファクトリ パターンは、具体的なクラスを指定せずに、関連オブジェクトまたは依存オブジェクトのファミリを作成するためのインターフェイスを提供します。クライアントは、ファクトリから取得した具体的なオブジェクトの詳細から切り離されます。

アダプタ

Adapter デザイン パターンは、クラスのインターフェイスを、クライアントが期待する別のインターフェイスに変換します。Adapter を使用すると、互換性のないインターフェイスのために他の方法では機能できなかったクラスを連携させることができます。クライアントを対象オブジェクトのクラスから切り離します。

責任の連鎖

Chain of Responsibility 設計パターンは、複数のオブジェクトに要求を処理する機会を与えることで、要求の送信者を受信者から分離します。このパターンは、受信オブジェクトを連鎖させ、オブジェクトが処理するまで連鎖に沿ってリクエストを渡します。チェーン内の各オブジェクトは、リクエストを処理するか、チェーン内の次のオブジェクトに渡します。

指示

Command 設計パターンは、要求をオブジェクトとしてカプセル化するため、クライアントをさまざまな要求、キューまたはログ要求でパラメーター化し、元に戻す操作をサポートできます。request オブジェクトは、特定のレシーバーで 1 つ以上のアクションをバインドします。Command パターンは、リクエストを送信するオブジェクトを、そのリクエストを受信して​​実行するオブジェクトから分離します。

複合

Composite 設計パターンは、関連するオブジェクトをツリー構造に構成して、部分全体の階層を表します。このパターンにより、クライアントは個々のオブジェクトとオブジェクトの構成を一様に扱うことができます。Composite パターンは、Model-View-Controller 集約パターンの一部です。

デコレータ

Decorator デザイン パターンは、追加の責任をオブジェクトに動的に結び付けます。デコレーターは、機能を拡張するためのサブクラス化に対する柔軟な代替手段を提供します。サブクラス化と同様に、Decorator パターンを適応させることで、既存のコードを変更せずに新しい動作を組み込むことができます。デコレーターは、動作を拡張するクラスのオブジェクトをラップします。それらは、ラップするオブジェクトと同じインターフェイスを実装し、ラップされたオブジェクトにタスクを委任する前または後に独自の動作を追加します。Decorator パターンは、クラスは拡張に対してオープンであるが、変更に対してクローズであるべきであるという設計原則を表現しています。

ファサード

Facade デザイン パターンは、サブシステム内の一連のインターフェイスに統一されたインターフェイスを提供します。このパターンは、複雑さを軽減し、サブシステム間の通信と依存関係を隠すことで、サブシステムを使いやすくする高レベルのインターフェイスを定義します。

イテレータ

Iterator デザイン パターンは、基になる表現を公開せずに、集計オブジェクト (つまり、コレクション) の要素に順次アクセスする方法を提供します。Iterator パターンは、コレクションの要素にアクセスしてトラバースする責任を、コレクション自体から iterator オブジェクトに移します。Iterator は、コレクション要素にアクセスするためのインターフェイスを定義し、現在の要素を追跡します。異なる反復子は、異なるトラバーサル ポリシーを実行できます。

メディエーター

Mediator デザイン パターンは、一連のオブジェクトがどのように相互作用するかをカプセル化するオブジェクトを定義します。Mediator は、オブジェクトが相互に明示的に参照しないようにすることで疎結合を促進し、それらの相互作用を個別に変更できるようにします。したがって、これらのオブジェクトは再利用可能性が高くなります。このパターンの「メディエーター オブジェクト」は、システム内のオブジェクト間の複雑な通信と制御ロジックを一元化します。これらのオブジェクトは、状態が変化したときにメディエーター オブジェクトに通知し、メディエーター オブジェクトからの要求に応答します。

記念品

Memento パターンは、カプセル化に違反することなく、オブジェクトの内部状態をキャプチャして外部化するため、後でオブジェクトをこの状態に復元できます。Memento パターンは、重要なオブジェクトの重要な状態をそのオブジェクトの外部に保持して、まとまりを維持します。

観察者

Observer 設計パターンは、オブジェクト間の 1 対多の依存関係を定義するため、1 つのオブジェクトの状態が変化すると、そのすべての依存関係が自動的に通知され、更新されます。オブザーバー パターンは本質的に、サブジェクトとそのオブザーバーが疎結合されたパブリッシュ アンド サブスクライブ モデルです。観測対象と観測対象の間で通信を行うことができ、どちらも他方について多くを知る必要はありません。

プロキシー

Proxy デザイン パターンは、別のオブジェクトへのアクセスを制御するために、別のオブジェクトの代理またはプレースホルダーを提供します。このパターンを使用して、別のオブジェクトへのアクセスを制御する代表 (プロキシ) オブジェクトを作成します。このオブジェクトは、リモートであったり、作成に費用がかかったり、保護する必要がある場合があります。このパターンは構造的に Decorator パターンに似ていますが、目的が異なります。デコレータはオブジェクトに動作を追加しますが、プロキシはオブジェクトへのアクセスを制御します。

受付

Receptionist デザイン パターンは、アプリケーションの 1 つの実行コンテキストで発生したイベントを処理のために別の実行コンテキストにリダイレクトするという一般的な問題に対処します。ハイブリッドパターンです。「Gang of Four」の本には登場しませんが、その本で説明されている Command、Memo、および Proxy のデザイン パターンの要素を組み合わせています。これは、トランポリン パターン (これも本には登場しません) の変形でもあります。このパターンでは、イベントは最初にトランポリン オブジェクトによって受信されます。これは、処理のためにイベントをターゲット オブジェクトに即座にバウンスまたはリダイレクトするためです。

シングルトン

Singleton 設計パターンは、クラスがインスタンスを 1 つだけ持つことを保証し、それへのグローバルなアクセス ポイントを提供します。クラスはその唯一のインスタンスを追跡し、他のインスタンスが作成されないようにします。シングルトン クラスは、単一のオブジェクトがグローバル リソースへのアクセスを提供することが理にかなっている状況に適しています。

テンプレート方式

Template Method 設計パターンは、操作のアルゴリズムの骨組みを定義し、いくつかのステップをサブクラスに任せます。Template Method パターンを使用すると、アルゴリズムの構造を変更することなく、サブクラスでアルゴリズムの特定のステップを再定義できます。

出典: ココア デザイン パターン.

于 2012-09-15T10:24:27.707 に答える