设计模式-外观模式

模式介绍

门面模式有叫做外观模式是属于结构型模式的一种,对外提供顶级的一个接口,通过这个顶级接口访问下面的子系统。

角色划分

外观角色:多个子系统对外提供一个公共的接口

子系统角色:实现系统的部分功能,客户可以通过外观角色进行访问

UML

使用场景

门面模式的使用场景,暂时没有好的例子

案例:例如医院的导诊台就是一个门面,通过这个门面可以去到我们想要去的科室

案例实现

1、外观类

csharp 复制代码
public class HospitalFacde {
    private Register register;
    private Operation operation;
    private Dispensary dispensary;
    public HospitalFacde(){
        register = new Register();
        operation = new Operation();
        dispensary = new Dispensary();
    }
    public void register(){
        register.work();
    }
    public void operation(){
        operation.work();
    }
    public void dispensary(){
        dispensary.work();
    }
}

2、子系统角色

手术系统

typescript 复制代码
public class Operation implements Hospital{

    @Override
    public void work() {
        System.out.println("代领患者去手术室...");
    }
}

挂号系统

typescript 复制代码
public class Register implements Hospital{
    @Override
    public void work() {
        System.out.println("带领患者去挂号...");
    }
}

取药系统

typescript 复制代码
public class Dispensary implements Hospital{
    @Override
    public void work() {
        System.out.println("带领患者抓药...");
    }
}

3、客户端

typescript 复制代码
public class ClientPatient{
    public static void main(String[] args) {
        HospitalFacde hospitalFacde = new HospitalFacde();
        hospitalFacde.register();
        hospitalFacde.operation();
        hospitalFacde.dispensary();
    }
}
相关推荐
星栈6 分钟前
Node 接口该写同步还是异步?
后端·node.js
红烧大青虫24 分钟前
HarmonyOS应用开发实战:小事记 - UIAbility 的冷启动/热启动/后台启动三种场景与 launchParam 解析
后端·华为·harmonyos·鸿蒙系统
码事漫谈28 分钟前
AI Token 缓存:命中省 10 倍,不命中白扔钱
后端
65岁退休Coder29 分钟前
LangChain v1.3.4 笔记 - 04 Agent 中间件
后端
神奇小汤圆2 小时前
一个接口多个实现,Spring 怎么"适配多场景"?
后端
花开彼岸天~2 小时前
鸿蒙原生开发手记:徒步迹 - 自定义组件开发规范
后端·华为·harmonyos·鸿蒙系统
songroom3 小时前
Kimi K3:Rust封装XTP接口详细教程实践
开发语言·后端·rust
kebeiovo3 小时前
游戏服务端开发:Actor模型详解(Go语言)
开发语言·后端·golang
红烧大青虫3 小时前
setInterval 倒计时实现:60s 验证码发送逻辑
后端·华为·harmonyos·鸿蒙系统
小村儿4 小时前
连载14-实战篇--一个半月,我一个人和 Claude Code 搭出一套数字人工程
前端·后端·ai编程