Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace Decorator
- {
- public interface IWriter
- {
- void Write(string message);
- }
- public class ConsoleLogWriter : IWriter
- {
- public void Write(string message)
- {
- Console.WriteLine("ConsoleLogWriter:" + message);
- }
- }
- public class FileLogWriter : IWriter
- {
- public void Write(string message)
- {
- Console.WriteLine("FileLogWriter:" + message);
- }
- }
- public class ClientWriter : IWriter
- {
- private List<IWriter> _writers = new List<IWriter>();
- public void Add(IWriter writer)
- {
- if (!_writers.Contains(writer))
- _writers.Add(writer);
- }
- public void Remove(IWriter writer)
- {
- if (_writers.Contains(writer))
- _writers.Remove(writer);
- }
- public void Write(string message)
- {
- for (var i = 0; i < _writers.Count; i++)
- {
- _writers[i].Write(message);
- }
- }
- }
- class Program
- {
- public static bool UseConsole = true;
- public static bool UseFile = true;
- static void Main(string[] args)
- {
- var clientWriter = new ClientWriter();
- if (UseConsole)
- clientWriter.Add(new ConsoleLogWriter());
- if (UseFile)
- clientWriter.Add(new FileLogWriter());
- clientWriter.Write("message");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment