У меня есть некоторый объект 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
, эти члены никогда не будут использованы. Потому что интерфейс используется только для шаблона нулевого объекта.
Итак, я не понимаю, как правильно в этой ситуации?