设计模式 外观模式

外观模式(Facade)为子系统的一组接口提供一个统一的高层接口,使得子系统更加容易使用。

    class SubSystemOne
    {
        public void MethodOne()
        {
            Console.WriteLine(" 子系统方法一");
        }
    }

    class SubSystemTwo
    {
        public void MethodTwo()
        {
            Console.WriteLine(" 子系统方法二");
        }
    }

    class SubSystemThree
    {
        public void MethodThree()
        {
            Console.WriteLine(" 子系统方法三");
        }
    }

    class SubSystemFour
    {
        public void MethodFour()
        {
            Console.WriteLine(" 子系统方法四");
        }
    }

子系统接口

    class Facade
    {
        SubSystemOne one;
        SubSystemTwo two;
        SubSystemThree three;
        SubSystemFour four;

        public Facade()
        {
            one = new SubSystemOne();
            two = new SubSystemTwo();
            three = new SubSystemThree();
            four = new SubSystemFour();
        }

        public void MethodA()
        {
            Console.WriteLine("\n方法组A() ---- ");
            one.MethodOne();
            two.MethodTwo();
            four.MethodFour();
        }

        public void MethodB()
        {
            Console.WriteLine("\n方法组B() ---- ");
            two.MethodTwo();
            three.MethodThree();
        }
    }

外观类

外观模式完美体现依赖倒转原则和迪米特法则,降低耦合,减少依赖。

时间: 2024-10-20 18:04:49

设计模式 外观模式的相关文章

设计模式 - 外观模式(facade pattern) 详解

外观模式(facade pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy 外观模式(facade pattern): 提供了一个统一的接口, 用来访问子系统中的一群接口. 外观定义了一个高层接口, 让子系统更容易使用. 外观模式包含三个部分: 1. 子系统: 子类, 单个复杂子类 或 多个子类; 2. 外观(facade)类: 把子系统设计的更加容易使用; 3. 客户: 只需要调用外观类. 与适配器模式(adapter pattern)的

设计模式 外观模式 一键电影模式

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/25837275 这个模式比较简单,嘿嘿,简单写一下. 老样子,先看 外观模式(Facade Pattern)定义:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用.其实就是为了方便客户的使用,把一群操作,封装成一个方法. 举个例子:我比较喜欢看电影,于是买了投影仪.电脑.音响.设计了房间的灯光.买了爆米花机,然后我想看电影的时候,我需要

浅谈Python设计模式 - 外观模式

声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 外观模式 外观模式的核心在于将复杂的内部实现包装起来,只向外界提供简单的调用接口.类似现实世界中的电脑,开机按钮可以说就是一个简单的调用接口,帮用户屏蔽了复杂的内部电路. 外观设计模式 -- 有助于隐藏系统的内部复杂性,并且通过一个简化的接口向客户端暴露必要的部分.本质上,外观是在已有复杂系统之上实现的一个抽象层. 本来想引用书中的例子,但是其整个代码被复杂化,不好理解.然后在网上看到一

java语言实现结构型设计模式—外观模式

一.描述 外观模式又叫门面模式,就是对一个复杂的系统进行包装,该系统对外的接口统一由外观类提供.当一个复杂的系统需要对外提供接口时,就需要将对外提供的接口统一封装在一个外观类中供外系统使用.外观模式最大的特点就是将细粒度的对象包装成粗粒度的对象,应用程序通过访问这个外观对象来完成细粒度对象的调用.这样应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性. 总的来说,外观模式就是为子系统对外提供的一组接口,这组接口提供一个统一的界面,使得其它

设计模式-外观模式(Facade Pattern)

本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 外观模式简介 外观模式的作用用一句话说就是简化接口,举个例子楼主每次编程的时候都要点开IDE.点开一本电子书.点开音乐播放器.点开QQ,非常的麻烦,如果能有一个一键打开这些所有东西的功能键是不是会很好?这就是外观模式所做的事情. 外观模式的定义和基本结构 定义:外观模式为一个接口众多的子系统提供一个统一的高层接口,使这个子系统更加容易使用. 来自<Head First>里的一张结构图 sub

设计模式 --外观模式(Facade)

什么是外观模式? 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用. 简单点说:外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便. 概述: 在真实的应用系统中,一个子系统可能由很多类组成.子系统的客户为了它们的需要,需要和子系统中的一些类进行交互.客户和子系统的类进行直接的交互会导致客户端对

设计模式-外观模式的理解

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,使得这一子系统更加容易使用. 在机房收费系统中,外观模式用来解除U层和B层之间的耦合,按着以前的做法,在U层中的功能调用B层中的方法的时候,就需要U层完全了解B层中的方法都有哪些,自己的U层又是需要用到哪一个方法,再调用B层中的方法.这样的做法使得B层的东西完全暴露在了U层中,而且增加了U层和B层两者的耦合程度,B层做出的修改要考虑到U层的调用的问题,不利于系统的安全性.增加的外观模式,把B层中的一组方法都放到外观类Fa

[设计模式] 外观模式facade

外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来.客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构.DP一书的定义:为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.举个编译器的例子,假设编译一个程序需要经过四个步骤:词法分析.语法分析.中间代码生成.机器码生成.学过编译都知道,每一步都很复杂.对于编译器这个系统,就可以使用外观模式.可以定义

小菜学设计模式——外观模式

背景 一个坦克系统,子系统是履带系统,发动机系统,火炮系统,防卫装甲系统等.对外的接口就是暴露给使用人员的是Run(), shot(), stop()等.如果没有采用Facade模式,开动坦克需要直接依赖履带系统,发动机系统.直接去操作履带,操作发动机?各个接口和子系统都产生了紧耦合.(引用自互联网) 问题产生了:组件的客户(接口)和组件内各个复杂子系统有过多的耦合,随着外部客户程序和各个子系统的变化,这种耦合面临着变化的挑战. 如何简化外部客户程序和系统间的交互接口,如何将外部程序的演化和内部

结合Mybatis源码看设计模式——外观模式

定义 提供了一个统一的接口,用来访问子系统中一群接口 适用场景 子系统复杂,增加外观模式提供简单调用接口 构建多层系统结构,用外观对象作为每层入口 详解 外观模式,主要理解外观.通俗一点可以认为这个模式是将子系统封装到一起,提供给应用的层面就提供一个方法.不直接由应用层直接访问子系统.      下面我们看看ibatis的源码来具体理解外观模式. public MetaObject newMetaObject(Object object) { return MetaObject.forObjec