程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 大話設計模式-裝飾模式(C++)

大話設計模式-裝飾模式(C++)

編輯:C++入門知識

大話設計模式-裝飾模式(C++)


《大話設計模式》的裝飾模式的C++實現。

結構圖:

\\

DecoratZ喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vci5oOjwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">#ifndef _DECORATOR_H #define _DECORATOR_H #include #include using namespace std; //ConcreteComponent類 class CPerson { public: CPerson(){}; CPerson(string str):m_sName(str){}; virtual void Show(); protected: private: string m_sName; }; class CFinery : public CPerson { public: //CFinery(CPerson *tmp):m_pComponent(tmp){}; void Decorate(CPerson *component); void Show(); protected: private: CPerson *m_pComponent; }; //ConcreteDecorator class CTShirts :public CFinery { public: //CTShirts(CPerson *tmp):m_pComponent(tmp){}; void Show(); protected: private: }; class CBigTrouser : public CFinery { public: //CBigTrouser(CPerson *tmp):m_pComponent(tmp){}; void Show(); protected: private: }; #endif


Decorator.cpp:
#include "Decorator.h"

void CPerson::Show()
{
	cout<<"裝飾人:"<Show();
	}
}

void CFinery::Decorate( CPerson *component )
{
	m_pComponent = component;
}
void CTShirts::Show()
{
	CFinery::Show();
	cout<<"TShirts"<


main.cpp:
#include 
#include "Decorator.h"
using namespace std;


int main()
{	//裝飾模式
	CPerson person("lin");
	CBigTrouser bigtrouser;
	CTShirts Tshirts;
	bigtrouser.Decorate(&person);
	Tshirts.Decorate(&bigtrouser);
	Tshirts.Show();

	return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved