加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java设计模式-外观模式

发布时间:2020-12-15 01:56:18 所属栏目:Java 来源:网络整理
导读:第一次好好的看设计模式,可能有不对的地方,大佬们可以下面指出,感谢! ----------- 分割线 ---------- ? uml图: 左图为杂乱的代码,右图为使用外观模式后的代码。 示例:现在火热的springcloud的zuul组件设计就是个外观模式,所有请求都经过zuul,然后去请

  第一次好好的看设计模式,可能有不对的地方,大佬们可以下面指出,感谢!

  ----------- 分割线 ----------

?

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躺着喊,我们都不用管),我们只需要关注上司的情况就行,调用上司的执行方法,由上司再去调度下属。

优点:代码耦合度降低了,个个子系统之间职责分明。

缺点:违背了开闭原则,需要去频繁修改外观类。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读