Facade は、 構造に関するデザインパターンの一つで、 複雑なクラスのシステム、 ライブラリー、 またはフレームワークに対して単純な (しかし限定された) インターフェースを提供します。
Facade は、 アプリケーションの全体としての複雑さを軽減しますが、 それと同時に望ましくない依存性を一箇所に集めるのにも役立ちます。
複雑度:
人気度:
使用例: Facade パターンは、 Ruby のアプリでよく見かけます。 複雑なライブラリーや API を相手にする時、 特に役に立ちます。
見つけ方: 単純なインターフェースのクラスがほとんどの作業を他のクラスに委任していたら、 Facade パターンの使用が識別できます。 通常、 ファサードは、 それが使うオブジェクトのライフサイクルを完全に管理します。
概念的な例
この例は、 Facade デザインパターンの構造を説明するためのものです。 以下の質問に答えることを目的としています:
- どういうクラスからできているか?
- それぞれのクラスの役割は?
- パターンの要素同士はどう関係しているのか?
main.rb: 概念的な例
output.txt: 実行結果
他言語での Facade