ISP接口分离原则

ISP原则建议为客户程序提供尽可能“小”的单独的接口,而不是提供一个“大”的接口。在设计中,一个类或一个接口中的公共方法往往数量比较多,而且根据不同的用途有不同的分组。从客户角度看,并非所有的客户程序都依赖所有的方法。这种缺乏内聚而数量众多的方法可能导致严重的选择问题,解决此问题的办法通常是重构。

过于简单的设计往往导致“大”接口。如图(a),多个客户程序直接依赖一个类,但每个客户程序仅调用其中一部分的操作。例如,客户Client1仅调用了c1function()。这导致如果一个客户的需求发生改变,就需要改动整个Server类,而这种改变有可能影响到其他客户所依赖的功能。解决此问题的办法是为每个客户建立自己的接口。这种接口分离的原则可分离不同客户的需求,尽可能地减少相互间的影响。

依据ISP原则,应该把功能过多的一个接口分解为功能较少的几个接口。此原则与SRP原则比较接近,都是倾向于更单一化、更小巧的设计,也具有相同的副作用,接口数量会更多。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值