接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好。也就是说,一个类对另外一个类的依赖性应当是建立在最小的接口上的。
这里的“接口”往往有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象;另外一种是指某种语言具体的“接口”定义,有严格的定义和结构。比如Java语言里面的Interface结构。对于这两种不同的含义,ISP的表达方式以及含义都有所不同。(上面说的一个类型,可以理解成一个类,我们定义了一个类,也就是定义了一种新的类型)
当我们把“接口”理解成一个类所提供的所有方法的特征集合的时候,这就是一种逻辑上的概念。接口的划分就直接带来类型的划分。这里,我们可以把接口理解成角色,一个接口就只是代表一个角色,每个角色都有它特定的一个接口,这里的这个原则可以叫做“角色隔离原则”。
如果把“接口”理解成狭义的特定语言的接口,那么ISP表达的意思是说,对不同的客户端,同一个角色提供宽窄不同的接口,也就是定制服务,个性化服务。就是仅仅提供客户端需要的行为,客户端不需要的行为则隐藏起来。
在我们进行OOD的时候,一个重要的工作就是恰当的划分角色和角色对应的接口。将没有关系的接口合并在一起,是对角色和接口的污染。如果将一些看上去差不多的接口合并,并认为这是一种代码优化,这是错误的。不同的角色应该交给不同的接口,而不能都交给一个接口。
对于定制服务,这样做最大的好处就是系统的可维护性。向客户端提供接口是一种承诺,public接口后是不能改变的,因此不必要的承诺就不要做出,承诺越少越好。
原文链接:http://blog.csdn.net/kxy/archive/2005/07/05/413950.aspx
分享到:
相关推荐
OOD 设计基本原则包括 OCP 原则、里氏替换原则、依赖倒置原则、接口隔离原则、聚合与继承原则、单一职责原则、Separation of concerns Principle 和 Pareto Principle 等。 OCP 原则(Open-Closed Principle)是 ...
4. **接口隔离原则(Interface Segregation Principle, ISP)**: 客户端不应该依赖它不需要的接口,应该将接口拆分为更小的、更具体的接口,让客户端只依赖它们真正需要的部分。 5. **依赖倒置原则(Dependency ...
接口隔离原则则是为了减少不必要的接口依赖,只暴露客户端真正需要的功能。 为了实现这些原则,依赖注入是一种常用的技术,它可以通过构造注入、设值注入或接口注入来管理对象间的依赖关系,使系统更易于测试和维护...
1. **SOLID原则**:SOLID是五个面向对象设计原则的首字母缩写,包括单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则指导我们编写可维护、可扩展的代码。 2. **设计模式**:设计模式是...
- **接口隔离原则**(Interface Segregation Principle, ISP):客户端不应该被迫依赖它不使用的方法。 - **依赖倒置原则**(Dependency Inversion Principle, DIP):高层模块不应该依赖低层模块,二者都应该依赖其...
8. ** SOLID原则**:SOLID是面向对象设计的五个基本原则,包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP)。这些原则指导我们编写易于维护和扩展的代码...
7. **原则与指导方针**:OOD遵循一些基本原则,如 SOLID 原则,包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP)。这些原则有助于创建易于理解和维护的...
5. 接口隔离原则(Interface Segregation Principle, ISP):不应该强迫客户依赖于它们不使用的接口。换句话说,接口应该细而专,不应该庞大而复杂。 文档中提到的Java setter可能是指在类中设置属性值的setter方法...
4. **接口隔离原则 (Interface Segregation Principle, ISP)** - 不应强迫客户依赖他们不需要的方法。这意味着应当将大而全的接口拆分为更小、更具体的接口,让客户端只依赖于需要的方法。 5. **依赖倒置原则 ...
这五条原则分别是单一职责原则(Single Responsibility Principle, SRP)、开闭原则(Open-Closed Principle, OCP)、里氏替换原则(Liskov Substitution Principle, LSP)、接口隔离原则(Interface Segregation ...
4. **接口隔离原则(Interface Segregation Principle, ISP)**:提倡将大接口分解成多个小接口,以避免实现类被迫依赖它们不需要的方法。这有助于实现更细粒度的控制,并减少不必要的依赖关系。 5. **合成/聚合...
- **原则描述**:优先考虑接口隔离原则。 - **实践建议**:确保每个接口都只包含一组相关的方法。 #### 60. 谨慎使用多继承 - **原则描述**:谨慎使用多继承。 - **实践建议**:多继承可能会导致类之间的耦合度过...
接口隔离原则建议不要创建庞大的接口,而是应该为不同的客户端提供多个具体的接口。这样可以避免“客户端”被迫依赖它们不使用的接口,从而降低了类间的耦合度,提高了系统的灵活性。 #### 5. 依赖倒置原则...
SOLID原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP)。其中,SRP确保每个类只有一个明确的责任,OCP让代码对扩展开放、对修改关闭,LSP保证子类...
4. **接口隔离原则(Interface Segregation Principle, ISP)**:客户端不应该被迫依赖它不需要的接口。这意味着应尽量避免创建过于庞大的接口,而是将其拆分为更小、更专注的接口,让客户端只依赖于自己真正需要的...
4. **接口隔离原则(Interface Segregation Principle, ISP)**:客户端不应该被迫依赖它不使用的方法。这意味着应将大而全的接口拆分为更小、更专注的接口,让客户端只依赖于需要的部分。 5. **依赖倒置原则...
#### 面向对象设计原则 - **避免将操作提升为类**:在设计时,应当谨慎对待那些名字来源于动词或动词短语的类,尤其是当它们仅有一个关键行为时。这类行为更适宜作为现有类的方法,而非单独的类,以保持代码的简洁...
- SOLID原则:单一职责、开闭原则、里氏替换、接口隔离和依赖倒置,这些原则指导良好设计实践。 - DRY(Don't Repeat Yourself):避免重复,提倡代码重用。 - KISS(Keep It Simple, Stupid):保持设计简洁。 ...