Facade外观模式:
为子系统中的一组接口提供一个统一接口。
Facade
模式定义了一个更高层的接口,使子系统更加容易使用。
例子:
1.DrawerOne.java
public class DrawerOne {
public void open() {
System.out.println(" 第一个抽 屉 被打 开 了 ");
getKey();
}
public void getKey() {
System.out.println(" 得到第二个抽 屉 的 钥 匙 ");
}
}
public void open() {
System.out.println(" 第一个抽 屉 被打 开 了 ");
getKey();
}
public void getKey() {
System.out.println(" 得到第二个抽 屉 的 钥 匙 ");
}
}
2.DrawerTwo.java
public class DrawerTwo {
public void open() {
System.out.println("第二个抽屉被打开了");
getFile();
}
public void getFile() {
System.out.println("得到这个重要文件");
}
}
则通常为了拿到“重要文件”需要如下代码实现:
public class Client {
public static void main(String[] args) {
DrawerOne darwerOne = new DrawerOne();
DrawerTwo darwerTwo = new DrawerTwo();
darwerOne.open();
darwerTwo.open();
}
}
但是如果使用Facade外观模式,可新建一个Facade类:
public class DrawerFacade {
DrawerOne darwerOne=new DrawerOne();
DrawerTwo darwerTwo=new DrawerTwo();
public void open(){
darwerOne.open();
darwerTwo.open();
}
}
则此时调用的代码修改为:
public class Client {
public static void main(String[] args) {
DrawerFacade drawer=new DrawerFacade();
drawer.open();
}
}
参考自:http://www.blogjava.net/flustar/archive/2007/11/23/facade.html