网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月22日漏签0天
包尔老师的软件课程吧 关注:124贴子:2,840
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 3 4 下一页 尾页
  • 59回复贴,共4页
  • ,跳到 页  
<<返回包尔老师的...吧
>0< 加载中...

软件体系结构课程 | 4 设计原则 | 4.5 接口分割原则

  • 只看楼主
  • 收藏

  • 回复
  • 包尔老师
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
该原则顾名思义,也主要用于类的层面。如果一个接口对应好几个类,那么应该把这个接口分割为多个,每一个对应一个类。该原则可以保证接口的聚合性,所以可以看作是特殊的单一责任原则。


  • 钢的波导
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分离原则是指如果一个接口的功能比较多比较杂,可以将其分割为几个小的接口。即如果一个接口对应多个类,但每个类不需要用到该接口的所有方法,就可以把该接口拆分成与类对应的若干个小接口。这样对应关系清晰,保证了接口聚合性,利于之后的软件修改升级。该原则是特殊的单一责任原则。


2025-05-22 05:20:00
广告
  • 夏天的雨夹雪
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分离原则
接口分离原则其实是单一责任原则的特殊情况。
接口分离原则的对象是接口,针对接口来说,如果接口里面的关系比较多比较杂,可以变成小一点的接口。
例如如果客户端和服务端的接口都混合在一起则不利于管理。我们先根据依赖反转原则,让依赖的类和被依赖的类中间加一个接口,让他们关系没有那么强。再应用接口分离原则,可以将两者不同的接口分离,便于管理。
总结:当某一个类不是跟接口里面所有的方法都相关。导致了接口的赘余。
接口分离原则让一个类依赖于一个新接口(这个接口里所有的方法都和这个类有关)


  • 影雁也疯狂
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分割原则
1.定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
2.问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。
3.解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。
4. 采用接口分割原则对接口进行约束时,要注意以下几点:
(1)接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。
(2)为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。
(3)提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。


  • 阿楠Scone
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

接口分割原则:将对应多个类的接口分解成多个接口,每个接口服务特定功能的类,以消除多职责的类也就是接口不内聚的类。
一个类不应该被迫依赖于它并不使用的方法。当类中多个职责耦合时,一个职责发生变化其他的都会受影响,所以应当分离开,让类彼此独立,保证接口的聚合性。所以接口分割原则也可以看作是特殊的单一责任原则。


  • 小糖丸医生
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分离原则(Interface Segregation Principle)用于处理胖接口(fat interface)所带来的问题。如果类的接口定义暴露了过多的行为,则说明这个类的接口定义内聚程度不够好。换句话说,类的接口可以被分解为多组功能函数的组合,每一组都服务于不同的客户类,而不同的客户类可以选择使用不同的功能分组。接口分离原则指在设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。即,一个类要给多个客户使用,那么可以为每个客户创建一个接口,然后这个类实现所有的接口;而不要只创建一个接口,其中包含所有客户类需要的方法,然后这个类实现这个接口。
解决方法:将臃肿的接口分解为多个独立接口,不同的类分别与他们需要的接口建立依赖关系。


  • 只做渣岚
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
单一责任原则的特殊情况
如果接口较为复杂可以分割成多个小的接口
在例子中“存钱”、“取钱”、“转账”三个类都与一个接口对应,接口中有四个方法,四个方法分别于某一个类相关,我们可以将接口拆分为多个接口分别与接口对应,分割并简化接口。
例子二中将接口按照功能分割后,需要该功能的类则引用对应接口,工人引用工作和吃饭接口,而机器人引用工作接口。
例子四种客户端和服务端都高度依赖该类,先根据依赖反转原则将该类与客户端服务器间加上接口将其抽象,不直接依赖。再将接口中的方法按照功能基于接口分割原则分为两个类。


  • 快乐小瓜G
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分割原则:
如果一个接口被不同的几个类实现,而这几个类又都只是“各取所需”地实现了接口中的部分方法,那么可以考虑将这个接口分为几个子接口。
目的:提高聚合度
举例:图一为原设计,图二为改进后

