zoukankan      html  css  js  c++  java
  • 14结构型模式之外观模式

    概念

       Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。

    角色和职责

    Façade

    为调用方, 定义简单的调用接口。

    Clients

         调用者。通过Facade接口调用提供某功能的内部类群。

    Packages

         功能提供者。指提供功能的类群(模块或子系统)

    适用于:

      为子系统中统一一套接口,让子系统更加容易使用。

    案例

    //实现多个子系统的封装

    #include <iostream>
    using namespace std;
    
    class SystemA
    {
    public:
    	void doThing()
    	{
    		cout << "systemA do...." << endl;
    	}
    };
    
    class SystemB
    {
    public:
    	void doThing()
    	{
    		cout << "systemA do...." << endl;
    	}
    };
    
    class SystemC
    {
    public:
    	void doThing()
    	{
    		cout << "systemA do...." << endl;
    	}
    };
    
    class Facade
    {
    public:
    	Facade()
    	{
    		a = new SystemA;
    		b = new SystemB;
    		c = new SystemC;
    	}
    	~Facade()
    	{
    		delete a;
    		delete b;
    		delete c;
    	}
    
    	void doThing()
    	{
    		a->doThing();
    		b->doThing();
    		c->doThing();
    	}
    
    protected:
    private:
    	SystemA *a;
    	SystemB *b;
    	SystemC *c;
    };
    
    
    void main1414()
    {
    	/*
    	SystemA *a = new SystemA;
    	SystemB *b = new SystemB;
    	SystemC *c = new SystemC;
    
    	a->doThing();
    	b->doThing();
    	c->doThing();
    
    	delete a;
    	delete b;
    	delete c;
    	*/
    
    	Facade *f = new Facade;
    	f->doThing();
    	delete f;
    	cout<<"hello..."<<endl;
    	system("pause");
    	return ;
    }
    

      

  • 相关阅读:
    dockerfile 踩坑记录
    Windows安装配置xampp
    docker 容器中设置 mysql lampp php软链接
    linux 软件连接 创建/查看/删除
    mysql 远程连接权限
    linux设置静态获取ip
    android 自定义控件中获取属性的三种方式(转)
    android 自定义组件-带图片的textView
    CodeIgniter 3之Session类库(3)(转)
    CodeIgniter 3之Session类库(2)(转)
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/10357998.html
Copyright © 2011-2022 走看看