外观模式/门面模式
1.两个行为类
public class SubA {
public void say(){
System.out.println("suba say a ....");
}
}
public class SubB {
public void say(){
System.out.println("subb say b ....");
}
}
2.外观类
public class Facade {
public void say(){
new SubA().say();
new SubB().say();
}
}
public class M {
public static void main(String[] args) {
Facade f = new Facade();
f.say();
}
}
外观模式,也称呼门面模式。
我们在什么场景下需要外观模式呢?
栗子:喝茶。
个人:在家喝茶,需要 找杯具+拿茶叶+烧热水+泡茶,然后才是喝茶
在茶馆:找服务员,然后就是喝茶
我们把找杯具+拿茶叶+...的操作全部封装依靠服务员,这样,很大程度的减少了服务对找杯具+拿茶叶等操作的直接访问,在程序上达到了解耦
其实我们用这个模式很频繁的,比如,一个controller中,访问的一个方法A,这个A方法,除了查询用户的基本信息(名字+性别),很可能还要查询此用户的上下级等信息,大 部分情况,我们都是只暴露一个对外的接口统一的处理这个逻辑。