1.如果你期望为一组类提供一个简单的接口,可使用Facade(外观)模式。
2.举例:
2.1uml模型
2.2源码
//模拟第一个操作:打开第一个抽屉
public class DrawerOne {
public void open(){
System.out.println("第一个抽屉被打开了");
getKey();
}
public void getKey(){
System.out.println("得到第二个抽屉的钥匙");
}
}
//模拟第二个操作:打开第二个抽屉
public class DrawerTwo {
public void open(){
System.out.println("第二个抽屉被打开了");
getFile();
}
public void getFile(){
System.out.println("得到这个重要文件");
}
}
//采用Facade模式对以上操作进行封装
public class DrawerFacade {
private DrawerOne darwerOne=new DrawerOne();
private DrawerTwo darwerTwo=new DrawerTwo();
public void open(){
darwerOne.open();
darwerTwo.open();
}
}
//Client只需要通过DrawerFacade类进行复杂操作
public class Client {
public static void main(String []args){
DrawerFacade drawer=new DrawerFacade();
drawer.open();
}
}
3.总结:为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。使用一种比原有方式更简单的办法与系统交互。外观类通常是一个可配置、可复用的类。
4.参考:http://www.blogjava.net/supercrsky/articles/202854.html