关闭

设计模式_外观模式

标签: 外观模式设计模式c++完整可运行代码新手
292人阅读 评论(0) 收藏 举报
分类:

外观模式

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

#ifndef _FACADE_H_
#define _FACADE_H_
#include<iostream>

//子系统1
class subSystemOne
{
public:
    void subMethoredOne()
    {
        std::cout<< "subsystem one" << std::endl;
    }
};

//子系统2
class subSystemTwo
{
public:
    void subMethoredTwo()
    {
        std::cout<< "subsystem two" << std::endl;
    }          
};

//子系统3
class subSystemThree
{
public:
    void subMethoredThree()
    {
        std::cout<< "subsystem three" << std::endl;
    }
};

//外观,对外提供简单的接口
class facade
{
public:
    facade()
    {
        sub1 = new subSystemOne();
        sub2 = new subSystemTwo();
        sub3 = new subSystemThree();
    }

    //组合子系统,对外提供的功能A
    void methoredA()
    {
        sub1->subMethoredOne();
        sub2->subMethoredTwo();
    }

    //组合子系统,对外提供的功能B
    void methoredB()
    {
        sub1->subMethoredOne();
        sub3->subMethoredThree();
    }

private:
    subSystemOne * sub1;
    subSystemTwo * sub2;
    subSystemThree * sub3;
};

#endif

int main()
{
    facade * face = new facade();
    face->methoredA();
    face->methoredB();
    return 0;
}


1
0
查看评论

最常用的设计模式---外观模式(C++实现)

外观模式:提供了一个统一的接口,用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用。目地:让接口变得简单,是为了简化子系统的接口。
  • lh844386434
  • lh844386434
  • 2014-01-09 17:25
  • 1663

c#设计模式==外观模式

外观模式,是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。   不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(...
  • hjf161105
  • hjf161105
  • 2017-07-06 20:53
  • 99

[设计模式](二)外观模式和建造者模式的区别

网上博客很多使用KFC套餐来做的例子,讲述地不够贴切,觉得容易误导读者,在那个例子中KFC的套餐(ConcretedBulider)的具体内容被消费者(Client)清楚地了解且也是其关心的点,但是在建造者模式里消费者并不了解也不关心产品的创建过程,而在例子中建造者(Builder)也只是简单地提供...
  • stephzcj
  • stephzcj
  • 2017-05-22 16:05
  • 470

Android重拾设计模式系列——外观模式

定义及实质 定义 为子系统中的一组接口提供一个一致的界面,这个界面使得子系统更加容易使用。 解释:英雄吹响号角(相当于统一界面,用于发动攻击),命令部队对敌军发动攻击;接下来部队里的各种兵种开始对敌军发动攻击。咕噜兵发起了攻击,狼骑发起了攻击,牛头人发起了攻击,风骑士发起了攻击…号角这个统一界...
  • qq_31370269
  • qq_31370269
  • 2016-11-16 12:51
  • 3695

【设计模式】学习笔记10:外观模式(Facade)

上一次我们已经知道了适配器模式是如何将一个类的接口转换成另一个符合客户期望的接口了。Java中要做到这一点,必须将一个不兼容接口的对象包装起来,变成兼容的对象。 这次要学的是外观模式. 外观模式是将一个或数个类的复杂的一切都隐藏在背后,只显露出一个干净美好的外观。 走近外观模式 假设要用Java设计...
  • shuangde800
  • shuangde800
  • 2013-08-13 00:42
  • 2718

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

这个模式比较简单,嘿嘿,简单写一下。 老样子,先看 外观模式(Facade Pattern)定义:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。其实就是为了方便客户的使用,把一群操作,封装成一个方法。 举个例子:我比较喜欢看电影,于是买了投影...
  • lmj623565791
  • lmj623565791
  • 2014-05-14 22:51
  • 9311

java/android 设计模式学习笔记(14)---外观模式

这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是在现阶段各种第三方 SDK 基本很大概率都会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然,在我们...
  • zhao_zepeng
  • zhao_zepeng
  • 2016-07-17 18:14
  • 3489

JAVA设计模式之门面模式(外观模式)

医院的例子   现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各...
  • jason0539
  • jason0539
  • 2014-04-02 07:16
  • 25976

Unity3d之设计模式(四)外观模式

一、定义 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 解释:简单来说,客户端需要调用一个特别复杂的子系统中的多个接口,如果直接调用逻辑处理起来会非常复杂,而且不便于系统扩展。外观模式把这个复杂的子系统统一起来,提供几个高层接口...
  • qq563129582
  • qq563129582
  • 2016-12-15 18:24
  • 696

深入浅出设计模式之命令模式、适配器模式、外观模式

命令模式
  • u011531613
  • u011531613
  • 2017-03-22 20:42
  • 482
    个人资料
    • 访问:11917次
    • 积分:462
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:3篇
    • 译文:0篇
    • 评论:6条
    最新评论