指南:设计中的导入依赖关系
2005-10-14 21:48
211 查看
使用 解释处理包之间的导入依赖关系是构建对象模型的一个重要方面。如果一个包的所有类都能导向到另一个包的类,那么前者依赖于后者。为了表达这种依赖关系,您可使用从一个包到该包所依赖的另一个包的导入依赖关系。包之间的依赖关系使用导入依赖关系表达。 使用按照如下方式逐步生成导入依赖关系:开始制作对象模型之前,先制定依赖关系的概要,以便在工作中用作指南。 完成模型后,使用它来表示模型中的实际依赖关系。这样,就必须更新对象模型中的导入依赖关系。 如果您在早期就将模型分为数个包,那么使用导入依赖关系来表示允许在何处使用依赖关系。 各包之间的依赖程度将影响系统对变更的承受能力。在以下情况下,对象模型更易于变更: 从每个包的外部引用了最少数量的被包含类。 每个包几乎不依赖其他包。 分别测试每个包。这意味着您应该能够通过模拟某个包所依赖的包来测试该包。您不应要求其他包得到完整或近乎完整的实施。如果您能分别测试包,对每个包的系统开发与维护将变得更容易。 将对象模型的常规部分分别置于其他包所依赖的各个包中。如果有这样的包,请严格关注发布版本的处理,因为如果对此类包进行变更,系统中的多个部分可能会受到影响。 示例假定您在回收机中找到了两个类(客户面板和操作员面板)的一些共同之处。您将这些通用服务分配给一个名为面板的新类,该类位于一个名为面板的新包中。另外那两个类就可以引用该类,从而使用其中的通用服务了。因为这两个类分别属于两个不同的包,因此这两个包将依赖新包。这将消除冗余,即只需在一个地方对共有功能进行变更就可以了。 © 1987 - 2001 Rational Software Corporation。版权所有。 | <!-- function loadTop() { if(parent.frames.length!=0 && parent.frames[1].name=="ory_toc") { alert("已分栏显示 Rational Unified Process"); } else { if(window.name=="ory_doc") { window.name = "xyz1234"; } var expires = new Date(); expires.setTime (expires.getTime() + (1000 * 20)); document.cookie = "rup_ory_doc=" + escape (document.URL) + "; expires=" + expires.toUTCString() + "; path=/"; var new_ory_doc_loc = null; for(i=document.links.length-1;i>=0;i--) { if(document.links[i].href.indexOf("index.htm")!=-1) { new_ory_doc_loc = document.links[i].href; break; } } if(new_ory_doc_loc!=null) { top.location = new_ory_doc_loc; } } } // --> <!-- function getImageUrl(image) { var new_ory_doc_loc=null; for(i=document.links.length-1;i>=0;i--) { if(document.links[i].href.indexOf("index.htm")!=-1) { new_ory_doc_loc = document.links[i].href.substring(0,document.links[i].href.lastIndexOf("/")); new_ory_doc_loc = new_ory_doc_loc + "" + image; return new_ory_doc_loc; } } return null; } // --> <!-- MSFPhover = (((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 3 )) || ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ))); function MSFPpreload(img) { var a=new Image(); a.src=img; return a; } // --> <!-- if(MSFPhover) { RupGray=MSFPpreload(getImageUrl('/images/rup1.gif')); RupBlue=MSFPpreload(getImageUrl('/images/rup1_a.gif')); } // --> |
Rational Unified Process |
相关文章推荐
- 实战OO设计——类的关系:依赖、关联、聚合和组合
- 设计模式之UML(一)类图以及类间关系(泛化 、实现、依赖、关联、聚合、组合)
- 设计模式中类的关系之依赖关系(Dependence)
- Android Gradle Plugin指南(三)——依赖关系、android库和多项目配置
- 关系数据库设计理论(2) 函数依赖
- 【转】MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
- 面向对象设计对象之间关系---依赖、关联、聚合和组合
- MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
- Java+Selenium3框架设计准备篇6-TestNG执行测试方法依赖关系
- 设计模式中类的关系之依赖关系(Dependence)
- 重构 — 改善既有的类图设计 条款8:消除继承类和基类中重复的依赖关系
- 设计-依赖关系的理解
- Android Gradle Plugin指南(三)——依赖关系、android库和多项目配置
- 设计模式之UML(一)类图以及类间关系(泛化 、实现、依赖、关联、聚合、组合)
- 开源CAD(计算机辅助设计)——从源代码安装到依赖关系分析
- 组件设计实战--组件之间的关系 (Event、依赖倒置、Bridge)
- 项目实训--设计一个银行类(银行类与链表类、节点类构成依赖关系--和类的组合关系不太一样)
- 重构 — 改善既有的类图设计 条款4:消除重复的依赖关系
- 【转】MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
- 设计模式六种关系:依赖、关联、聚合、组合、继承和实现