Мартин Фаулер Рефакторинг обсуждает создание Null Objects, чтобы избежать большого количества
if (myObject == null)
тесты. Каков правильный способ сделать это? Моя попытка нарушает правило "виртуальный член в конструкторе". Здесь моя попытка:
public class Animal
{
public virtual string Name { get; set; }
public virtual string Species { get; set; }
public virtual bool IsNull
{
get { return false; }
}
}
public sealed class NullAnimal : Animal
{
public override string Name
{
get{ return "NULL"; }
set { }
}
public override string Species
{
get { return "NULL"; }
set { }
}
public virtual bool IsNull
{
get { return true; }
}
}