What is the need for Decorator Pattern in C#?

If you want to dynamically add additional tasks to an object, then you can do it using Decorator pattern. Here is a code sample to demonstrate how to use decorators:



class sampleClass {
public virtual void sampleMethod() {
Console.WriteLine(“Executing sampleMethod of sampleClass”);
}
}
abstract class decoratorClass:sampleClass {
protected sampleClass sampleObj;
public sampleClass SampleObj {
set { sampleObj = value; }
}
public override void sampleMethod() {
if (sampleObj != null) { sampleObj.sampleMethod(); }
}
}
class derivedDecorator:decoratorClass {
public override void sampleMethod() {
base.sampleMethod();
AddedActivity();
}
public void AddedActivity() {
Console.WriteLine(“Executing additional behavior using decorators”);
}
}
class testClass {
public static void Main() {
sampleClass obj = new sampleClass();
derivedDecorator dObj = new derivedDecorator();
dObj.SampleObj = obj;
dObj.sampleMethod();
}
}

Output of this code will be:

Executing sampleMethod of sampleClass
Executing additional behavior using decorators


FREE Subscription

Subscribe to our mailing list and receive new articles
through email. Keep yourself updated with latest
developments in the industry.

Name:
Email:

Note : We never rent, trade, or sell my email lists to
anyone. We assure that your privacy is respected
and protected.

Visit .NET Programming Tutorial Homepage

______________________________________________________

Recommended Resource

| What is the need for Bridge Pattern in C#? | What is the need for Builder Pattern in C#? | What is the need for Chain of Responsibility Pattern in C#? | What is the need for Command Pattern in C#? | What is the need for Composite Pattern in C#? | What is the need for Decorator Pattern in C#? | What is the need for Flyweight Pattern in C#? | What is the need for Interpreter Pattern in C#? | What is the need for Iterator Pattern in C#? | What is the need for Mediator Pattern in C#? | What is the need for Memento Pattern in C#? | What is the need for Prototype Pattern in C#? | What is the need for State Pattern in C#? | What is the need for Strategy Pattern in C#? | What is the need for Template Method Pattern in C#? | What is the need for unsafe code in C#? | What is the purpose of assert() in C#? | What is the purpose of AutoResetEvent in .NET? | What is the purpose of Console.ReadLine() in C#? | What is the purpose of machine.config file in .NET? |


“Amazon and the Amazon logo are trademarks of Amazon.com, Inc. or its affiliates.”

| Privacy Policy for www.dotnet-guide.com | Disclosure | Contact |

Copyright - © 2004 - 2023 - All Rights Reserved.