public static void Main(string[] args)
Customer myCustomer = new Customer(LoggerType.Debug);
myCustomer.Add("Leroy Jenkins");
public Customer(LoggerType loggerType)
objLogger = new TextLogger();
objLogger = new _debugLogger();
case LoggerType.Database:
objLogger = new DatabaseLogger();
objLogger = new EventLogger();
public void Add(string name)
Log(string.Format("{0} Added", name));
private void Log(string text)
if (objLogger.GetType() == typeof(TextLogger))
((TextLogger)objLogger).LogText(text);
else if (objLogger.GetType() == typeof(_debugLogger))
((_debugLogger)objLogger).LogDebug(text);
else if (objLogger.GetType() == typeof(DatabaseLogger))
((DatabaseLogger)objLogger).LogDb(text);
else if (objLogger.GetType() == typeof(EventLogger))
((EventLogger)objLogger).LogEvent(text);
public enum LoggerType { Debug, Text, Database, Console, EventViewer };
public class _debugLogger
public void LogDebug(string text)
System.Diagnostics.Debug.WriteLine(text);
public void LogText(string text)
public class DatabaseLogger
public void LogDb(string text)
public void LogEvent(string text)