forked from danieldantasdev/DesignPatternsInUse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
16 lines (12 loc) · 897 Bytes
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* In this example, DataRenderer is the context, and IRenderStrategy is the strategy interface.
* JsonRenderStrategy, XmlRenderStrategy, and CsvRenderStrategy are concrete strategies.
* This pattern allows the DataRenderer class to change its rendering behavior dynamically,
* depending on the strategy object it's composed with, promoting flexibility and making it easy
* to introduce new rendering algorithms. */
string sampleData = "Hello, Strategy Pattern";
DataRenderer renderer = new DataRenderer(new JsonRenderStrategy());
Console.WriteLine(renderer.RenderData(sampleData)); // Renders data in JSON format
renderer.SetRenderStrategy(new XmlRenderStrategy());
Console.WriteLine(renderer.RenderData(sampleData)); // Renders data in XML format
renderer.SetRenderStrategy(new CsvRenderStrategy());
Console.WriteLine(renderer.RenderData(sampleData)); // Renders data in CSV format