Interface Segregation Principle:
Clients should not be forced to depend upon interfaces that they don't use.——客户端只依赖于它所需要的接口;它需要什么接口就提供什么接口,把不需要的接口剔除掉。
The dependency of one class to another one should depend on the smallest possible interface.——类间的依赖关系应建立在最小的接口上。
即,接口尽量细化,接口中的方法尽量少
问题由来:
类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。
解决方案:
将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。包含4层含义:
1)接口要尽量小
不能出现Fat Interface;但是要有限度,首先不能违反单一职责原则(不能一个接口对应半个职责)。
2)接口要高内聚
在接口中尽量少公布public方法。
接口是对外的承诺,承诺越少对系统的开发越有利。
3)定制服务
只提供访问者需要的方法。例如,为管理员提供IComplexSearcher接口,为公网提供ISimpleSearcher接口。
4)接口的设计是有限度的
建议:
- 一个接口只服务于一个子模块或业务逻辑;
- 通过业务逻辑压缩接口中的public方法;
- 已被污染了的接口,尽量去修改;若变更的风险较大,则采用适配器模式转化处理;
- 拒绝盲从
与单一职责原则的区别:
二者审视角度不同;
单一职责原则要求的是类和接口职责单一,注重的是职责,这是业务逻辑上的划分;
接口隔离原则要求接口的方法尽量少。。。
分享到:
相关推荐
IOS设计模式的六大设计原则之接口隔离原则(ISP,Interface Segregation Principle)-附件资源
4. 接口隔离原则(Interface Segregation Principle) 接口隔离原则是指最小接口。不要强迫用户依赖于它们不需要的接口。这个原则主要是为了解决多个模块之间的耦合问题。 5. 迪米特法则(Law of Demeter) ...
DIP)、接口隔离原则(Interface Segregation Principle, ISP)以及合成/聚合复用原则(Composite/Aggregate Reuse Principle, CARP)。 #### 1. 单一职责原则(Single Responsibility Principle, SRP) - **定义...
4. 接口隔离原则(Interface Segregation Principle, ISP) 接口隔离原则建议我们避免让客户端依赖它们不使用的接口方法。如果一个接口太大,包含了许多不相关的功能,我们应该将其拆分为多个更小、更具体的接口。...
这个压缩文件包含了与JAVA编程相关的六大原则的实例代码。这些原则被称为SOLID原则,是Robert C. Martin等软件工程师提出的一组设计原则。...接口隔离原则(Interface Segregation Principle,ISP):不应该强迫一个
SRP)、里氏替换原则(Liskov Substitution Principle, LSP)、依赖倒置原则(Dependence Inversion Principle, DIP)、接口隔离原则(Interface Segregation Principle, ISP)、迪米特法则(Law of Demeter, LoD)...
#### 四、接口隔离原则(Interface Segregation Principle) **定义:** 接口隔离原则提倡将接口分解为更小、更具体的接口,让类只实现它需要的部分接口。 **主要目的:** - **减少类之间的耦合度**:通过细化接口...
接口隔离原则(Interface Segregation Principle) 不应该强迫客户程序依赖它们不用的方法。 **应用场景:** - 当一个接口过于庞大时,可以考虑拆分为更小、更具体的接口。 **好处:** - 提高系统的灵活性。 - ...
4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从...
4. 接口隔离原则(Interface Segregation Principle, ISP): 不应强迫客户端依赖它们不需要的方法。换句话说,接口应当尽可能小且专注,避免过于庞大,这样可以减少不必要的耦合。 5. 依赖倒置原则(Dependency ...
4. 接口隔离原则(Interface Segregation Principle, ISP):不应该强迫客户依赖于它们不用的方法,即应该通过多个专门的接口来降低耦合度。 5. 迪米特法则(Law of Demeter, LoD)或最少知识原则:一个对象应当对...
4. 接口隔离原则(Interface Segregation Principle, ISP): 一个客户端不应该被迫依赖它不需要的接口。这意味着应该将大而全的接口拆分成更小、更具体的接口,让客户端只依赖他们真正需要的方法。这可以提高接口的...
【六大设计原则】是软件开发中的核心指导原则,它们包括单一职责原则(Single Responsibility Principle,SRP)、开闭原则(Open Closed Principle,OCP)、里氏替换原则(Liskov Substitution Principle,LSP)、...