`
vking_wang
  • 浏览: 10481 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

六大设计原则总结:4)接口隔离原则 -Interface Segregation Principle

 
阅读更多

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)-附件资源

    IOS设计模式的六大设计原则之接口隔离原则(ISP,Interface Segregation Principle)-附件资源

    设计模式六大原则与类的六种关系

    4. 接口隔离原则(Interface Segregation Principle) 接口隔离原则是指最小接口。不要强迫用户依赖于它们不需要的接口。这个原则主要是为了解决多个模块之间的耦合问题。 5. 迪米特法则(Law of Demeter) ...

    java面向对象设计的六大原则

    DIP)、接口隔离原则(Interface Segregation Principle, ISP)以及合成/聚合复用原则(Composite/Aggregate Reuse Principle, CARP)。 #### 1. 单一职责原则(Single Responsibility Principle, SRP) - **定义...

    六大设计原则,一些小例子(通俗易懂)

    4. 接口隔离原则(Interface Segregation Principle, ISP) 接口隔离原则建议我们避免让客户端依赖它们不使用的接口方法。如果一个接口太大,包含了许多不相关的功能,我们应该将其拆分为多个更小、更具体的接口。...

    JAVA六大原则代码.zip

    这个压缩文件包含了与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)...

    JAVA设计模式的六大原则

    #### 四、接口隔离原则(Interface Segregation Principle) **定义:** 接口隔离原则提倡将接口分解为更小、更具体的接口,让类只实现它需要的部分接口。 **主要目的:** - **减少类之间的耦合度**:通过细化接口...

    java的24种设计模式介绍与6大设计原则

    接口隔离原则(Interface Segregation Principle) 不应该强迫客户程序依赖它们不用的方法。 **应用场景:** - 当一个接口过于庞大时,可以考虑拆分为更小、更具体的接口。 **好处:** - 提高系统的灵活性。 - ...

    24种设计模式介绍与6大设计原则

    4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从...

    java六大设计原则 个人见解层次分明

    4. 接口隔离原则(Interface Segregation Principle, ISP): 不应强迫客户端依赖它们不需要的方法。换句话说,接口应当尽可能小且专注,避免过于庞大,这样可以减少不必要的耦合。 5. 依赖倒置原则(Dependency ...

    JAVA 24种设计模式介绍与6大设计原则.pdf

    4. 接口隔离原则(Interface Segregation Principle, ISP):不应该强迫客户依赖于它们不用的方法,即应该通过多个专门的接口来降低耦合度。 5. 迪米特法则(Law of Demeter, LoD)或最少知识原则:一个对象应当对...

    设计模式六大原则.doc

    4. 接口隔离原则(Interface Segregation Principle, ISP): 一个客户端不应该被迫依赖它不需要的接口。这意味着应该将大而全的接口拆分成更小、更具体的接口,让客户端只依赖他们真正需要的方法。这可以提高接口的...

    六大设计原则.docx

    【六大设计原则】是软件开发中的核心指导原则,它们包括单一职责原则(Single Responsibility Principle,SRP)、开闭原则(Open Closed Principle,OCP)、里氏替换原则(Liskov Substitution Principle,LSP)、...

Global site tag (gtag.js) - Google Analytics