Section 5 包.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Section 5 包

包图 在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间“阡陌交纵”的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。这也就是引入了“包”这种分组事物构造块。 包的基本概念 分解是软件开发中控制软件复杂性的重要手段。 在OO方法中,需要考虑如何把相关的类放在一起。 包是一个“容器” ,可用于组织模型中的相关元素以便更容易理解。维护和控制系统总体结构的重要建模工具。 包中可以包含其他建模元素,如: 类、接口、构件、结点、用例、包等。 包的表示法 名称:每个包都必须有一个与其它包相区别的名称 简单包名 路径包名:路径包名中位于前面的是外围包,后面的是内部包。注意包的嵌套层数不应过多。 包的可见性 公有的(public) “+” 表示在任何导入(import)AWT包的包中,可以引用Window 受保护的(protected) “#” 表示只有AWT包的子包才可以引用Form 私有的(private)“-” 表示只有在AWT包中才可以引用EventHandler 包的依赖关系 如果包中的任意两个类之间存在依赖关系,则这两个包之间可以存在依赖关系 《import》关系:最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包(发出者)的命名空间中,客户包中的元素也能够访问提供者包(箭头指向的包)的所有公共元素 《access》关系:只想使用提供者包中的元素,而不想将其命名空间合并则应使用该关系 两者表示的含义相同,访问依赖很少使用,在大多数情况下都是使用引入依赖。 如果订单包中的一个类改变了,并不表明订单获取界面包需要改变。它仅仅表明订单获取应用包需要查看是否自己要跟着改变。只有当订单获取应用包的界面变化了,订单获取界面包才需要改变。 依赖关系的非传递性 包的泛化关系 包之间可以存在泛化关系 子包继承了父包中可见性为public和protected的元素 包的泛化关系 多态性概念对包也适用 必要的触发界面放入数据库界面包中,这些操作由子类型包中的类来实现 阅读包图 看两个《import》,从包的命名和其所属的元素不难发现Rule负责处理一些规则,并引用一个具体的窗体(Window),而Client包则通过引用Rule来实现整个窗体和表单的显示、输入等。并且还将暂存Order(订单)信息。 接着来看包的泛化关系,GUI有两个具体实现,一个是针对C/S的WindowsGUI,一个是实现B/S的WebGUI。 设计包的原则 重用等价原则(Reuse Equivalency Principle, REP) 把类放入包中时, 应考虑把包作为可重用的单元. 共同闭包原则(Common Closure Principle, CCP) 把需要同时改变的类放在同一个包中. 共同重用原则(Common Reuse Principle, CRP) 不会一起使用的类不要放在同一个包中. 非循环依赖原则(Acyclic Dependencies Principle, ADP) 包之间的依赖关系不要形成循环. 好的设计体现高内聚、低偶合 设计包时应遵循以下原则: 包的应用 基本功能: 对建模元素进行分组. Rose中,包可以提供其它功能: 数据建模中, 包表示模式和域 Web建模中, 包可以表示一个虚拟目录 作为控制单元方便团队开发和配置管理 寻找包图 分析系统工作流程: 1)通过Internet连接到股票信息服务器,获取实时的股票信息,并存入数据库中。 2)根据用户的输入和选择,从数据库中获取相应的信息,展现在屏幕中。 3)在数据的展现过程中,将需要绘制大量的图表 根据功能模块组织包: 包 分析与功能 .NET支持包 SocketClient 负责连接Internet服务器,获取实时股票信息 System.Net.Sockets DataAccess 负责从数据库读写实时股票信息 System.Data.Sqlclient UI 负责响应用户输入和选择,并展现信息 System.Windows.Forms GraphicGenerate 负责根据数据库的信息生成相应的图表 System.Drawing 确定包与包之间的依赖关系 小结 包的表示、可见性、依赖关系、泛化等概念 包的设计原则:重用等价原则、共同闭包原则、共同重用原则、非循环依赖原则 寻找包以及确定包之间的依赖关系 描述你的需求高阶概述。 描述你的设计的高阶概述。 在逻辑上把一个复杂的图模块化。 组织Java源代码。 描述你的需求高阶概述。 描述你的设计的高阶概述。 在逻辑上把一个复杂的图模块化。 组织Java源代码。 请注意访问依赖关系不改变客户的命名空间或

文档评论(0)

hf916589 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档