`
xuela_net
  • 浏览: 494557 次
文章分类
社区版块
存档分类
最新评论

设计模式原则之三:接口隔离原则

 
阅读更多

接口隔离原则要求的是在一个模块应该只依赖它需要的接口,以保证接口的小纯洁。而且需要保证接口应该尽量小,即设计接口的时候应该让接口尽量细化,不要定义太臃肿的接口(比如接口中有很多不相干的逻辑的方法声明)。

首先看看接口隔离原则的定义,有两种定义

第一种: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.(类间的依赖关系应该建立在最小的接口上)

而这里的接口,却不仅仅指的是通过interface关键字定义的接口,接口分为2种:

1、对象接口(Object Interface)

JAVA中声明的一个类,通过new关键字产生的一个实例,它是对一个类型的事物的描述,这也是一种接口。例如:

Phone phone = new Phone();这里的类Person就是实例phone的一个接口

2、类接口(Class Interface)

这种接口就是通过interface关键字定义的接口了

也就是说,接口隔离原则要求的是在一个模块应该只依赖它需要的接口,以保证接口的小纯洁。而且需要保证接口应该尽量小,即设计接口的时候应该让接口尽量细化,不要定义太臃肿的接口(比如接口中有很多不相干的逻辑的方法声明)。

接口隔离原则与单一职责原则有些相似,不过不同在于:单一职责原则要求的是类和接口职责单一,注重的是职责,是业务逻辑上的划分。而接口隔离原则要求的是接口的方法尽量少,尽量有用(针对一个模块)

在使用接口隔离原则的时候需要有一些规范:

1.接口尽量小

接口尽量小主要是为了保证一个接口只服务一个子模块或者业务逻辑

2.接口高内聚

接口高内聚是对内高度依赖,对外尽可能隔离。即一个接口内部的声明的方法相互之间都与某一个子模块相关,且是这个子模块必须的。

3.接口设计是有限度的

但是如果完全遵循接口隔离原则的话,会出现一个问题。即接口的设计力度会越来越小,这样就造成了接口数量剧增,系统复杂度一下子增加了,而这不是真实项目所需要的,所以在使用这个原则的时候还要在特定的项目,根据经验或者尝试判断,不过没有一个固定的标准。
分享到:
评论

相关推荐

    设计模式6大原则:接口隔离原则

    设计模式6大原则:接口隔离原则

    设计模式六大原则

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):...设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大原则(6):开闭原则

    设计模式六大原则.doc

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):...设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大原则(6):开闭原则

    接口隔离原则ISP.zip

    接口隔离原则ISP.zip

    java与模式

    9:接口隔离原则;10:合成/聚合复用原则;11:迪米特法原则;12:简单工厂模式;13:工厂方法模式;14:抽象工厂模式;15:单例模式;16:单例模式与MX记录;17:多例模式;18:序列健生成器与单例及多例模式;19:建筑模式;20:原始...

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

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

    设计模式之六大原则详解,Markdown笔记

    详细介绍了设计模式六大原则,配有示例代码和图片,有开闭原则,单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则等等。

    设计模式6大原则

    设计模式原则:单一职责原则,里氏替换,依赖倒转,接口隔离,开放关闭等等。

    设计模式(23种)与设计原则(6种)

    4、接口隔离原则 5、合成/聚合复用原则 6、最少知识原则 (二)设计模式 1)工厂模式(Factory) 2)抽象工厂模式(Abstract Factory) 3)建造者模式(Builder) 4)原型模式(Prototype) 5)单例模式(Singleton...

    php 设计模式六大原则

    php 设计模式六大原则 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 word版

    设计模式六大原则(1):单一职责原则

    NULL 博文链接:https://lijie-insist.iteye.com/blog/2190970

    JAVA设计模式六大原则详细讲解(面向对象语言通用)

    4.接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 5.迪米特法则还有一个更简单的定义:只与直接的朋友通信。其中,我们称出现成员变量、方法参数、方法返回值中的...

    设计模式6大原则.doc

    设计模式六大原则:单一职责模式、开闭原则、接口隔离原则、里氏替换原则、依赖倒置原则、迪米特法则

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

    策略模式[STRATEGY PATTERN] 代理模式[PROXY PATTERN] 单例模式[SINGLETON PATTERN] 多例模式[MULTITION PATTERN] ...六大设计原则:单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则,开闭原则。

    简单理解遵循接口隔离原则的Java设计模式编程

    主要介绍了遵循接口隔离原则的Java设计模式编程,针对Java编程中interface接口方面的编写进行约束,需要的朋友可以参考下

    敏捷软件开发:原则、模式与实践.pdf

    第十二章 接口隔离原则(ISP) 12.1 接口污染 12.2 分离客户就是分离接口 12.3 接口隔离原则(ISP) 12.4 类接口与对象接口 12.5 ATM用户界面的例子 12.6 结论 参考文献 第Ⅲ部分 薪水支付案例研究 第十三章 COMMAND...

    第一章设计模式与七大原则.doc

    第一章设计模式与七大原则笔记,自己看网课写的,需要的关注拿一下吧,23种设计模式,背后其实是七大设计原则,也就是说,每个设计模式都归属于一个或多个设计原则7大设计原则:a单一职责原则 b里氏替换 c依赖倒置...

    C#设计模式.PDF

    四、 接口隔离原则(ISP) 20 五、 合成/聚合复用原则(CARP) 21 六、 迪米特法则(LoD) 22 C#设计模式(4)-Simple Factory Pattern 24 一、 简单工厂(Simple Factory)模式 24 二、 Simple Factory模式角色与...

    敏捷软件开发原则、模式与实践 C#版

    第11章 DIP:依赖倒置原则 第12章 ISP:接口隔离原则 第13章 写给C#程序员的UML概述 第14章 使用UML 第15章 状态图 第16章 对象图 第17章 用例 第18章 顺序图 第19章 类图 第20章 咖啡的启示 第三部分 薪水支付案例...

Global site tag (gtag.js) - Google Analytics