设计模式之门面模式(facade)

1、定义

门面模式(Facade Pattern)也叫做外观模式,是一种比较常用的封装模式。要求一个子系统的外部与其内部的通讯必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

2、通用类图

Facade门面角色:客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任。一般情况下,本角色会将所有从客户端发来的请求委派到相应的子系统中去,也就是说该角色没有实际的业务逻辑,只是一个委托类。

subsystem子系统角色:可以同时有一个或多个子系统。每个子系统都不是一个单独的类,而是一个类的集合。子系统并不知道门面的存在。对于子系统而言,门面仅仅是另一个客户端而已。

3、代码清单

package Facade;
/**
 *子系统A
 * 2014-8-13下午3:07:10-limiracle
 */
public class ClassA {
    public void methodA(){

    }
}
package Facade;
/**
 *子系统B
 * 2014-8-13下午3:07:10-limiracle
 */
public class ClassB {
public void methodB(){

    }
}
package Facade;

public class Facade {
    //被委托的对象
    private  ClassA classA=new ClassA();
    private ClassB classB=new ClassB();
    //提供给外部访问的方法
    public void methodA(){
        classA.methodA();
    }
    public void methodB(){
        classB.methodB();
    }
}

设计模式之门面模式(facade)

时间: 2024-12-20 20:10:10

设计模式之门面模式(facade)的相关文章

设计模式之门面模式---Facade Pattern

模式的定义 门面模式(Facade Pattern)也叫做外观模式,定义如下: Provide a unified interface to a set of interfaces in a subsystem. Facade defines a highet-level interface that makes the subsystem easier to use. 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行.门面模式提供一个高层次的接口,使得子系统更易于使用. 类型 结构

大熊君说说JS与设计模式之(门面模式Facade)迪米特法则的救赎篇------(监狱的故事)

一,总体概要 1,笔者浅谈 说起“门面”这个设计模式其实不论新老程序猿都是在无意中就已经运用到此模式了,就像我们美丽的JS程序员一样不经意就使用了闭包处理问题, 1 function Employee(name) { 2 var name = name; 3 this.say = function () { 4 console.log("I am employee " + name) ; 5 } ; 6 } 代码中“say”是一个function,Employee也是一个functio

外观模式 门面模式 Facade 创建型 设计模式(十三)

外观模式(FACADE) 又称为门面模式 意图 为子系统中的一组接口提供一个一致的界面 Facade模式定义了一个高层接口,这一接口使得这一子系统更加易于使用. 意图解析 随着项目的持续发展,系统基本上都是会往功能更全面的方向发展,那么也就意味着我们的系统将会变得更加复杂. 系统会被划分为多个单独的子系统,每个子系统完成一部分功能,通过分工协作完成全部功能. 一个子系统也可能进一步拆分为更小的几个子系统. 程序中的文件将会越来越多,相互关联也会变得更加复杂 当使用一个功能的时候,作为客户端 你需

说说设计模式~门面模式(Facade)

返回目录 门面模式(Facade)属于结构型模式的一种,它符合面向对象的封装原则,但又不符合开闭原则,呵呵,今天我们主要说它的优点,不谈缺点. 定义 门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口.使用子系统更容易使用. 技巧 我们在设计子类时,由于外部通过门面去访问它的功能,所以一般子类都会被声明为internal. 何时能用到它? 1.客户只需要使用某个复杂系统的子集,或者需要以一种特殊的方式与系统交互时,使用门面模式. 2.当

JS设计模式(门面模式)

<!--JS设计模式(门面模式)--> // 门面模式的概念:简化API接口 最经典的就是事件 // 做一件事情: 必须要调用2个函数分别是 a , b //案例:获得页面上多个元素并设置css样式 window.onload=function(){ setCss(["div1","div2","div3"],{ background:"blue", color:"#fff" }); } fun

设计模式之外观模式(Facade)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些具体的类的信息封装起来.第二,它们隐藏了这些类的实例是如何被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以

设计模式之门面模式20170728

结构型设计模式之门面模式: 一.含义 门面模式也叫做外观模式,是一种比较常用的封装模式,其定义如下: 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层次的接口,使得子系统更易于使用. 通俗来说,门面模式注重"统一的对象",也就是提供一个访问子系统的接口,除了这个接口不允许有任何访问子系统的行为发生.也就是说,门面对象是外界访问子系统内部的唯一通道. 二.代码说明 1.主要有两个角色 1)门面角色 客户端可以调用这个角色的方法.此角色知晓子系统的所有功能

门面模式-Facade Pattern(Java实现)

门面模式-Facade Pattern 为一个复杂的模块或子系统提供一个简单的供外界访问的接口 本文中代码的例子如下: 一个矿场有很多矿工, 矿工的职责也都不一样. 但一样的是什么呢? 一样的就是每个矿工每天都在重复一样的事情....起床, 上班, 工作, 下班, 睡觉...... 要想管理这么多矿工的这么多事情可不简单(好麻烦啊...挨个调用的时候开发者也有可能会忘掉某个人, 或者忘掉某一个方法)., 再举个栗子, 比如操作数据库也一样, 要加载驱动, 建立连接, 操作数据库, 关闭连接. 这

设计模式_Facade_门面模式

形象例子: 我有一个专业的Nikon相机,我就喜欢自己手动调光圈.快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会.幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整, 这样MM也可以用这个相机给我拍张照片了.门面模式: 外部与一个子系统的通信必须通过一个统一的门面对象进行.门面模式提供一个高层次的接口,使得子系统更易于使用.每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式.但整个系统可以有多个门面类.