文章目录
外观模式
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式的外观类将客户端与子系统的内部复杂性分隔开。
外观模式是迪米特法则的一个经典应用。
本质:封装交互,简化调用。
使用场景:当客户程序与抽象类的实现部分之间存在很大的依赖性。
缺点:不符合开闭原则。
package 外观模式;
public class Facade {
subsystemOne one;
subsystemTwo two;
subsystemThree three;
subsystemFour four;
public Facade() {
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("方法组B");
two.methodTwo();
three.methodThree();
}
}
package 外观模式;
public class subsystemOne {
public void methodOne() {
System.out.println("子系统方法一");
}
}
package 外观模式;
public class subsystemTwo {
public void methodTwo() {
System.out.println("子系统方法二");
}
}
package 外观模式;
public class subsystemThree {
public void methodThree() {
System.out.println("子系统方法三");
}
}
package 外观模式;
public class subsystemFour {
public void methodFour() {
System.out.println("子系统方法四");
}
}
package 外观模式;
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.methodA();
facade.methodB();
}
}