设计模式读书笔记:facade(外观)

2015-07-10 16:36:30


意图:

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

结构图:来自 《23种设计模式 - 郗晓勇》

实现:https://github.com/panshiqu/patterns/tree/master/Facade

Facade

#include "Input.h"
#include "Output.h"

namespace NS_FACADE {

class Facade {
public:
	Facade() {}
	virtual ~Facade() {}
	void inputAndOutput(void)
	{
		Input in;
		Output out;
		out.outputStr(in.inputStr());
	}
};

} /* namespace NS_FACADE */

Input

#include <iostream>

namespace NS_FACADE {

class Input {
public:
	Input() {}
	virtual ~Input() {}
	std::string inputStr(void)
	{
		std::string str;
		std::cin >> str;
		return str;
	}
};

} /* namespace NS_FACADE */

Output

#include <iostream>

namespace NS_FACADE {

class Output {
public:
	Output() {}
	virtual ~Output() {}
	void outputStr(std::string str)
	{
		std::cout << str << std::endl;
	}
};

} /* namespace NS_FACADE */

main

#include "Facade/Facade.h"
using namespace NS_FACADE;
int main(void)
{
	Facade facade;
	facade.inputAndOutput();
}

附加: