专栏首页xingoo, 一个梦想做发明家的程序员【设计模式】—— 外观模式Facade

【设计模式】—— 外观模式Facade

  模式意图

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

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

  应用场景

  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()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【设计模式】—— 桥接模式Bridge

      模式意图   这个模式使用的并不多,但是思想确实很普遍。就是要分离抽象部分与实现部分。   实现弱关联,即在运行时才产生依赖关系。   降低代码之间的耦合...

    用户1154259
  • 文件上传---动作条

      利用Apache commons fileupload上传文件,直接显示其完成的进度条。----示例代码源自《JAVA WEB王者归来》   1 首先要显示...

    用户1154259
  • 第一章 对象导言 第二章 对象的创建与使用

    1 抽象过程 2 对象接口 3 实现隐藏 4 重用 5 继承:重用接口 6 多态性:互换对象 7 创建销毁对象 8 异常处理:应对错误 9 分析...

    用户1154259
  • app框架整体设计

    程序员不务正业
  • LeetCode测试数据的爬虫

    LeetCode的(包括付费)题目到处都有,可是测试数据怎么找呢?我设想了一种方法,来获得每道题的测试数据。 首先,对于权限不严格的在线评测系统,比如以前常做的...

    企鹅号小编
  • elasticsearch压力测试工具之ESrally使用说明

    esrally是elastic search官方用于对ES集群进行压力测试的工具,使用esrally可以为我们构建不同版本集群,构造不同的参数和数据来进行压力测...

    没有故事的陈师傅
  • 架构师必须掌握的 10 条设计原则

    函数是程序员的工具中最重要的抽象形式。它们能更多地被重复使用,你需要编写的代码就越少,代码也因此变得更可靠。较小的函数遵循单一职责原则更有可能被重复使用。

    Java技术栈
  • 【Linux_Shell 脚本编程学习笔记一、条件表达式】

      if test (表达式为真)   if test !表达式为假   test 表达式1 –a 表达式2 两个表达式...

    梅花
  • 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下

    发布于 2018-07-05 11:39 更新于 2018-09...

    walterlv
  • Java 版 C 语言经典 100 例(11 - 15)

    兔子的规律为数列 1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始),利用递归求每个月的兔子数,然后求和

    村雨遥

扫码关注云+社区

领取腾讯云代金券