SOLID中的“接口隔离原则”与“单一职责原则”有何不同? 维基百科中对于SOLID的解释为: 接口隔离原则将非常庞大的接口分割成更小的特定接口,让客户端只需要知道他们感兴趣的方法。 但是,在我看来,这听起来就像是将 SRP 应用到接口和类上。毕竟,如果一个接口只负责一个概念,那...
里氏替换原则(LSP)和接口隔离原则(ISP)之间是否有任何核心区别?最终,两者都主张使用常见功能来设计接口,并在需要特殊功能时引入新的接口。
接口隔离原则仅是单一职责原则的替代方案吗? 我认为,如果我的类符合SRP,就没有必要提取多个接口。 因此,当我们不得不打破SRP时,ISP似乎是一种解决方案。 我说得对吗?
接口隔离原则(ISP)指出,许多客户端特定的接口优于一个通用接口。为什么这很重要?
我在阅读关于SOLID和其他设计原则的内容。我以为ISP与“面向接口编程而不是实现”是相同的。但看起来这些是不同的原则? 它们之间有什么区别吗?
有没有一个特定的设计模式,描述了这样一种情况:提供非抽象默认实现,它使用空的NO-OP实现来实现接口上的所有或某些方法。这样做是为了减轻子类实现它们自己可能不需要/使用的方法的负担: public interface MyInterface { public void doThis(...
为了将SOLID原则应用到一个有机生长且需要重构的Python项目中,我正在努力理解如何将接口隔离原则应用于Python语言,当接口不作为一种语言特性存在时?
在组合模式中,叶子节点实现了组件接口,包括“Add”、“Remove”和“GetChild”方法,但是叶子节点永远不会使用这些方法。这似乎违反了接口隔离原则。 那么使用组合模式是否符合SOLID原则呢? 组合模式链接:http://www.dofactory.com/Patterns/Pa...
如果从一个存在未使用方法的类继承,是否违反了接口隔离原则? 例如: abstract class Base { public void Receive(int n) { // . . . (some important work) OnMs...
根据接口隔离原则,客户端不应被强制实现不需要的接口方法,因此我们应该定义接口以实现逻辑分离。然而,在Java 8中引入的"default"方法提供了在Java接口中实现方法的灵活性。看起来Java 8已经提供了灵活性,使接口可以具有一些与其核心逻辑无关的方法,但具有一些默认或空实现。这是否违反...