الگوی طراحی Decorator در c++‎

 

 زمانی مفید است که می خواهید قابلیت (به صورت ایستا یا پویا) را به یک شی اضافه کنید بدون کلاس زیر کلاس کلاس پایه  و همچنین دیگر اشیاء یک کلاس پایه را تحت تاثیر قرار ندهید.
 
مثال ساده :
( کد نسبت به کد موجود در لینک منبع یه دلیل وجود نشت حافظه در کد موجود در لینک اصلاح شد )
 
خروجی :

Basic concrete objects and methods...
NicolasCage is acting
JohnTravolta is acting

Decorator objects and methods...
JohnTravolta is acting
Commissioner is the role
JohnTravolta, the Commissioner: Cought Smuggler
NicolasCage is acting
NicolasCage is acting
Smuggler is the role
NicolasCage, the Smuggler: Stole Gold
JohnTravolta is acting
JohnTravolta is acting
Robber is the role
JohnTravolta, the Robber: Stole Dollars

 

 

 

 

منبع