设计模式---外观模式

有天老板如果让你给PS一个张图,而你对Photoshop一窍不通,这个时候你可以选择傻瓜式的美图秀秀,轻松搞定美图。其实这就是外观模式的设计想法,将复杂的处理过程封装成简单对外接口,便于使用。


#include 
class CPhotoProgress
{
public:

	virtual ~CPhotoProgress()
	{

	}

	virtual void progress() = 0;
protected:
	CPhotoProgress()
	{

	}
};
class CEyeProgress:
	public CPhotoProgress
{
public:
	CEyeProgress()
	{

	}
	~CEyeProgress()
	{

	}
	virtual void progress() override
	{
		std::cout << "Eye Progess" << std::endl;
	}
};
class CNoseProgress :
	public CPhotoProgress
{
public:
	CNoseProgress()
	{

	}
	~CNoseProgress()
	{

	}
	virtual void progress() override
	{
		std::cout << "Nose Progess" << std::endl;
	}
}; 

class CMeitu {
public:
	CMeitu()
	{
		mpEyeProgress = new CEyeProgress();
		mpNoseProgress = new CNoseProgress();
	}

	~CMeitu()
	{
		delete mpEyeProgress;
		delete mpNoseProgress;
	}
	void progess()
	{
		mpEyeProgress->progress();
		mpNoseProgress->progress();
	}
private:
	CPhotoProgress* mpEyeProgress;
	CPhotoProgress* mpNoseProgress;
};
int main()
{
	CMeitu* pMeitu = new CMeitu();
	pMeitu->progess();
	std::cin;
}

当系统设计力度比较小,用户需求某一特定功能,需要多个系统提供时,可以考虑外观模式对接口再次封装,形成简单明了的API。

你可能感兴趣的:(设计模式)