zoukankan      html  css  js  c++  java
  • 外观模式

    视频连接:https://www.bilibili.com/video/BV1iQ4y1M7FV/

    今天为大家分享一下外观模式:

    外观模式动机

      我们来通过这个例子,看看外观模式的模式动机:

      假设现在在一个餐馆里面,有顾客a、b、c需要点餐吃饭。如左图所示,顾客a、b、c需要自己取点餐,然后自己去取餐,得到自己想点的菜品1、2、3、4、5、6、7等等。再看有图,我们给菜品和顾客之间,增加了一个服务员,顾客就只需要和服务员说明,自己想要什么菜,让服务员来上菜,这样顾客就不需要跑来跑去去拿每一个菜了。这里的服务员即外观角色。引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。

     外观模式模式结构

     

     外观模式的定义

     模式分析

    模式优缺点

    外观模式的结构与实现

    1. 模式的结构

    外观(Facade)模式包含以下主要角色。

    1. 外观(Facade)角色:为多个子系统对外提供一个共同的接口。
    2. 子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观角色访问它。
    3. 客户(Client)角色:通过一个外观角色访问各个子系统的功能。

    实现代码

    package facade;
    public class FacadePattern
    {
        public static void main(String[] args)
        {
            Facade f=new Facade();
            f.method();
        }
    }
    //外观角色
    class Facade
    {
        private SubSystem01 obj1=new SubSystem01();
        private SubSystem02 obj2=new SubSystem02();
        private SubSystem03 obj3=new SubSystem03();
        public void method()
        {
            obj1.method1();
            obj2.method2();
            obj3.method3();
        }
    }
    //子系统角色
    class SubSystem01
    {
        public  void method1()
        {
            System.out.println("子系统01的method1()被调用!");
        }   
    }
    //子系统角色
    class SubSystem02
    {
        public  void method2()
        {
            System.out.println("子系统02的method2()被调用!");
        }   
    }
    //子系统角色
    class SubSystem03
    {
        public  void method3()
        {
            System.out.println("子系统03的method3()被调用!");
        }   
    }
  • 相关阅读:
    EIGRP系统复习【转载】
    EIGRP系统复习【转载】
    EIGRP系统复习【转载】
    新CCIE笔记之'口口相传'路由协议
    新CCIE笔记之'口口相传'路由协议
    新CCIE笔记之'口口相传'路由协议
    【★】自制网络心理需求大排名!
    【★】假如人类使用16进制
    【★】假如人类使用16进制
    算法之【大整数乘法】
  • 原文地址:https://www.cnblogs.com/LiaoMengyu/p/12661439.html
Copyright © 2011-2022 走看看