范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

面向对象设计原则接口隔离原则

  接口隔离原则的定义
  接口隔离原则(Interface Segregation Principle,ISP)要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。
  2002 年罗伯特·C.马丁给"接口隔离原则"的定义是:客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods they do not use)。该原则还有另外一个定义:一个类对另一个类的依赖应该建立在最小的接口上(The dependency of one class to another one should depend on the smallest possible interface)。
  以上两个定义的含义是:要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。
  接口隔离原则和单一职责都是为了提高类的内聚性、降低它们之间的耦合性,体现了封装的思想,但两者是不同的: 单一职责原则注重的是职责,而接口隔离原则注重的是对接口依赖的隔离。 单一职责原则主要是约束类,它针对的是程序中的实现和细节;接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建。 接口隔离原则的优点
  接口隔离原则是为了约束接口、降低类对接口的依赖性,遵循接口隔离原则有以下 5 个优点。 将臃肿庞大的接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。 接口隔离提高了系统的内聚性,减少了对外交互,降低了系统的耦合性。 如果接口的粒度大小定义合理,能够保证系统的稳定性;但是,如果定义过小,则会造成接口数量过多,使设计复杂化;如果定义太大,灵活性降低,无法提供定制服务,给整体项目带来无法预料的风险。 使用多个专门的接口还能够体现对象的层次,因为可以通过接口的继承,实现对总接口的定义。 能减少项目工程中的代码冗余。过大的大接口里面通常放置许多不用的方法,当实现这个接口的时候,被迫设计冗余的代码。 接口隔离原则的实现方法
  在具体应用接口隔离原则时,应该根据以下几个规则来衡量。 接口尽量小,但是要有限度。一个接口只服务于一个子模块或业务逻辑。 为依赖接口的类定制服务。只提供调用者需要的方法,屏蔽不需要的方法。 了解环境,拒绝盲从。每个项目或产品都有选定的环境因素,环境不同,接口拆分的标准就不同深入了解业务逻辑。 提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。
  下面以学生成绩管理程序为例介绍接口隔离原则的应用。
  【例1】学生成绩管理程序。
  分析:学生成绩管理程序一般包含插入成绩、删除成绩、修改成绩、计算总分、计算均分、打印成绩信息、査询成绩信息等功能,如果将这些功能全部放到一个接口中显然不太合理,正确的做法是将它们分别放在输入模块、统计模块和打印模块等 3 个模块中,其类图如图 1 所示。
  图1 学生成绩管理程序的类图
  程序代码如下: package principle;  public class ISPtest {     public static void main(String[] args) {         InputModule input = StuScoreList.getInputModule();         CountModule count = StuScoreList.getCountModule();         PrintModule print = StuScoreList.getPrintModule();         input.insert();         count.countTotalScore();         print.printStuInfo();         //print.delete();     } }  //输入模块接口 interface InputModule {     void insert();      void delete();      void modify(); }  //统计模块接口 interface CountModule {     void countTotalScore();      void countAverage(); }  //打印模块接口 interface PrintModule {     void printStuInfo();      void queryStuInfo(); }  //实现类 class StuScoreList implements InputModule, CountModule, PrintModule {     private StuScoreList() {     }      public static InputModule getInputModule() {         return (InputModule) new StuScoreList();     }      public static CountModule getCountModule() {         return (CountModule) new StuScoreList();     }      public static PrintModule getPrintModule() {         return (PrintModule) new StuScoreList();     }      public void insert() {         System.out.println("输入模块的insert()方法被调用!");     }      public void delete() {         System.out.println("输入模块的delete()方法被调用!");     }      public void modify() {         System.out.println("输入模块的modify()方法被调用!");     }      public void countTotalScore() {         System.out.println("统计模块的countTotalScore()方法被调用!");     }      public void countAverage() {         System.out.println("统计模块的countAverage()方法被调用!");     }      public void printStuInfo() {         System.out.println("打印模块的printStuInfo()方法被调用!");     }      public void queryStuInfo() {         System.out.println("打印模块的queryStuInfo()方法被调用!");     } }
  程序的运行结果如下: 输入模块的insert()方法被调用! 统计模块的countTotalScore()方法被调用! 打印模块的printStuInfo()方法被调用!

山东广电5G互联互通协议签署,192号码与移动139号码已实现互通IT之家5月21日消息,据山东有线官网,5月20日,山东广电5G互联互通协议签署仪式在济南举行。山东广电表示,中广电移动网络有限公司与山东省三家基础电信企业正式签署网间互联互通协议套走董明珠26亿,拉王健林刘强东下水,银隆新能源到底有何高人总听人说只要成功了,就顺风顺水,一路没烦恼了。实际上,淹死的,大都是会水的。见过大风大浪的人,才容易在阴沟里翻船。比如说,格力掌门人董明珠。从一个名不见经传的销售员,到如今的知名企国产手机比苹果还卖得贵,断崖式降价无人问津,只能接受现实8848手机曾经被贴上了国产天价手机的标签,之所以会被认为是天价手机,就在于8848手机的实用性并不是很高的情况之下,价格还非常的昂贵,甚至比美国苹果还要卖的贵,现如今,国内智能手从TI走出的芯片创业者失效分析赵工半导体工程师202205211025发表于北京近日,一则德州仪器(简称TI)裁撤中国区MCU团队的传闻引发业界热议,虽然TI很快作出回应并及时辟谣,但这家全球芯片巨头再非洲手机之王传音控股增速首次下滑顶点之后,陷入瓶颈聚焦科创板日报5月20日讯(北京记者胡家铭)5月18日,传音控股(688036。SH)董事长兼总经理竺兆江董秘曾春等管理层在业绩说明会上对最新经营数据进行说明。公司方面表示,主要由于国传小米组织调整笔记本部门并入手机部门,加强互联互通Tech星球5月21日消息,据IT之家,有数码博主曝光了一份小米集团的组织部文件,显示小米笔记本部门并入手机部门,笔记本电脑部总经理高峥向手机部总裁曾学忠汇报,理由是加强手机和笔记带有FHD显示屏50MP摄像头等的Coolpad智能手机抵达TENAA酷派可能很快会在中国发布一款新的智能手机。即将推出的型号为CP07的手机已通过3C和TENAA认证。这些清单清楚地描绘了这款尚未发布的设备。据3C称,即将推出的酷派智能手机将支持1HTC王雪红完成企业转型组织重组计划,大幅改善营运绩效IT之家5月19日消息,据台媒经济日报报道,宏达电今年度致股东营业报告书出炉,董事长暨执行长王雪红表示,HTC团队秉持正确的经营策略方向,持续增进营运效能及投资重要技术与人才,为H刚刚!央行又注销一张支付牌照6月份将有80张支付牌照到期,在续展之前,已有支付机构将牌照进行注销。撰文张浩东出品支付百科今日,支付百科注意到,央行官网更新支付牌照注销名单,已注销许可机构中又出现了一家新的第三千元机仍是销量之王,vivo荣耀环伺,小米谋求高端化突围本文来源时代周报作者陶娅洁2021年12月,小米12新品发布会后,雷军关于正式对标苹果3年内拿下国产高端手机市场第一的份额的扬言尚有余温。半年后的5月19日,小米集团(1810。H质用车新能源时代充电和换电哪种更好?随着国内新能源市场,特别是纯电动汽车细分市场的蓬勃发展,整体产品的产品力已经得到了极大的提升。但尽管如此,还是有很多消费者对纯电动汽车续航里程的问题有所顾虑,而这也成为了制约纯电动
魅蓝10手机发布,搭载国芯虎贲售价699元起魅蓝回归之后,发布了一系列的配件产品。如今,回归后的首款手机产品终于登场,定位入门的魅蓝10正式发布。魅蓝10采用一块6。52英寸全贴合水滴屏,搭载国芯虎贲与全新Flyme9lit智能家居单品丨智能锁中干电池和锂电池该如何选择?随着智能家居的发展,家中的门锁也在不停地变换着功能,由单一满足入户需求的机械锁逐步发展成为现在的智能锁,在安全性提升的同时也给我们的生活带来了更多便捷性的体验。今天我们就来聊一聊有用了3年的华为Mate20Pro终于退休,换到小米12后,不吐不快因为华为现在已经不能够推出最新的5G芯片,所以导致它的旗舰机型更新节奏变得异常缓慢,作为一名华为的忠实粉丝,现在也不得不放弃选择了其他品牌,在最近看到小米时推出之后,因为它的价格以小米12新机型通过认证,不到3000比iPhoneSE3还便宜小米数字系列手机是小米的高端旗舰手机,小米在去年12月的时候推出了小米数字系列新旗舰小米12系列手机。目前已经推出的小米12系列手机有小米12X,小米12及小米12Pro三款不同的699元!魅蓝10正式发布5000毫安中国芯,主打安全长续航1月12日消息,魅蓝发布了回归后的首款智能手机魅蓝10,起售价为699元。这款新机搭载国产虎贲T310处理器,拥有5000毫安时电池和4800万全场景三摄,搭载Flyme9lite大厂裁员失业就在一瞬间1hr突如其来老白做梦也没想到,裁员的大刀会以迅雷不及掩耳之势砍向了自己。作为一名互联网大厂的核心部门员工。就在圣诞节那天,老白突然接到工作群的通知下午三点开会,内容是业务调整。会腾讯今年已回购184万股涉资逾10亿港元读创深圳商报记者谢惠茜近期,腾讯控股等互联网巨头纷纷大手笔回购自家股票。1月11日,腾讯控股公告称,回购44万股,每股回购价介乎454。20港元至461。80港元,涉资2。02亿元婴儿期的社区零售业竞争激烈但前景却极具吸引力虽然科技和快餐在中国持续的电子商务繁荣中获得了大量关注,但在线杂货市场也出现了活跃景象,有大大小小的参与者,还有各种未经验证的商业模式。IGD的数据显示,中国和美国在食品杂货总体销联想到底为中国贡献大还是为美国贡献大?自司马南质疑联想以来,一些挺联想的指责司马南要搞垮联想,联想一旦倒掉,中国损失就大了,美国就高兴了。我们来分析一下,看看联想到底给中国贡献大还是给美国贡献大?联想的产品电脑手机是自富瑞维持京东集团SW(09618)买入评级目标价473港元智通财经APP获悉,富瑞发布研究报告称,维持京东集团SW(09618)买入评级,目标价473港元。报告中称,预期京东集团第四季收入同比增长21至2710亿元(人民币,下同),非通用华南理工,中国造车江湖最大门派这一幕依然令人难忘2021年11月13日,华南理工大学返校日,新能源汽车界一半的大佬都到了,场面相当震撼。此前深圳一位VC投资人也分享过一个经历。他从2019年开始,沿着华工校友圈