《Java设计模式及实践》—1.5.4 接口隔离原则

举报
华章计算机 发表于 2019/07/22 11:07:21 2019/07/22
【摘要】 本节书摘来自华章计算机《Java设计模式及实践》一书中的第1章,第1.5.4节,[印度] 卡马尔米特·辛格(Kamalmeet Singh)[荷兰] 艾德里安·伊恩库列斯库(Adrian Ianculescu) 著[罗马尼亚] 路西安-保罗·托尔耶(Lucian-Paul Torje) 张小坤 黄 凯 贺 涛 译.

1.5.4 接口隔离原则

下面这句话从链接https://www.oodesign.com/interface-segregation-principle.html得来:

“客户端不应该依赖于它所不需要的接口。”

实际应用中,接口隔离原则(Interface Segregation Principle,ISP)减少了代码耦合,使软件更健壮,更易于维护和扩展。接口隔离原则最初是由Robert Martin提出的,他意识到如果接口隔离原则被破坏,客户端被迫依赖它们不使用的接口时,代码就会变得紧密耦合,几乎不可能为其添加新功能。

为了更好地理解这一点,我们再次采用汽车服务示例(参见图1-14)。现在我们需要实现一个名为Mechanic(机修工)的类。机修工修理汽车,所以我们增加了修理汽车的方法。在这个例子中,Mechanic类依赖于ICar类,但是,Car类提供的方法超出了Mechanic需要的。

image.png

这是一个糟糕的设计,因为如果我们想把汽车替换为另一辆汽车,需要在Mechanic类中进行更改,这违反了开闭原则。换个思路,我们可以创建一个仅公开Me-chanic类所需的相关方法的接口。如图1-15所示。

 image.png

图 1-15


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。