-----------------------------------------------------------------------------------------------------------------


2025-05-22 05:14:00
广告
  • Silico
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分割原则
该原则建立在“最简化类间接口依赖关系”的基础上,提出如下的原则
若某个类A中的接口被其他几个类实现,这几个类又仅仅分别实现了A中的部分接口,则考虑将类A按照实现类的需要分割为几个类,以此来提高聚合度,避免接口污染


  • 贴吧用户_57tJD5E
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分割原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。为各个类建立专用的接口,不要建立一个庞大的接口供所有依赖它的类去调用。
总结:(1)接口一定要适度。接口过小,则会造成接口数量过多,使设计复杂化。(2)为依赖接口的类定制服务,只暴露给调用的类它需要的方法, 它不需要的方法则隐藏起来。(3)提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。


  • 尘埃落定海上花
  • 高级粉丝
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

让我们回顾一下单一责任原则——保证任何一个组件实现的功能比较单一,即组件的聚合度比较高。
接口也是组件的一种,接口也要满足单一责任原则,即把功能较多的大接口分割成几个小接口,这就是接口分割原则。
比较直观判断设计是否满足接口分割原则是:
看实现接口的类是否被迫实现没有用到的方法。


  • 也要加油呀_
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分割原则
接口分割原则通俗的讲就是一个接口如果被多个类实现,但其中有的类不需要实现接口的全部方法,这时需要将接口分割为几个较小的接口,将方法分开。即建立单一接口,不要建立过于复杂的接口,尽量细化接口,接口中的方法尽量少。
但是接口分割要适度,接口设计如果过小,接口数量就会增多,使得系统复杂化。
单一责任原则是保证组件实现的功能比较单一,组件范围较广,接口就是一种组件。


  • 枝尼花
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一个接口类如果有多个接口,特别是对应不同功能的接口需要实现,那么就很可能发生某个需要实现该接口的类,可能本来只需实现其中一个功能的接口,却被迫要实现所有的接口,造成不必要的复杂和冗余的情况。因此,在这种情况下,我们应该把该接口类分割成多个接口类,每个新接口类的接口都尽可能只涵盖针对同一个功能的接口。这样实现不同功能的类就可以只实现与自身功能有关的接口即可,减少了冗余浪费,同时也避免在修改其他不相干的接口时,该类受到影响。
但同时,新的接口类也不应分割得过细,比如同一功能的几个接口不在同一个类而是分割成了一个一个单独的接口类,那么也会造成不必要的复杂度。
综上所述,接口分割原则,其实与单一职责原则有许多相似之处,即一个接口类尽量包含且只包含针对同一功能的接口。


  • 刘彬BJTU
  • 中级粉丝
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分离原则:使用多个专门的接口,而不使用单一的总接口,即客户类不应该依赖那些它不需要的接口。
当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户类仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的角色,提高内聚,降低耦合度。
同时我们也要清楚,在使用接口隔离原则时不是接口越小越好,如果太小会导致系统中接口泛滥,不利于维护。


2025-05-22 05:08:00
广告
  • a1962997763
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口分割原则的内容是:使用多个专门的接口来取代一个统一的接口,客户端不应该依赖它不需要的接口。
在接口设计时:接口的设计应该遵循最小接口原则,不要把用户不使用的方法塞进同一个接口里。如果一个接口的方法没有被使用到,则说明该接口过胖,应该将其分割成几个功能专一的接口。
在接口继承时:如果一个接口a继承另一个接口b,则接口a相当于继承了接口b的方法,那么继承了接口b后的接口a也应该不包含用户不使用的方法。
接口隔离原则符合高内聚低耦合的设计思想,从而使得类具有很好的可读性、可扩展性和可维护性。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 4 下一页 尾页
  • 59回复贴,共4页
  • ,跳到 页  
<<返回包尔老师的...吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示