接口隔离原则是否适用于数据结构?

Does Interface Segregation Principle apply to data structures?

假设我们有一个大型数据结构(我们称它为 Configuration)和各种客户端 类(我们称它们为 Services)。每个服务只需要 Configuration.

中的一两个字段

如果我们将整个 Configuration 对象注入到各个 Service 中,这是否违反了 ISP? Configuration 在技术上是一种数据结构而不是文字 Java 接口这一事实是否改变了 ISP 背后的基本点?

我面临的实际困境是配置应该如何对我的系统的各个部分可用。我可以选择使用 Spring 的 @Value 注释,通过它每个组件都能准确地获得它所需要的,仅此而已。我的第二个选择是使 Configuration 实例作为一个整体可用。在第二种情况下,系统的每个组件都将获得整个系统的配置,而不是只获得它实际需要的几个部分。

我正在尝试了解第二个选项是否违反了 ISP。

严格按照Bob Martin,是的。他将 ISP 应用于 stack 的示例显然似乎暗示包含数据结构。

另一方面,这个问题经常被问到依赖倒置原则,例如, here, and here。正如我对 DIP 的回答,我认为将其应用于数据结构没有意义。将面向对象的原则应用于过程编程构造时,您的里程可能会有所不同。