zoukankan      html  css  js  c++  java
  • 【设计模式】—— 外观模式Facade

      前言:【模式总览】——————————by xingoo

      模式意图

      外观模式主要是为了为一组接口提供一个一致的界面。从而使得复杂的子系统与用户端分离解耦。

      有点类似家庭常用的一键开关,只要按一个键,台灯卧室客厅的灯都亮了。虽然他们各有各自的开关,但是对外用一个来控制。

      应用场景

      1 为复杂系统 提供简单的接口。

      2 客户程序与抽象类的实现部分分离。

      3 构建层次系统时,用作入口。

      模式结构

      Facade 对外的统一接口

    class Facade{
        public void operation(){
            subsystemClass1.operation();
            subsystemClass2.operation();
        }
    }

      subsystem Class 内部系统的实现类

    class subsystemClass1{
        public static void operation(){
            System.out.println("subsystemClass1 operation()");
        }
    }
    class subsystemClass2{
        public static void operation(){
            System.out.println("subsystemClass2 operation()");
        }
    }

      代码结构

    package com.xingoo.facade;
    class Facade{
        public void operation(){
            subsystemClass1.operation();
            subsystemClass2.operation();
        }
    }
    
    class subsystemClass1{
        public static void operation(){
            System.out.println("subsystemClass1 operation()");
        }
    }
    class subsystemClass2{
        public static void operation(){
            System.out.println("subsystemClass2 operation()");
        }
    }
    public class Client {
        public static void main(String[] args) {
            Facade facade = new Facade();
            facade.operation();
        }
    }

      运行结果

    subsystemClass1 operation()
    subsystemClass2 operation()
  • 相关阅读:
    项目各方面的目标
    WPF : Imaging
    在Windows EndSession时, WPF的Shutdown()和Winforms的Application.Exit()都不可靠
    软件运行流程
    做事首先要想到的是责任和分配机制
    RhinoMocks : Stub和Mock的区别
    Visual Studio Marco : CollapseLogRegions
    使用C#实现顺序队列
    MVC 分页
    sql 行列转置(将行转换为列)
  • 原文地址:https://www.cnblogs.com/xing901022/p/4066020.html
Copyright © 2011-2022 走看看