zoukankan      html  css  js  c++  java
  • 简易的设计模式——门面模式

    定义

    门面模式也称外观模式,是一种常用的封装的模式。要求一个子系统的外部与内部的通信必须挺哥一个统一的对象进行。门面模式会提供一个高层次的接口,使得系统更容易使用。

    门面模式中的角色

    1. Facade门面角色:客户端可以调用这个角色的方法,此系统指导子系统的所有功能和责任。一般这个角色没有自己的业务逻辑,只是一个委托类。
    2. subsystem子系统角色:可以同时有一个或多个子系统。每个子系统都不是单独的类,而是一个类的集合。

    代码实现

    子系统A

    public class A {
        public void doSomething(){
            System.out.println("class A");
        }
    }
    

    子系统B

    public class B {
        public void doSomething(){
            System.out.println("class B");
        }
    }
    

    子系统C

    public class C {
        public void doSomething(){
            System.out.println("class C");
        }
    }
    
    

    门面 Facade.java

    public class Facade {
        private A a = new A();
        private B b = new B();
        private C c = new C();
        public void methodA(){
            this.a.doSomething();
        }
        public void methodB(){
            this.b.doSomething();
        }
        public void methodC(){
            this.c.doSomething();
        }
    }
    

    门面模式的优点

    • 减少系统的相互依赖:外部系统不会直接访问到子系统,而是访问门面。
    • 提高了灵活性:子系统内部的业务无论如何变化,只要不影响到门面对象。
    • 提高系统的安全性:可以有选择地开放一些功能到门面对象上供客户端使用。

    门面模式的缺点

    门面模式的最大缺点是不符合开闭原则。

    门面模式的使用原则

    • 为复杂的模块或子系统提供一个外部访问的接口。
    • 子系统相对独立——外界只需要调用门面对象上的方法。
    • 预防低水平人员带来的风险扩散。
  • 相关阅读:
    python 遍历文件夹 文件
    Docker使用常见问题
    Docker基础技术:DeviceMapper
    更改Docker默认的images存储位置
    NAT方式,宿主机无法ping通虚拟机
    centos7使用问题总结
    VMWare虚拟机提供的桥接、nat和主机模式的区别
    css之'>'
    eclipse安装插件:
    腾讯后台开发面试总结,原创,吐血推荐!!
  • 原文地址:https://www.cnblogs.com/whthomas/p/4425847.html
Copyright © 2011-2022 走看看