Skip to content

Instantly share code, notes, and snippets.

@MelbourneDeveloper
Created September 30, 2020 00:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MelbourneDeveloper/8d6289d249cce4b3c7a8135d68c054ab to your computer and use it in GitHub Desktop.
Save MelbourneDeveloper/8d6289d249cce4b3c7a8135d68c054ab to your computer and use it in GitHub Desktop.
Inheritance with null objects
public abstract class BaseClass
{
protected ILogger Logger { get; }
protected BaseClass(ILogger logger)
{
Logger = logger;
}
}
public class ConcreteClass : BaseClass
{
readonly ILoggerFactory _loggerFactory;
public ConcreteClass(ILoggerFactory loggerFactory)
: base((loggerFactory ?? NullLoggerFactory.Instance).CreateLogger<ConcreteClass>())
{
_loggerFactory = loggerFactory ?? NullLoggerFactory.Instance;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment