外观模式:为子系统中的一组接口提供一个一致的界面,次模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
UML图:
外观类:
package com.cnblog.clarck;
/**
* 外观类 知道哪些子系统负责处理请求,将客户的请求代理给适当的子系统对象
*
* @author clarck
*
*/
public class Facede {
private SubSystemOne one;
private SubSystemTwo two;
private SubSystemThree three;
private SubSystemFour four;
public Facede() {
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
four = new SubSystemFour();
}
public void methodA() {
System.out.println("方法组A ---------");
one.methodOne();
two.methodTwo();
four.methodFour();
}
public void methodB() {
System.out.println("方法组A ---------");
two.methodTwo();
three.methodThree();
}
}
package com.cnblog.clarck;
/**
* 子系统一
*
* @author clarck
*
*/
public class SubSystemOne {
public void methodOne() {
System.out.println("子系统方法一");
}
}
package com.cnblog.clarck;
/**
* 子系统二
*
* @author clarck
*
*/
public class SubSystemTwo {
public void methodTwo() {
System.out.println("子系统方法二");
}
}
package com.cnblog.clarck;
public class SubSystemThree {
public void methodThree() {
System.out.println("子系统方法三");
}
}
package com.cnblog.clarck;
/**
* 子系统方法四
*
* @author clarck
*
*/
public class SubSystemFour {
public void methodFour() {
System.out.println("子系统方法四");
}
}
package com.cnblog.clarck;
/**
* 测试类
*
* @author clarck
*
*/
public class Client {
public static void main(String[] args) {
Facede facede = new Facede();
facede.methodA();
facede.methodB();
}
}