zoukankan      html  css  js  c++  java
  • 循环物理依赖

     

    这几天在翻大规模C++程序设计,看到第5章。

     

    • 这本书,强调基于组件进行程序设计。

       

      • 所谓组件,树上的定义是,一个.h 和一个.c文件组成一个组件。

        用一个圆角的矩形表示。

       

       

       

       

       

      • 一个组件中可以有一个或多个相关的类

     

     

    • 组件之间依赖

     

     

    • 这本书强调组件级别测试

      说简单一点,就是

      1 基础组件1 写单元测试。

      2 基础组件2单元测试

      3 高层组件1 带着基础组件1,基础组件2 做单元测试(这种行为书中叫增量测试)

      4 高层组件2带着基础组件1,基础组件2座单元测试(增量测试)

      5 不停的增量测试,类比的例子,测试汽车的基础零件,再测试汽车使用了基础零件的子系统(发动机?),….一直到测试整个汽车。

    • 为了增量测试,必须拒绝循环依赖

       

       

      循环依赖,就是指,2个组件彼此引用对方。

       

       

    如上图:

    这样会

    1增加链接开销

    1. 测试时:无法单独测试C1 或者 C2 . 因为他们彼此依赖。这就是循环物理依赖,在系统中要尽可能小的循环依赖。
    • 解决循环依赖的方案之一:升级 (提供一个新类,将耦合部分升级成一个新类)

      书中的原例子

     

    之前windows和 Retage相互依赖 windows可以隐式转换为Rectangle,Rectangle可以隐式转换为window

     

    改进之后

     

    这样就可以单独测试 windows ,retangle,boxutil,(似乎是增加了组件数量,而且转换也必须是显示的,但是为减少依赖,在大型项目中的链接时间,增加可测试性是值得的)

     

  • 相关阅读:
    Context对象还提供了相应的属性来调整线条及填充风格
    基本类型互相之间转化可以用Covent类来实现。
    chfn是用来改变你的finger讯息
    在Web根目录下建立testdb.php文件内容
    springmvc接口接收json类型参数设置
    表单类型参数样板
    git push 免密码
    git提交之后没有push,代码被覆盖之后恢复
    测试流程总结
    linux 更改时区
  • 原文地址:https://www.cnblogs.com/songr/p/5273233.html
Copyright © 2011-2022 走看看