‫۹ سال و ۷ ماه قبل، سه‌شنبه ۵ اسفند ۱۳۹۳، ساعت ۱۵:۵۳
فرض من این بود که کاربر نیازی به رفرنس گیری از هر آبجکت ندارد.
مثلا طبق مقاله:
 
// ساخت کیک مخصوص مخلوط با روکش کاکائویی و روکش میوه‌ای به صورت همزمان
Cake c = new SpecialCake();
Chocolate ch = new Chocolate(c);
Fruity f = new Fruity(ch);
همانطور که در مقاله گفته شده:
Cake cc1 = new Cake();
Type1 cd1 = new Type1 (cc1); 
Type2 cd2 = new Type2(cc1);

کد فوق را میتوان اینگونه هم داشت:
// ساخت کیک مخصوص مخلوط با روکش کاکائویی و روکش میوه‌ای به صورت همزمان
Cake c = new SpecialCake();
c = new Chocolate(c);
c = new Fruity(c);

بدون اینکه شیء جدید برای تایپ جدید بسازیم.
‫۹ سال و ۷ ماه قبل، سه‌شنبه ۵ اسفند ۱۳۹۳، ساعت ۱۵:۳۰
فرقی نمیکنه. اگر قرار بود فرق میکرد و نیاز به ایجاد تغییرات در کد بود که این الگوها ارائه نمی‌شدند.
// ساخت کیک معمولی با روکش کاکائویی
Cake c = new CommonCake();
c = new Chocolate(c);

// ساخت کیک معمولی با روکش میوه‌ای 
Cake c = new CommonCake();
c = new Fruity(c);

// ساخت کیک معمولی مخلوط با روکش کاکائویی و روکش میوه‌ای به صورت همزمان
Cake c = new CommonCake();
c = new Chocolate(c);
c = new Fruity(c);

// ساخت کیک مخصوص مخلوط با روکش کاکائویی و روکش میوه‌ای به صورت همزمان
Cake c = new SpecialCake();
c = new Chocolate(c);
c = new Fruity(c);

برای هر c میتوان متدهای اینترفیسش را اجرا کرد.
‫۹ سال و ۷ ماه قبل، سه‌شنبه ۵ اسفند ۱۳۹۳، ساعت ۱۴:۲۴
در استفاده از الگوی دکوراتور روش بهتر بهره گیری از آن بصورت سری است و نه ایجاد شیء جدید برای تایپ جدید.
مثلا:
Cake c = new Cake();

c = new Type1(c);
c = new SubType(c); //SubType derived from  Cake (e.g. CakeComponent like Cream)  

//or: c = new Type1 (new SubType(c));  

Console.WriteLine(c.Bake() + ", " + c.GetPrice());