Facade パターン - ファサードパターン
2008/07/09 21:16Update
Facade パターンはGoFによる23種類のデザインパターンの構造に関連するパターンです。簡単に言えば、Facade パターンは、複雑な関連性のあるクラス群やサブシステムなどの機能を呼び出すのに、窓口となる一つのクラス(Facade)を配置するパターンです。
概要
実際のアプリケーションシステムでは、複雑なモジュールや機能はたくさんの小さなクラスによって構成されることがほとんどです。ほかのモジュールや機能からこれらの機能を利用する場合、複雑であるため、どのクラスどのように利用すべきか、適切に処置することが容易ではありません。
Facade パターンはこれらの複雑なクラス群を利用するために、窓口となる一つのクラス(Facade)を配置します。該当Facadeクラスはシンプルなインタフェースで、外部からもその複雑であるクラス群を容易に利用できるようになります。
Facade パターンのメリット
◇ 利用する側と利用される側のクラス群の依存関係を低くなり、低結合度を実現できます。
◇ よくデザインされたインタフェースで複雑であるクラス群をでも容易に利用できます。
Facade パターンの使用シーン
◇ 複雑なサブシステムや関連性のあるクラスを容易に利用するため
Facade パターンのクラス図
<<クラス図>>
Client:クライアント。利用する側。
Facade:窓口となるクラス。
Packages:利用される側であるサブシステムや複雑なクラス群。
Facade パターンの使用例
//複雑なクラス群A1、A2、A3
//実際の実装をここでは略する
class A1 {
public void doSomething1();
}
class A2 {
public void doSomething2();
}
class A3 {
public void doSomething3();
}
//Facade:窓口となるクラス。
public class Facade {
public void doSomething() {
A1 a1 = new A1();
A1 a2 = new A2();
A1 a3 = new A3();
a1.doSomething1();
a2.doSomething2();
a3.doSomething3();
}
}
//Test:利用する側のクラス例
public class Client {
public static void main(String []args) {
Facade facade = new Facade();
facade.doSomething();
}
}
Sponsored Link
- Relative Articles
- ASP.NETでのフロント・コントローラ(Front Controller)実装 - (2009/10/20 15:22)
- Factory Method パターン - ファクトリメソッドパターン - (2008/06/09 22:44)
- Abstract Factory パターン - 抽象ファクトリパターン - (2008/06/10 13:25)
- Singleton パターン - シングルトンパターン - (2008/06/10 15:36)
- Prototypeパターン - プロトタイプパターン - (2008/06/10 17:23)
- Builderパターン - ビルダーパターン - (2008/06/10 19:01)
- Adapter パターン - アダプターパターン - (2008/06/11 11:30)
- Composite パターン - コンポジットパターン - (2008/06/11 16:59)
- Interpreter パターン - インタプリタパターン - (2008/06/13 15:42)
- Chain of Responsibility パターン - 責任の連鎖パターン - (2008/06/14 00:28)