Facade
Facade
Section titled “Facade”パターン一言説明
Section titled “パターン一言説明”複雑なサブシステムを単純な上位 API で包み、使いやすさを高めるパターンです。
Unity でよく使う状況
Section titled “Unity でよく使う状況”- ゲーム起動手順を 1 つのメソッドで隠したいとき
- モジュール内部の詳細を外部へ隠したいとき
構成要素(役割)
Section titled “構成要素(役割)”- Facade
- Subsystem
- Client
Unity 例 (C#)
Section titled “Unity 例 (C#)”以下のコードは、上で説明した状況を Unity プロジェクトの文脈で単純化した例です。
public sealed class GameStartupFacade{ private readonly SaveSystem saveSystem = new(); private readonly AudioSystem audioSystem = new(); private readonly UiSystem uiSystem = new();
public void StartGame() { saveSystem.Load(); audioSystem.Initialize(); uiSystem.OpenLobby(); }}- モジュール境界が明確になり、結合度を下げられます。
- 既存コードを変更せずに機能拡張や統合がしやすくなります。
- ラッパー層が深くなりすぎるとデバッグが難しくなります。
- 責務境界が曖昧にならないよう、インターフェースは小さく保つべきです。
動作ダイアグラム
Section titled “動作ダイアグラム”複雑なサブシステム呼び出しを単一の入口へ単純化する流れです。