空对象模式是否破坏了接口隔离原则



接口隔离原则指出:

不应强迫客户端依赖他们不使用的方法。

在 Null 对象模式中,实现接口的 Null 类不对其执行任何操作。这是故意的。

但是,这取决于它不使用的方法。或者它不会破坏原则,因为它实际上只是依赖于它,而不在实现的方法中做任何事情?

通常,Null 对象模式不采用任何依赖项。下面是典型的 Null 对象的外观:

public class NullDataStore : IDataStore
{
    public void StoreData(Data data)
    {
    }
}

在这种情况下,NullDataStore类没有依赖项,因此它不依赖于它不使用的方法。所以它不会破坏ISP。

空对象模式本身不会破坏接口隔离原则

不是 null 对象可以破坏整个原则,但它将是 null 对象的接口,它可能会也可能不会公开与注入对象的给定操作无关的成员。

如果 null 对象实现了一个接口,并且

项目的一部分可以使用具有其成员实际实现的常规对象,并且该接口仅公开实际需要的内容,则接口隔离原则不会被该给定接口破坏。

相关内容

  • 没有找到相关文章

最新更新