我有一些用于使用 WCF 传输数据的 DTO 对象。
public class Foo
{
//Many fields
}
WCF 服务方法返回这个对象,我有这个对象应该为空的有效情况。
我想使用 null 对象模式返回一些东西而不是 null 以使这段代码更清晰。
因此,我将其实现为:
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
但是,如果我将添加to的所有(或任何)成员IFoo
,这些成员将永远不会被使用。因为接口仅用于空对象模式。所以,我不明白,在这种情况下正确的方法是什么?