
面向对象设计原则——接口隔离原则
发布日期:2021-05-07 01:32:00
浏览次数:22
分类:原创文章
本文共 642 字,大约阅读时间需要 2 分钟。
概念
小接口原则,即每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。如下图所示定义了一个接口,包含了5个方法,实现类A用到了3个方法、实现类B用到了3个方法,类图如下:
类A没有方法4、方法5,却要实现它;类B没有方法2、方法3,但还是要实现这两个方法,不符合接口隔离原则。改造为将其拆分为三个接口,实现方式改为下图所示,符合接口隔离原则:
实现
面向对象机制中一个类可以实现多个接口,通过多重继承分离,通过接口多继承(实现)来实现客户的需求,代码更加清晰易维护。如网上商城系统中,封装一个用户类,完成用户的消费记录、浏览记录等相应的功能,如果是会员还要完成记录会员积分、提现、折扣、会员级别变动等功能;实现精准化广告投放时需要根据用户特征计算用户的消费偏好,则可以做以下设计完成遵循接口隔离原则。
这样设计,普通消费者无需实现会员接口,符合接口隔离原则;
同时在做精准推送时,只需要通过“精准推送”接口定义对象变量;做会员相关操作时,只需使用会员接口定义对象变量,而不是所有的内容通过消费用户定义相关对象变量,代码的可读性大大提高。
拓展
1.接口分离原则也是确保“开-闭”原则的一个重要手段;模块相对独立,通信尽可能少,这样当一个模块修改时,对别的模块的影响很小。
2. 代码清晰易懂,里氏替换和依赖倒置原则更易使用。
3. 语义更加清晰,准确。(如:家里电路需要处理,我们会在劳动力市场找电工(小接口),而不是说找个工人(大接口),这样语义更加清晰,准确)
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年03月25日 05时40分59秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python(三十)类的理解
2019-03-05
Extjs布局详解
2019-03-05
Android数据库
2019-03-05
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2019-03-05
keil左侧文件调整方法
2019-03-05
本地分支关联远程分支
2019-03-05
STM8 GPIO模式
2019-03-05
STM32boot启动
2019-03-05
omnet++
2019-03-05
23种设计模式一:单例模式
2019-03-05
Qt中的析构函数
2019-03-05
CSharp中委托(一)委托、匿名函数、lambda表达式、多播委托、窗体传值、泛型委托
2019-03-05
二叉堆的c++模板类实现
2019-03-05
C语言实现dijkstra(adjacence matrix)
2019-03-05
C语言学习从初级到精通的疯狂实战教程-徐新帅-专题视频课程
2019-03-05
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2019-03-05
NAT工作原理
2019-03-05
Processes, threads and goroutines
2019-03-05
c++中的10种常见继承
2019-03-05
Vue学习—深入剖析渲染函数
2019-03-05