相关疑难解决方法(0)

接口隔离原则只是单一责任原则的替代吗?

界面隔离原则只是单一责任原则的替代吗?

我认为,如果我的类满足SRP,则无需提取多个接口.

所以ISP看起来像解决方案,以防我们因某些原因打破SRP.

我对吗 ?

design-patterns single-responsibility-principle solid-principles interface-segregation-principle

26
推荐指数
2
解决办法
2133
查看次数

Java 8 中的接口隔离原则和默认方法

根据接口隔离原则

不应该强迫客户端实现不需要的接口方法

...因此我们应该定义接口以进行逻辑分离。

但是defaultJava 8 中引入的方法提供了在 Java 接口中实现方法的灵活性。似乎 Java 8 提供了增强接口的可行性,使其具有一些与其核心逻辑无关的方法,但具有一些默认或空的实现。

它不违反ISP吗?

java solid-principles default-method interface-segregation-principle

6
推荐指数
1
解决办法
636
查看次数

Collections.unmodifyingMap(和其他)是否违反了 SOLID 原则?

我最近在看书,第一次Java Concurrency in Practice接触到这个方法。Collections.unmodifiableMap(...)该方法围绕现有的创建一个只读包装器Map,任何修改返回值的尝试Map(根据Javadocs)都会导致UnsupportedOperationException抛出异常。其他集合类也存在类似的方法。

这让我非常担心,因为 anunmodifiableMap()仍然返回 a Map,但不支持所有相关方法。事实上,它还会在写入操作上引发异常,这意味着它无法Map在大多数应用程序中替代“正确的”异常。

我是一名学生,对自己识别设计缺陷的能力还没有信心,但是这些不是分别违反了Interface segregationLiskov substitution原则吗?

java oop solid-principles

2
推荐指数
1
解决办法
161
查看次数