网站大量收购独家精品文档,联系QQ:2885784924

编程之包的设计原则.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编程之包的设计原则

包的设计原则重用发布等价原则 前言 Robert C. Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为“Principles of OOD”,关于“Principles of OOD”的相关文章可以从Object Menter得到。 本文介绍The Release Reuse Equivalency Principle (REP):重用发布等价原则。 概要 The granule of reuse is the granule of release. 重用粒度等价于发布粒度。 重用的概念 重用主要是从用户的观点来看的。 对用户来说,使用某个发布单位(组件,类,类群等),如果作者因为某种原因对其作了修改而发布了一个新的版本,用户会期望在升级为新版本之后,不会影响到原系统的正常运作。 也就是说,对于一个可重用(能供其它用户或系统使用)的元素(组件,类,类群等),作者应该承诺新版本能够兼容旧版本。否则,用户将拒绝使用该元素。 Robert C. Martin氏给出的对重用的定义: I prefer to define reuse as follows. I reuse code if, and only if, I never need to look at the source code (other than the public portions of header files). I need only link with static libraries or include dynamic libraries. Whenever these libraries are fixed or enhanced, I receive a new version which I can then integrate into my system when opportunity allows. 代码可以看作为可重用的代码,当且仅当: - 它的使用者(下称用户)无需看它的源代码 - 用户只需联结静态库或包含动态库 - 当库发生改变(错误纠正,功能增强)时,用户只需要得到一个新的版本便能集成到原有的系统 怎么做到重用呢? 一个组件要做到能够重用,它必须有一个得到良好设计的结构,它所包含所有元素必须也是可以重用的。 因为如果一个为重用而设计的发布单位里,包含了不可重用的元素,当不可重用的元素发生改变时,用户也不得不改变原有系统以适应新的版本。这显然违反了重用的定义规则。 也就是说,一个为重用目的而设计的发布单位里,不能包含不可重用的元素;如果包含了不可重用的元素,它将变得不可重用。 发布单位 当用户使用的重用组件被作者修改后,用户希望得到通知,然后决定是否升级或升级的时机。为了能使升级后的系统也能正常运作,用户也希望作者有一个规范的发布,包括版本号,类库的说明等等。 一旦用户决定升级新版本,不管这些修改是否影响到用户,用户也不得不包含新版本所包含的所有类库。 REP规定重用粒度不能小于发布粒度,所有重用元素也必须被一起发布。 发布粒度可以为包(组件),或类等实体,但一个应用往往包含了很多类,所以,具有更大的尺度的包(组件)更加适合作为发布粒度。 重用发布等价原则为我们指明了包的设计方针: 一个包中的元素(类)要么都可重用,要么都不可重用。 小结 重用发布等价原则(REP)从用户观点的角度上为我们规范了包设计的原则:在设计包时,包中应该包含的元素要么都可以重用,要么都不可以重用。 参考资料 Granularity by Robert C. Martin。 Principles and Patterns by Robert C. Martin。 2、无环依赖原则 前言 Robert C. Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为“Principles of OOD”,关于“Principles of OOD”的相关文章可以从Object Mentorr得到。 本文介绍The Acyclic Dependencies Principle (ADP):无环依赖原则,或者非循环依赖原则。 概要 The dependency structure between packages must be a directed acyclic graph (DAG). That is, there must be no cycles in the dependency structure. 包之间的依赖结构必须是一个直接的无环图形(DAG)。也就是说,在依赖结构中不允许出现环(循环依赖)。 换成另一个说法是: The dependencies between packages m

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档