Skip to content

Instantly share code, notes, and snippets.

@javierguerrero
Created March 24, 2023 06:15
Show Gist options
  • Save javierguerrero/ec48759c51ba5c07bb7374a11f811d19 to your computer and use it in GitHub Desktop.
Save javierguerrero/ec48759c51ba5c07bb7374a11f811d19 to your computer and use it in GitHub Desktop.
Open–closed principle (OCP)
public interface ILogger
{
void Log(string message);
}
public class ConsoleLogger : ILogger
{
public void Log(string message)
{
Console.WriteLine(message);
}
}
public class FileLogger : ILogger
{
public void Log(string message)
{
// Código para escribir el mensaje en un archivo de log
}
}
public class LogManager
{
private List<ILogger> loggers;
public LogManager(List<ILogger> loggers)
{
this.loggers = loggers;
}
public void Log(string message)
{
foreach (var logger in loggers)
{
logger.Log(message);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment