设计模式之外观模式

1.外观模式概念

它提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,使得子系统更容易使用。

2.外观模式组成

1)子系统类 (Subsystems): 子系统中的一系列类,每个类负责一部分功能。

2)外观类 (Facade): 提供一个简单的接口来访问子系统中的一群接口。

3.举个栗子:

假如我们入住旅社,需要注册处 ===> 登记处 ===》领卡处 这些我们需要自己去跑

但是这个旅社弄了一个在大厅就能办理这些业务的机器,我们就不用跑这么多地方了,直接在这台机器办理就可以了

如下图

4.代码实现

1)注册处

java 复制代码
package org.xiji.facade;

/**
 * 注册
 */
public class Register {
    public void register(String name)
    {
        System.out.println("注册成功,欢迎" + name + "加入我们");
    }
}

2)登记处

java 复制代码
package org.xiji.facade;

/**
 * 登记
 */
public class Registration {
    //登记
    public void register(String name)
    {
        System.out.println(name+":登记成功");
    }
}

3)领卡处

java 复制代码
package org.xiji.facade;

/**
 * 领卡
 */
public class GetTheCard {
    public void getTheCard(String name)
    {
        System.out.println(name+":领卡成功");
    }
}

4)前台机器

java 复制代码
package org.xiji.facade;

/**
 * 外观类
 */
public class Facade {

    Register register = new Register();
    GetTheCard getTheCard = new GetTheCard();
    Registration registration = new Registration();

    public void facade(String name)
    {
        register.register(name);
        registration.register(name);
        getTheCard.getTheCard(name);
    }
}

5)客户类

java 复制代码
package org.xiji.facade;

/**
 * 外观测试类
 */
public class FacadeMain {
    public static void main(String[] args) {
        //用户小久
        String name = "小久";

        Facade facade = new Facade();

        facade.facade(name);
    }
}

6)运行结果

相关推荐
Fuly10242 分钟前
软件研发类项目流程
java
我命由我123452 分钟前
Android Jetpack Compose - TopAppBar、BottomAppBar、Scaffold
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
我爱娃哈哈4 分钟前
SpringBoot + Aviator + 规则中心:轻量级表达式引擎实现营销优惠动态计算
java·spring boot·后端
廋到被风吹走4 分钟前
【Spring】IoC容器深度解析:Bean生命周期与循环依赖三级缓存
java·spring·缓存
珂朵莉MM5 分钟前
2025年睿抗机器人开发者大赛CAIP-编程技能赛-高职组(国赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·机器人
a努力。12 分钟前
虾皮Java面试被问:JVM Native Memory Tracking追踪堆外内存泄漏
java·开发语言·jvm·后端·python·面试
学习是生活的调味剂23 分钟前
Java IO模型之BIO和NIO分析
java·nio
笙枫31 分钟前
基于AI Agent框架下的能源优化调度方案和实践 |工具函数介绍(详细)
java·人工智能·能源
我命由我1234533 分钟前
Android Studio - Android Studio 去除 import 的未使用的类
android·java·ide·学习·java-ee·android studio·学习方法