1

接口隔离原则指出:

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

在 Null 对象模式中,实现接口的 Null 类对它不做任何事情。这是故意的。

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

4

2 回答 2

3

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

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

    }
}

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

于 2016-05-20T21:49:14.927 回答
0

空对象模式本身并没有破坏接口隔离原则

打破整个原则的不是空对象,而是空对象的接口,它可能会或可能不会暴露与注入对象的给定操作无关的成员。

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

于 2016-05-20T21:14:17.603 回答