43
1
using System;
2
3
public class Program
4
{
5
public static void Main()
6
{
7
MyClass2 class2 = new MyClass2();
8
Logger1 log1 = new Logger1();
9
class2.Log += log1.Log;
10
Logger2 log2 = new Logger2();
11
class2.Log += log2.Log;
12
13
class2.DoSomeProcess();
14
}
15
public class MyClass2
16
{
17
public delegate void LogHandler(string message);
18
public LogHandler Log;
19
20
public void DoSomeProcess()
21
{
22
Log("Process Started");//class is not aware of logging implementation
23
/* Do the tasks **/
24
Log("Process Completed");//class is not aware of logging implementation
25
}
26
27
}
28
29
public class Logger1
30
{
31
public void Log(string message)
32
{
33
Console.WriteLine("Logger 1 (Disk) - "+message);
34
}
35
}
36
public class Logger2
37
{
38
public void Log(string message)
39
{
40
Console.WriteLine("Logger 2 (DB or web)- "+message);
41
}
42
}
43
}
Cached Result