设计模式-外观模式

模式介绍

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

角色划分

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

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

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();
    }
}
相关推荐
今天没有盐2 分钟前
Scala Map集合完全指南:从入门到实战应用
后端·scala·编程语言
LSTM973 分钟前
如何使用 C# 将 RTF 转换为 PDF
后端
Jing_Rainbow3 分钟前
【AI-7 全栈-2 /Lesson16(2025-11-01)】构建一个基于 AIGC 的 Logo 生成 Bot:从前端到后端的完整技术指南 🎨
前端·人工智能·后端
7***53343 分钟前
Rust错误处理模式
开发语言·后端·rust
16_one18 分钟前
autoDL安装Open-WebUi+Rag本地知识库问答+Function Calling
人工智能·后端·算法
StockPP19 分钟前
印度尼西亚股票多时间框架K线数据可视化页面
前端·javascript·后端
3***g20526 分钟前
如何使用Spring Boot框架整合Redis:超详细案例教程
spring boot·redis·后端
狂奔小菜鸡41 分钟前
Day18 | 深入理解Object类
java·后端·java ee
未秃头的程序猿43 分钟前
🔒 从单机到分布式:三大锁机制深度剖析与实战指南
java·后端
得物技术1 小时前
# 一、项目概览 Dragonboat 是纯 Go 实现的(multi-group)Raft 库。 为应用屏蔽 Raft 复杂性,提供易于使用的 NodeH
后端