ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

包的设计原则

2019-09-09 14:38:37  阅读:312  来源: 互联网

标签:包中 依赖 原则 重用 抽象 设计 应该


定义与作用

  • 包是一组类的容器。通过把类组织成包,我们可以在更高层次的抽象上理解设计。
  • 我们也可以通过包来管理软件的开发和发布。
  • 类会和其他包的类存在依赖,跨越包的边界,从而使包之间产生了依赖关系。

设计原则

重用发布等价原则(REP)

  • 重用的粒度就是发布的粒度。
  • 重用类库时,我们要求作者维护代码,同时在接口和功能改变时通知我们(同时我们有拒绝改变的权利)。
  • 重用性的包应该只包含以重用性为目的而设计的类。相反,非重用性的包只包含以非重用性为目的而设计的类。

共同重用原则(CRP)

  • 趋向于共同重用的类应该属于同一个包。
  • 如果依赖于一个包,那么应该依赖于该包中的所有类.否则将要进行不必要的重新验证和发布(当不依赖的部分变化时)。
  • 相互之间没有紧密联系的类不应该在同一包内。

共同封闭原则(CCP)

  • 包中的所有类对于同一类性质的变化应该是共同封闭的。即一个变化若对一个包产生影响,则将对包中的所有类产生影响,而对于其他的包不会造成任何影响。
  • 一个包不应该包含多个引起变化的原因(SRP的包规定)。
  • 通常,可维护性是重于可重用性的。应该将可能由于同样的原因而更改的类共同聚集在一个包内。

以上的三个原则,主要关注包的内聚性原则的。该原则主要作用是指导我们如何把不同的类划分到同一个包。通常我们选择包中的类时,要考虑可重用性与可开发性之间的反作用力。

无环依赖原则(ADP)

  • 包的依赖关系图中不允许出现环。
  • 包设计时应该尽量避免出现依赖环。
    • 使用DIP。
    • 增加新包。
      在这里插入图片描述

稳定依赖原则(SDP)

  • 朝着稳定的方向进行依赖。
  • 为了可维护性,易变性是必须的。对某些变化敏感的包,可以设计成可变的。
  • 对于一个期待可变的包,不应该让一个难以更改的包依赖于它。否则,它也会变成不可变的。
  • 软件的反常特性:对于一个易变的包,创建一个对它的依赖就可以使其变得难以更改。

稳定抽象原则(SAP)

  • 包的抽象程度应该和其稳定程度一致。
    • 一个稳定的包应该是抽象的,这样稳定性不会使其无法扩展。
    • 一个不稳定的包应该是具体的,不稳定性使其内部的具体代码易于更改。
  • SAP+SDP构成了包的DIP原则。依赖应该朝着稳定的方向进行+稳定性意味着抽象性=>依赖应该朝着抽象的方向进行。
  • 包的灰度:允许包是部份抽象,部份稳定。
  • 包抽象性度量:抽象类的数目/类的总和。A=a/c

以上上三个原则,主要关注包的耦合性原则的。该原则主要帮助我们确定包与包之间的相互关系。

标签:包中,依赖,原则,重用,抽象,设计,应该
来源: https://blog.csdn.net/wangshou84/article/details/100601774

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有