设计模式-结构型-外观


#ifndef _FACADE_H_                                           
#define _FACADE_H_

#include "stdafx.h"

class Subsystem1                                            
{                                                           
public:                                                     
	Subsystem1()
	{
	}                                          
	~Subsystem1()
	{
	}                                        
	void Operation();                                                                                 
}; 

class Subsystem2                                             
{                                                        
public:                                                 
	Subsystem2()
	{
	}                                       
	~Subsystem2()
	{
	}                                     
	void Operation();                                                                                       
};                                                          

class Facade                                                
{                                                                  
public:                                                     
	Facade();                                            
	~Facade();                                           
	void OperationWrapper();                                                        
private:                                                    
	Subsystem1* _subs1;                                  
	Subsystem2* _subs2;                                   
};                                                               
#endif //~_FACADE_H_                                              




#include "stdafx.h"
#include "facade_impl.h" 
#include <iostream> 
using namespace std; 

void Subsystem1::Operation() 
{ 
	cout<<this<<" Subsystem1 operation"<<endl; 
} 

void Subsystem2::Operation() 
{ 
	cout<<this<<" Subsystem2 operation"<<endl; 
} 

Facade::Facade() 
{ 
	this->_subs1 = new Subsystem1(); 
	this->_subs2 = new Subsystem2(); 
}

Facade::~Facade() 
{ 
	delete _subs1; 
	delete _subs2; 
} 

void Facade::OperationWrapper() 
{ 
	this->_subs1->Operation(); 
	this->_subs2->Operation(); 
} 

// Facade.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include "facade_impl.h"
using namespace std;

// 为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接
// 口使得这一子系统更加容易使用

int _tmain(int argc, _TCHAR* argv[])
{
	Facade* f = new Facade(); 

	f->OperationWrapper();//包含sub1,sub2两个操作

	delete f;
	system("pause");

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值