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,(似乎是增加了组件数量,而且转换也必须是显示的,但是为减少依赖,在大型项目中的链接时间,增加可测试性是值得的)

     

  • 相关阅读:
    rabbitmq-高级(死信队列)
    rabbitmq-高级(TTL过期时间)
    springboot整合rabbitmq(topic主题模式)
    springboot整合rabbitmq(direct路由模式)
    glide图片加载库
    自己封装的OKhttp请求
    手机上搭建微型服务器
    listview实现点击条目上的箭头展开隐藏菜单。
    recycleview + checkbox 实现单选
    recycleview中使用checkbox导致的重复选中问题
  • 原文地址:https://www.cnblogs.com/songr/p/5273233.html
Copyright © 2011-2022 走看看