• 第十一讲、外观模式


    1.定义

    Facade模式也叫外观模式,是由GOF提出的23中设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作Facade。

    2.外观模式的结构

       

    3.外观模式的角色和职责

    • Facade--为调用方定义简单的调用接口。
    • Clients--调用者。通过Facade接口调用提供某功能的内部类群。
    • Packages--功能提供者。指提供功能的类群(模块或子系统)。

    4.代码演示

    package test.com.facade;
    /*
     * A子系统
     */
    public class SystemA {
        /*
         * A子系统实现功能
         */
        public void dosomething() {
            System.out.println("实现A子系统功能");
        }
    }
    package test.com.facade;
    /*
     * B子系统
     */
    public class SystemB {
        /*
         * B子系统实现功能
         */
        public void dosomething() {
            System.out.println("实现B子系统功能");
        }
    }
    package test.com.facade;
    /*
     * C子系统
     */
    public class SystemC {
        /*
         * C子系统实现功能
         */
        public void dosomething() {
            System.out.println("实现C子系统功能");
        }
    }
    package test.com.facade;
    /*
     * Facade--只对外提供具体的功能实现
     */
    public class Facade {
        private SystemA systemA;
        private SystemB systemB;
        private SystemC systemC;
        
        public Facade() {
            this.systemA = new SystemA();
            this.systemB = new SystemB();
            this.systemC = new SystemC();
        }
        
        public void doA() {
            this.systemA.dosomething();
        }
        
        public void doAB() {
            this.systemA.dosomething();
            this.systemB.dosomething();
        }
        
        public void doABC() {
            this.systemA.dosomething();
            this.systemB.dosomething();
            this.systemC.dosomething();
        }
    }
    package test.com.facade;
    /*
     * 测试代码
     */
    public class Main {
        public static void main(String[] args) {
            Facade facade = new Facade();
            facade.doA();
            System.out.println("**********");
            facade.doAB();
            System.out.println("**********");
            facade.doABC();
            System.out.println("**********");
        }
    }
  • 相关阅读:
    洛谷 P3355 骑士共存问题
    Redis 安装
    Java 集合:(十八) Map接口
    并发编程——Java版【目录】
    Java 集合:(十七) Queue 常用接口:BlockingQueue 子接口
    Java 集合:(十六) Queue 常用接口:Deque 子接口
    Java 集合:(十五) Queue 子接口
    Java 集合:(番外篇一) ArrayList线程不安全性
    第十三章:StringTable
    Java 集合:(十三) Set实现类:LinkedHashSet
  • 原文地址:https://www.cnblogs.com/zheaven/p/10058447.html
Copyright © 2020-2023  润新知