2025年3月27日 星期四 甲辰(龙)年 月廿六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 设计模式

【设计模式】30.结构型模式-外观(Facade)

时间:02-01来源:作者:点击数:62

一、描述

为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问。

角色

  • (1)子系统类:实现该子系统功能。
  • (2)外观类:包含各个子系统的功能,为多个子系统对外提供统一接口。
  • (3)客户类:访问外观类的统一接口
在这里插入图片描述

二、优点

  • (1)减少系统依赖,降低客户端调用系统难度。
  • (2)提高灵活性
  • (3)提高安全性

三、缺点

  • (1)外观类关联太多复杂子系统类耦合度太高,并且扩展子系统需要修改相关联的外观类,不符合开闭原则。

四、使用场景

  • (1)为复杂的模块或子系统提供外界访问的模块
  • (2)子系统相对独立

五、示例

以电脑开机步骤为例,参考[网上文章],我总结了以下几个步骤(https://www.cdsy.xyz/computer/system/OS/230201/cd40028.html)

  • 1)电源供电
  • 2)CPU执行指令,跳转到BIOS
  • 3BIOS进行加电自检,初始化,显示启动画面,启动系统

代码

1.电源

  • public class Power {
  • public void work(){
  • System.out.println("电源供电");
  • }
  • }

2.CPU

  • public class CPU {
  • public void work(){
  • System.out.println("CPU执行命令");
  • }
  • }

3.Power

  • public class Power {
  • public void work(){
  • System.out.println("电源供电");
  • }
  • }

4.BIOS

  • public class BIOS {
  • public void work(){
  • System.out.println("加电自检");
  • System.out.println("初始化");
  • System.out.println("显示启动画面");
  • System.out.println("启动系统");
  • }
  • }

5.Computer(电脑)

集成上面的部件

  • public class Computer {
  • private Power power;
  • private CPU cpu;
  • private BIOS bios;
  • public Computer() {
  • this.power = new Power();
  • this.cpu = new CPU();
  • this.bios = new BIOS();
  • }
  • public void start() {
  • System.out.println("开始启动电脑:");
  • power.work();
  • cpu.work();
  • bios.work();
  • }
  • }

6.Client(客户端)

启动系统

  • public class Client {
  • public static void main(String[] args) {
  • Computer computer = new Computer();
  • computer.start();
  • }
  • }

效果:

在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门