【发布时间】:2016-05-20 20:34:23
【问题描述】:
Interface Segregation principle 声明:
不应强迫客户依赖他们不使用的方法。
在 Null 对象模式中,实现接口的 Null 类不对其进行任何操作。这是故意的。
但是,这取决于它不使用的方法。或者它不会违反原则,因为它实际上只是依赖于它,在实现的方法中不做任何事情?
【问题讨论】:
-
客户端正在使用空对象上的方法。该方法什么都不做对客户端来说是不透明的。
-
空对象的意义在于使用了方法;他们只是没有显着的效果。例如,如果一个接口指定了一个返回列表的方法,则该接口的空对象实现可以返回一个空列表。关键是使用该空对象的客户端确实调用了返回列表的方法,并且需要获取一个列表。
-
感谢约书亚和安迪。现在我有了更好的理解。
-
一个更有趣的问题是:“空对象模式是否违反了 Liskov 替换原则?”。
标签: java c# solid-principles null-object-pattern