У меня есть объект DTO для передачи данных с помощью WCF.
public class Foo
{
//Many fields
}
Метод службы WCF возвращает этот объект, и у меня есть случай valid, когда этот объект должен быть нулевым.
Я хочу использовать шаблон нулевого объекта, чтобы возвращать что-то вместо нулевого, чтобы сделать этот код более понятным.
Итак, я реализовал это как:
public interface IFoo
{
//empty
}
public class NoFoo : IFoo
{
//empty
}
public class Foo : IFoo
{
public static IFoo NoFoo { get; } = new NoFoo();
//Many fields
}
Использование класса Foo
не требует IFoo
вне проверки нуля. Но я чувствую, что пустой интерфейс — это точно запах кода. Но если я добавлю все (или любые) элементы Foo
в IFoo
, эти элементы никогда не будут использоваться. Потому что интерфейс используется только для нулевого шаблона объекта. Вот я и не понимаю, как правильно в этой ситуации?