java设计模式-外观模式
Posted ghsy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计模式-外观模式相关的知识,希望对你有一定的参考价值。
第一次好好的看设计模式,可能有不对的地方,大佬们可以下面指出,感谢!
----------- 分割线 ----------
uml图:
左图为杂乱的代码,右图为使用外观模式后的代码。
示例:现在火热的springcloud的zuul组件设计就是个外观模式,所有请求都经过zuul,然后去请求具体服务。
好了,上代码
定义上司类
public class Boss StaffA staffA; StaffB staffB; StaffC staffC; public void Initialization() staffA = new StaffA(); staffB = new StaffB(); staffC = new StaffC(); public void start () staffA.say(); staffC.say(); staffC.say();
定义3个员工:
public class StaffA public void say() System.out.println("我是员工A"); public class StaffB public void say() System.out.println("我是员工B"); public class StaffC public void say() System.out.println("我是员工C");
调用出:
public class Main public static void main(String[] args) Boss boss = new Boss(); boss.Initialization(); //老板想让下面的员工都说一下自己的名字 boss.start();
执行结果:
使用外观模式,我们就不用关注每个员工是怎么去做的(员工A是站着喊名字,员工B躺着喊,我们都不用管),我们只需要关注上司的情况就行,调用上司的执行方法,由上司再去调度下属。
优点:代码耦合度降低了,个个子系统之间职责分明。
缺点:违背了开闭原则,需要去频繁修改外观类。
以上是关于java设计模式-外观模式的主要内容,如果未能解决你的问题,请参考以下文章