• 第四部分 组件构建原则


    第12章 组件

    组件是软件的部署单元,是整个软件系统在部署过程中可以独立完成部署的最小实体。

    第13章 组件聚合

    究竟是哪些类应该被组合成一个组件呢。本章中,具体讨论三个与构建组件相关的基本原则

    • REP:复用/发布等同原则
    • CCP:共同闭包原则
    • CRP: 共同复用原则
    复用/发布等同原则 REP

    软件复用的最小粒度应等同于其发布的最小粒度

    共同闭包原则 CCP

    我们应该将那些会同时个性,并且为相同目的而修改的类放到同个组件中,而将不会同时修改,并且不会为了相同目的而修改的那些类放到不同的组件中。

    • CCP与开闭原则OCP也是紧密相关的。
    • CCP原则实际上就是SRP原则的组件版。
    共同复用原则 CRP

    不要强迫一个组件的用户依赖他们不需要的东西

    • CRP原则实际上是ISP原则的一个普适版
    组件聚合张力图

    REP为复用性而组合---太多不必要的发布----CCP为维护性而组合
    CCP为维护性而组合----复用困难----CRP为避免不必要的发布而切分
    REP为复用性而组合----太多组件变更----CRP为避免不必要的发布而切分
    REP和CCP原则是黏合性原则,它们会让组件变得更大,而CRP原则是排除性原则,它会尽量让组件变小。

    第14章 组件耦合

    无依赖环原则(ADP)

    必须控制好组件之间的依赖结构,绝对不能允许该结构中存在着循环依赖关系。
    组件依赖结构所带刺的是一个有向图,我们称这种结构为有向无环图(Directed Acyclic Graph, 简写为DAG)

    打破循环依赖

    我们可以打破组件中的循环依赖,并将其依赖图转化为DAG。

    • 应用依赖反转原则(DIP)
    稳定依赖原则(SDP)

    依赖关系必须要指向更稳定的方向
    不稳定度 = F(代码量大小,复杂度,清晰度,依赖该模块的数目),和变化频繁不频繁没关系。
    不稳定性(I) = 出向依赖数量 / (入向依赖数量 + 出向依赖数量)。

    稳定抽象原则(SAP)

    一个组件的抽象化程序应该与其稳定性保持一致。如果一个组件想要成为稳定组件,那么它就应该由接口和抽象类组成,以便将来扩展。
    衡量抽象化程度: A=Na(组件中抽象类和接口的数量)/Nc(组件中类的数量)
    避开痛苦区和无用区: 组件不会为了追求稳定性而被设计得“太过抽象”,也不会为了避免抽象化而被设计得“太过不稳定”。这样的组件既不会特别难以被修改,,又可以实现足够的功能。

    我的博客地址:紫荣 || myruhui
  • 相关阅读:
    sshd服务防止暴力破解
    使用秘钥ssh登录远程服务器
    SSH配置文件详解
    WinForm、wpf、silverlight三者关系
    silverlight 和winform的结合使用
    IIS在W7下使用
    c#多线程
    Silverlight的Socket通信
    wcf和webservice区别
    aspx向silverlight传值
  • 原文地址:https://www.cnblogs.com/zyzl/p/15685996.html
Copyright © 2020-2023  润新知