`
javatar
  • 浏览: 1684699 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

[转]包设计原则

 
阅读更多
粒度:包的内聚性原则
1) 重用发布等价原则(The Release Reuse Equivalency Principle (REP))
* 重用的粒度就是发布的粒度
* 一个可重用的包必须为发布跟踪系统所管理,使我们在新版本发布后我们还可以继续使用老版本
* 一个包中的所有类对于同一类用户来讲都应该是可重用的。

2) 共同重用原则(The Common Reuse Principle (CRP))
* 一个包中的所有类应该是共同重用的,如果重用了包中的一个类,就应该重用包中的所有类。
* 一般来说,可重用的类需要与作为该可重用抽象一部份的其它类协作,CRP规定了这些类应该属于同一个包。
* 放入同一包中的所有类应该是不可分开的,其它包仅仅依赖于其中一部份情况是不可能的(不允许的),否则,我们将要进行不必要的重新验证与重新发布,并且会白费相当数量的努力。(一个包依赖于另外一个包, 哪怕只是依赖于其中的一个类也不会削弱其依赖关系)
* CRP倾向于把包做的尽可能的小

3) 共同封闭原则(The Common Closure Principle (CCP))
* 包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中所有类产生影响,而对于其他的包不造成任何影响。
* 这是单一职责原则对于包的重新规定。
* CCP鼓励我们把可能由于同样的原因而更改的所有类共同聚集在同一个地方。将变化限制在最小数据的包中。
* CCP倾向于将包做的尽可能的大。
* CCP有益于维护者(包的作者),而REP和CRP有益于重用者(包的使用者)。

稳定性:包的耦合性原则
4) 无环依赖原则(The Acyclic Dependencies Principle (ADP))
* 在包的依赖关系图中不允许存在环。
* 包的依赖关系图应该是一个有向无环图(DAG(Directed Acyclic Grphic))
* 存在环的系统,很难确定包的构建顺序,事实上,并不存在恰当的构建顺序。
* 打破环的第一个方法:依赖倒置原则,使一个包不再依赖于另一个包,而只是依赖于其抽象接口。
* 打破环的第二个方法: 创建一个新包来包含公共依赖部份。

5) 稳定依赖原则(The Stable Dependencies Principle (SDP))
* 朝着的稳定的方向进行依赖
* 你设计了一个易于更改的包, 其它人只要创建一个对它的依赖就可以使它变的难以更改,这就是软件的反常特性。通过遵循SDP可以避免这种情况。
* 不稳定性度量:I = Ce / (Ca + Ce). Ca: Afferent Coupling. Ce: Efferent Coupling
* SDP规定一个包的I度量值应该大于它所依赖的包的I的度量值,也就是说,I的度量值应该顺着依赖的方向减少。

6) 稳定抽象原则(The Stable Abstractions Principle (SAP))
* 包的抽象程度应该和其稳定程度一致。
* 一个稳定的包同时应该是抽象的,这样,其稳定性就不会导致其无法扩展。一个不稳定的包应该是具体的,这样,因为其不稳定性使得其内部的具体代码易于修改。
* 抽象性度量:A = Na / Nc Na: Number of classes. Nc:Number of abstract classes.
* 创建一个以A为纵轴,I为横轴的坐标图,最稳定,最抽象的包位于左上角(0,1)处, 那些最不稳定,最具体的包位于右下角(1,0)处。
分享到:
评论
1 楼 lishichao1002 2016-12-05  
[flash=200,200][url][img][list]
[*]
引用
[u][i][b][/b][/i][/u]
[/list][/img][/url][/flash]
  

相关推荐

    Access-2010数据库应用:数据库设计的基本原则.pptx

    3 设计数据库时要综合考虑多个因素,权衡各自利弊确定数据表的结构,基本原则有以下几条: (1)把具有同一个主题的数据存储在一个数据表中,也就是"一表一用"的设计原则。 (2)尽量消除包含在数据表中的冗余数据...

    机器人知识机器人三原则人与机器人关系.docx

    机器人的身体结构我们要让机器人平稳地行走,还要设计它的身体结构,也就是机械结构。生活中有很多机器都有很巧妙的机械结构,比如脚一踩,自行车轮子就能 机器人知识机器人三原则人与机器人关系全文共2页,当前为第...

    机器人知识、机器人三原则、人与机器人关系.docx

    要使机器人工作起来,必须设计电路,电路是机器人知识、机器人三原则、人与机器人关系全文共3页,当前为第3页。机器人知识、机器人三原则、人与机器人关系全文共3页,当前为第3页。机器人的神经系 统,是将机器人各...

    面向智能制造的数字化转型.docx

    需要遵循"统一规划,分步实施"的推进原则,基于企业架构信息化规划(TOGAF)方法论也适用于智能制造型企业的数字化转型。 2019年政府工作报告指出,推动传统产业改造提升。围绕推动制造业高质量发展,强化工业基础和...

    ThoughtWorks-数字化转型.rar

    该资料涵盖了数字化转型的多个关键方面,包括战略规划、技术选型、组织结构调整、流程优化、数据驱动决策以及客户体验设计等。它不仅提供了理论框架,还结合了实际案例研究,以展示如何成功地应用这些原则和实践。...

    40.中台战略企业数字化转型的思考(PPT格式).rar

    资料中深入探讨了中台架构的设计原则、关键技术选型、以及如何在组织内部推动文化和流程的变革,确保数字化战略的有效落地。此外,资料还包含了一系列成功案例分析,展示了不同行业领先企业如何通过实施中台战略,...

    edk-date-picker:一个自定义的Web组件元素,它提供了一个自定义的日期选择器,并通过考虑材料设计原则进行开发

    它是通过考虑材料设计原则而开发的。 该响应组件检测页面方向并将其自身转换为横向或纵向。 库用于日期函数。 包含本地化属性的Javascript文件包含在此组件中。 因此,可以使用“ locale”属性轻松设置任何语言。 ...

    物流管理(田宇等主编)教材练习题及答案08 物流组织.docx

    * 物流管理组织架构设计原则包括有效性原则、合理的管理幅度与管理层次原则、权责对等原则和统一指挥原则。 知识点4:供应链管理思想 * 供应链管理思想强调建立有效的组织体系来解决公司外部的物流问题,进一步...

    软件设计方案(案例).doc

    它的设计原则是为了满足软件专业化和标准化的需求,实现用户与计算机之间的通信,以控制计算机或进行用户与计算机之间的数据传送的系统部件。 一、界面设计 界面设计是软件设计方案的重要组成部分。它包括软件启动...

    光机电一体化控制技术四.doc

    五、光机电一体化系统设计原则主要包括机电互补原则、功能优化原则、自动化原则、效益最大原则、开放性原则等。 六、衡量传感器品质主要参数包括灵敏度、分辨力、准确度、精确度、重复性、线性度等。 七、载荷是...

    最精确公历转农历java源码

    包含: 1.程序源码 2.编译好的jar文件 3.使用文档 程序说明: 该程序可将1800.1.1--2100.10.1的任意公历日期转为农历. 该程序包含了1800-2100年...程序设计设计时遵循如下原则: 1.精确第一. 2.各年相互独立. 3.便于扩展.

    操作系统段页式课程设计.rar

    系统包含两个部分,一个部分是按内核代码原则设计的固定分区分配存储管 理系统,由一系列的函数组成;另一个部分是演示系统,调用固定分区分配存储 管理系统的相应函数,以让其运行,同时用字符界面作为系统的展示...

    java开源包8

    设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多...

    毕业设计:电子购物商城系统

    系统设计是在系统分析的基础上由抽象到具体的过程,同时,还应考虑到系统所实现的内外环境和主客观条件,本着实事求是的...系统的总体结构设计是指整个系统由哪些部分组成,以及各部分在物理上、逻辑上的相互关系,包

    基于C51单片机,DS18B20温度计的设计与实现_毕业设计论文范文模板参考资料

    系统设计原则包含安全性、操作的便利性、实时性、通用性和经济性。设计时应考虑到系统的安全可靠、操作维护方便、实时性强、通用性好和经济效益高。 知识点五: 硬件结构设计 硬件结构设计采纳标准总线结构,配置...

    java开源包4

    设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多...

    GeoDataViz-Toolkit:GeoDataViz工具包是一组资源,可通过设计引人注目的视觉效果来帮助您有效地传达数据。在此存储库中,我们正在共享资源,资产和其他有用的链接

    GeoDataViz工具包 GeoDataViz的定义:地理数据可视化–将与物理,人为或基于位置的地理相关的数据转换为引人入胜的故事或论点的...在您将找到我们的八项设计原则和便捷的清单。 颜色 颜色的使用通常是数据可视化成功的

    尚硅谷设计模式源码笔记课件.zip

    1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种...

    网络设计方案(1).doc

    网络系统设计规划 1、网络设计指导原则 网络设计应该遵循开放性和标准化原则、实用性与先进性兼顾原则、可用性原则、 高性能原则 、经济性原则 、可靠性原则、安全第一原则、适度的可扩展性原则、充分利用现有资源...

Global site tag (gtag.js) - Google Analytics