1、减少系统的相互依赖。如果不使用立面模式,外部访问将直接深入子系统。
这是一种强烈的耦合关系,这是系统设计无法接受的。门面模式的出项很好地解决了这个问题,所有的依赖都是对门面对象的依赖,与子系统无关。
2、提高了灵活性。依赖减少,灵活性自然提高。
3、提高安全性。想让你访问子系统的业务就打开那些逻辑,不在门面打开的方法就不能访问。
实例
package com.sl.demo.facade; /** * 电脑(门面角色) * @author pengkun * */ public class Computer { //包含子系统 private CPU cpu; private GraphicsCard graphicsCard; private Memory memory; public Computer() { super(); this.cpu =new CPU(); this.graphicsCard = new GraphicsCard(); this.memory = new Memory(); } //开启 public void start() { System.out.println("电脑开启了。。。。"); cpu.start(); graphicsCard.start(); memory.start(); } //关闭 public void stop() { System.out.println("电脑关闭了。。。。"); cpu.stop(); graphicsCard.stop(); memory.stop(); } }
varargs 参数在 Java 多线程环境中的使用有何注意事项?
Java如何模拟多继承实现子类拥有多个父类的属性?
Zookeeper 与 Dubbo 项目启动报错 \"Circular reference\" 如何解决?
Java虚拟线程池:`newVirtualThreadPerTaskExecutor()`重复提交失效原因详解
Vue项目请求未携带Token:sessionStorage存储的Token为何失效? 或者: Vue前端请求丢失Token:如何确保每次请求都携带sessionStorage中的Token?
Spring Boot项目如何根据客户端时区显示MySQL数据库的datetime数据?