Mediator vs Observer vs Facade 完全比較:オブジェクト通信パターン3選
Mediatorは複雑に絡み合ったオブジェクトの関係を中央で調整し、Observerは状態変化を一対多で通知し、Facadeは複雑な内部をシンプルな窓口で包みます。3つの違いと選び方をSwiftの例で比較します。
記事を読む特集トピック · 27 記事
デザインパターンの基礎から実務の選択基準まで解説する記事をまとめました。
最新記事
Mediatorは複雑に絡み合ったオブジェクトの関係を中央で調整し、Observerは状態変化を一対多で通知し、Facadeは複雑な内部をシンプルな窓口で包みます。3つの違いと選び方をSwiftの例で比較します。
記事を読むGoFのファクトリーメソッドは1つのオブジェクトの具象型の決定をサブクラスに委ね、抽象ファクトリーは関連するオブジェクト群をまとめて生成します。2つの意図と選択基準をSwiftの例で比較します。
記事を読むAdapterはインターフェースを変換し、Facadeは複雑さを隠し、Proxyはアクセスを制御し、Decoratorは機能を追加します。構造が似た4つのラッピングパターンを、目的と選択基準から比較します。
記事を読むStrategyパターンは外部からアルゴリズムを選択し、Stateパターンは現在の状態が内部の遷移を主導します。同じクラス構造を持つ2つの振る舞いパターンを、意図と変更の主体から見分けます。
記事を読むデザインパターンの本を開くと、終盤に必ず登場するのがインタープリタパターンです。「いったいいつ使うの?」と思って、ざっと読み飛ばしがちなパターンですよね。
記事を読むクラスごとに似たロジックをコピペして、「何かおかしい」と感じたことはありませんか? iOS アプリで画面ごとのデータ読み込みコードを3回目にコピーする頃には、手が止まってしまいますよね。
記事を読むFacadeパターンは、複数のオブジェクトが絡み合うサブシステムに、シンプルな単一の入り口を提供します。Swiftの会員登録を例に、呼び出し順を一か所に集約する方法と、Adapter・Proxy・Decoratorとの違いを解説します。
記事を読むアプリを作っていると、似たようなオブジェクトを数千、数万個も生成することがあります。地図上に数万個のマーカーを配置する機能が代表例で、このような場合はメモリグラフが上がり続けやすくなります。
記事を読むiOS開発では、基本機能を変えずにロギングやキャッシュだけ追加したくなることがあります。しかしそのためにクラス継承を始めると、いつの間にか継承ツリーが複雑になりがちです。
記事を読むフォルダーの中にフォルダー、その中にさらにファイル。こうしたツリー構造をコードで扱ったことがあるなら、一度は途方に暮れたはずです。
記事を読むAbstract Factoryは、互換性のある複数のオブジェクトを製品ファミリーとしてまとめ、一度に差し替えます。Swiftのテーマを例に、組み合わせミスを防ぐ構造とFactory Methodとの選び方を解説します。
記事を読むSwiftのファクトリ関数は、生成の意図を示す名前を付け、返却型と再利用方針を柔軟にします。initではなくstatic funcを選ぶ基準と、GoFのファクトリメソッドとの違いを整理します。
記事を読むAdapterパターンは、レガシーAPIのインターフェースを新しいコードが期待するプロトコルへ変換します。Swiftで変換の境界を作り、置き換えとテストを容易にする実装手順や、他のラッピングパターンとの違いを整理します。
記事を読む支払い方法ごとにif-elseが際限なく増えていくコードに悩んだことはありませんか?
記事を読むSwiftで開発していると、static let sharedの1行で作られたシングルトンを本当によく見かけます。
記事を読む