• 外观模式


    一、概述

    外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。

    主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。

    何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。 2、定义系统的入口。

    二、使用

    示例:

    package pattern.facade;
    
    /**
     * @author zls
     * @date 2020/3/26
     */
    public class FacadeTest {
        public static void main(String[] args) {
            CarMaker carMaker = new CarMaker();
            // 使用起来很简单,直接调用跑就行了,殊不知内部做了很多事情。
            carMaker.benzRun();
            carMaker.bmwRun();
        }
    }
    
    /**
     * 公共接口
     */
    interface Car {
        void run();
    }
    
    /**
     * 大奔
     */
    class Benz implements Car {
        @Override
        public void run() {
            System.out.println("大奔跑得快啊...");
        }
    }
    
    /**
     * 宝马
     */
    class Bmw implements Car {
        @Override
        public void run() {
            System.out.println("宝马跑得稳...");
        }
    }
    
    /**
     * 外观类
     *      隐藏系统复杂性,提供统一的访问接口
     */
    class CarMaker {
        private Car benz;
        private Car bmw;
    
        public CarMaker() {
            benz = new Benz();
            bmw = new Bmw();
        }
    
        /**
         * 隐藏系统的复杂性
         */
        public void benzRun() {
            // ... 也许很复杂,eg: 跑之前,要先环顾车一周,检查有没有人在车底(科三)
            benz.run();
            // ...  eg: 车没油了,跑不动了
        }
    
        /**
         * 隐藏系统的复杂性
         */
        public void bmwRun() {
            // ...如上
            bmw.run();
            // ...如上
        }
    }

    参考:

    https://www.runoob.com/design-pattern/facade-pattern.html

  • 相关阅读:
    Can you feel my word?
    木语录
    走在风雨中
    我看平淡生活……
    Can you feel my word?
    我看平淡生活……
    留言本
    Python(七)之匿名函数lambda
    python之常用模块logging
    python(六)之面向对象
  • 原文地址:https://www.cnblogs.com/shiyun32/p/12575731.html
Copyright © 2020-2023  润新知