《Java设计模式及实践》—1.5.4 接口隔离原则
【摘要】 本节书摘来自华章计算机《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需要的。
这是一个糟糕的设计,因为如果我们想把汽车替换为另一辆汽车,需要在Mechanic类中进行更改,这违反了开闭原则。换个思路,我们可以创建一个仅公开Me-chanic类所需的相关方法的接口。如图1-15所示。
图 1-15
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)