设计原则-接口隔离原则

接口隔离原则: 使用多个专用的接口, 而不使用的那一的总接口, 即客户端不应该依赖那些它不需要的接口.

根据接口隔离原则, 当一个接口太大的时候, 我们需要将它分割成更小的接口, 使用该接口的客户端仅需知道与之相关的方法即可. 每个接口应该承担一种相对独立的角色, 不敢不该干的事情, 该干的事情都要干. 这里的 "接口" 有两种含义: 一种是指一个类型所具有的方法特征的集合, 仅仅是一种逻辑上的抽象; 另一种是指某种语言具体的接口定义, 有严格的定义和结构.

当把接口理解成一个类型所提供的所有方法特征的集合的时候, 这就是一种逻辑上的概念, 接口的划分将直接带来类型的划分. 可以把接口理解成角色, 一个接口只能代表一个角色, 每个角色都有他特定的接口. 也可以叫做 "角色隔离原则".

当把接口理解成狭义上的特定语言的接口, 那么ISP(Interface Segregation Principle)表达的意思是指接口仅仅提供客户端需要的行为, 客户端不需要的行为则隐藏起来, 应当为客户端提供尽可能小的单独接口, 而不要提供大的总接口. 在很多面向对象语言中, 实现一个接口就要实现该接口中定义的所有的方法, 因此大的接口使用起来很不方便(也可以引入抽象类解决这个问题; 我觉得Objective-C语言这样就很好, 声明接口时候可以声明成可选的, 这样实现接口就不需要实现所有的接口, 并且也省略的抽象类的概念)

例如 UIKit中的UITableView的代理, 分为 delegate,dataSourse 两个代理, 实现了接口分离, 不同的接口做不同的事情.

使用接口隔离原则时候, 我们需要注意控制接口的粒度, 几口不能太小, 太小会导致系统中接口泛滥, 不利于维护; 接口也不能太大, 太大的接口将违背接口隔离原则, 灵活性较差, 使用起来很不方便.

Reference: http://blog.csdn.net/lovelion/article/details/7562842#html

转载于:https://my.oschina.net/whforever/blog/786304

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值