zoukankan      html  css  js  c++  java
  • 对象结构型

    介绍

    * 将客户端代码封装在一起
    * 如现在调用可三个方法a,b,c , 现在将其调用步骤封装到方法d中,现在只需要调用d就行了
    

    定义

    * 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用
    

    优点

    * 降低客户端代码的耦合程度
    * 降低客户端对调用代码的了解程度,甚至可以一无所知
    

    使用场景

    * 降低系统复杂度
    

    图解

    图片来自CSDN博主 - lovelion

    入门案例:

    代码:

    [子系统(被调用)]

    SubSystem1:

    public class SubSystem1 {
        public void method(){
            System.out.println("SubSystem1的method被调用");
        }
    }
    

    SubSystem2:

    public class SubSystem2 {
        public void method(){
            System.out.println("SubSystem2的method被调用");
        }
    }
    

    SubSystem3:

    public class SubSystem3 {
        public void method(){
            System.out.println("SubSystem3的method被调用");
        }
    }
    

    [外观(门面)]

    Facade:

    public class Facade {
    
        private SubSystem1 s1;
        private SubSystem2 s2;
        private SubSystem3 s3;
    
        public Facade() {
            s1 = new SubSystem1();
            s2 = new SubSystem2();
            s3 = new SubSystem3();
        }
    
        public void method(){
            s1.method();
            s2.method();
            s3.method();
        }
    
    }
    

    测试:

    public class Main {
        public static void main(String[] args){
    
            //未使用外观(门面)模式之前
    /*
            SubSystem1 s1 = new SubSystem1();
            SubSystem2 s2 = new SubSystem2();
            SubSystem3 s3 = new SubSystem3();
            s1.method();
            s2.method();
            s3.method();
    */
    
            //使用外观(门面)模式之后
            Facade facade = new Facade();
            facade.method();
    
        }
    }
    
  • 相关阅读:
    数据库
    计算机基础知识系列
    《大话数据结构》参考
    数据结构与算法系列
    python cookbook
    Python教程 廖雪峰
    Python入门学习系列
    认识 React——声明式,高效且灵活的用于构建用户界面的 JavaScript 库
    线程---同步(synchronized)
    线程---插队和礼让执行(join和yield)
  • 原文地址:https://www.cnblogs.com/tandi19960505/p/8179346.html
Copyright © 2011-2022 走看看