「Facade」という英単語は、「建物の正面」を意味します。
このパターンは、複雑な内部処理(データベース処理・業務処理etc)を隠蔽し、利用者にシンプルなインタフェースを提供するパターンです。また、複雑なAPI呼出しの適切な実行順を利用者に意識させないという目的もあります。
Facadeパターンのクラス図
1. Facade.java
public class Facade {
public void facadeMethod(){
(new ClassA()).methodA();
(new ClassB()).methodB();
(new ClassC()).methodC();
(new ClassD()).methodD();
}
}
2-1. ClassA.java
public class ClassA {
public void methodA(){
System.out.println("ClassA-mA()");
}
}
2-2. ClassB.java
public class ClassB {
public void methodB(){
System.out.println("ClassB-mB()");
}
}
2-3. ClassC.java
public class ClassC {
public void methodC(){
System.out.println("ClassC-mC()");
}
}
2-4. ClassD.java
public class ClassD {
public void methodD(){
System.out.println("ClassD-mD()");
}
}
3. Client.java
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.facadeMethod();
}
}
C:\sample\desin_pattern\facade>javac Client.java [Enter] C:\sample\desin_pattern\facade>java Client [Enter] ClassA-mA() ClassB-mB() ClassC-mC() ClassD-mD()