23种设计模式之-外观模式

外观模式

指外部与一个子系统的通信必须通过一个统一的外观对象进行

uml

在这里插入图片描述

Façade:外观角色,是模式的核心,他被客户client角色调用,知道各个子系统的功能。同时根据客户角色已有的需求预订了几种功能组合\

Subsystem classes:子系统角色,实现子系统的功能,并处理由Facade对象指派的任务。对子系统而言,facade和client角色是未知的,没有Facade的任何相关信息;即没有指向Facade的实例。

Client:客户角色,调用facade角色获得完成相应的功能。

案例

请基于Java通过外观模式实现在文件柜中寻找文件的管理。文件放在文件柜的第二个抽屉里,但是它的钥匙必须从第一个抽屉里获得。

package 外观模式;

public class DrawerOne {
    public void open(){
        System.out.println("打开第一个抽屉");
        getkey();
    }

    public void getkey() {
        System.out.println("得到第二个抽屉的钥匙");
    }
}

package 外观模式;

public class DrawerTwo {
    public void open(){
        System.out.println("打开第二个从抽屉");
        getFile();
    }
    public void getFile(){
        System.out.println("得到文件");
    }
}

package 外观模式;

public class DrawerFacade {
    DrawerOne darwerOne=new DrawerOne();
    DrawerTwo darwerTwo=new DrawerTwo();
    public void open(){
        darwerOne.open();
        darwerTwo.open();
    }

}

package 外观模式;

public class DrawerClient {
    public static void main(String []args){
        DrawerFacade drawer=new DrawerFacade();
        drawer.open();
    }

}

运行截图:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值