- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4 接口标识依赖 A可以多个接口,要使B正常编译和执行,该接口的标识(名字或句柄)必须与B假定的一致 5 运行位置依赖 要使B正常运行,A的运行时位置,必须与B假定的一致 B可能会假定A位于相同处理器的不同进程上 6 服务/数据质量依赖 要使B正常运行,涉及A所提供的数据或服务的质量的一些属性必须与B的假定一致 某个特定的传感器所提供的数据必须有一定的准确性,以使B的算法能够正常运行 7 模块的存在依赖 要使B正常运行,A必须存在 如果B请求对象A提供服务,而A不存在且不能动态创建,那么B就不能正常执行 8 资源行为依赖 要使B正常运行,A的资源行为必须与B的假定一致,如 A的资源使用:B假定A使用与B相同的内存 A的资源拥有:B假定他保留了A认为属于它的资源 防止连锁反应的战术 信息隐藏 维持现有接口 限制通信路径 仲裁者的使用 防止连锁反应的战术 信息隐藏 维持现有接口 限制通信路径 仲裁者的使用 防止连锁反应:信息隐藏 将具体的实现细节与决策过程隐藏起来,让使用者只看到结果 就是把某个实体(一个系统或者系统的某个分解)的责任分解为更小的部分,并选择使哪些信息是公有的,哪些是私有的 可通过指定的接口使用公有的责任 其目标是将变更隔离在一个模块内,防止变更扩散到其他模块 面向对象技术和抽象数据类型技术都可较方便地实现信息隐藏 信息隐藏的好处 在软件系统中,一个模块设计得好不好的最重要的标志,就是该模块在多大程度上将自己的内部数据和其它与实现有关细节隐藏起来 使各个模块之间松耦合,从而使得它们可以独立地被开发、优化、使用以及修改。 促进复用 一个系统的规模越大,信息的隐藏就越是重要,其优势也越明显 信息隐藏举例—面向对象 设计一程序,程序中每一个对象都通过一个id变量来保存唯一的ID,关于id的分配方法。 方法一 整数表示ID G_maxID表示目前已分配的最大值 每次创建一个新对象时 id=++ G_maxID,获得新对象的ID。 信息隐藏举例—面向对象(2) 问题1:把某些范围的ID留作它用时怎么办? 问题2:重用已经销毁的对象的ID呢? 问题3: id=++ G_maxID 如果在程序中多处出现,那么一旦发生上述任一问题,如何呢? 信息隐藏举例—面向对象(3) 解决办法: id=NewID(); 其他问题? 问题4:ID一定是整型的吗? 如果我想将ID的类型修改为字符串,那么情况如何呢? 程序中已经存在了大量的int id;语句,需要深入到各处程序进行几十次,甚至上百次的修改,有什么解决办法呢? 信息隐藏举例—面向对象(4) 解决办法: 继续隐藏,隐藏什么呢? 数据类型:id的类型 int id; 将id的类型定义为IdType; 同时使用typedef 将 IdType 定义为你希望的类型 那么如果ID的类型需要修改,就只需修改typedef 处与NewID()的内部即可,而不会影响其他各处“外面”的程序 信息隐藏层次 信息隐藏的层次 具名常量代替字面常量 Const int MAXID=50000; 数据类型层次 类、子程序、子系统各个层次 信息隐藏:接口设计 类或者模块设计中最重要的一点就是:接口设计 哪些可以暴露给外部 哪些特性应该隐藏起来 接口隔离原则 使用多个专门的接口比使用单一的总接口要好 一个类对另外一个类的依赖性应当是建立在最小的接口上的 网站全文查询引擎接口例 一个动态的资料网站将大量的文字资料存贮在文件中或关系数据库中 用户可以通过输入一个和数个关键词进行全网站的全文搜索 这个搜索引擎需要维持一个索引库,在本例中,索引库以文本文件方式存于文件系统中 在源数据被修改、删除或增加时,搜索引擎要做相应的动作,以保证索引文件也被相应地更新 接口设计1 接口设计2 多说两句:接口类型 人们讲到“接口”的时候,往往有两种不同的含义: 真正的接口类型,如Java接口,有特定的语法和结构 只有方法的特征,没有方法的实现 一个类所具有的方法的特征集合 接口类型对可插入性的支持 一个对象可能需要调用其它对象的方法,这种调用不一定非得是某一个具体的类,而可以是一个接口类型 任何实现了这个接口的具体类都可以被当前对象调用 当前对象到底调用的是哪一个具体类的实例则完全可以动态地决定 所以,在通常情况下,使用接口类型而不是具体类进行变量的类型声明、参量的类型声明、方法的返回类型声明,以及数据类型的转换 退而次之是使用抽象类 List employees = new Vector(); 信息隐藏的原则 原则1:没有必要让外界知道的东西,就不让外界知道 原则2:只让外界知道必要的东西 例如,外界需要知道一个结果,那么就返回一个结果,而没有必要让外界知道该结果是如何产生的(中间结果与中间过程要隐藏,只给出最终结果)。
您可能关注的文档
最近下载
- 2025至2030全球及中国飞机拆卸行业发展趋势分析与未来投资战略咨询研究报告.docx
- 二维液相色谱在中药分析的应用.pdf VIP
- 2025加强党的作风和纪律建设PPT学习课件.pptx VIP
- 黄燕铭荐阅二:公司研究基本框架.pdf VIP
- 下学期高一生物人教版必修2:6.3.2隔离在物种形成中的作用(16张PPT)(含音频+视频).pptx VIP
- 聊天的时候对方撤回消息,一招让你照样能看.pdf VIP
- 煤制甲醇主要危害分析及安全生产策略.docx VIP
- 绿色化工技术在化学工程与工艺中的应用研究.docx VIP
- 高一化学(必修一)离子反应练习题(含答案解析).docx VIP
- 改性壳聚糖对染料废水的脱色研究 毕业论文.doc VIP
原创力文档


文档评论(0)