【问题标题】:dependencies between source and error runtime component源和错误运行时组件之间的依赖关系
【发布时间】:2011-10-18 23:27:27
【问题描述】:

我有一个恼人的组件之间的依赖问题,我想听听几种方法来解决它。

基本上,除了第一个和最后一个组件之间的小依赖之外,我有 3 个组件几乎彼此非循环地依赖。具体来说,这是一个 JIT 编译器,但希望它是一种广泛存在的抽象依赖类型,可能在其他情况下发生。

组件基本上是按流依赖顺序排列的;源代码/AST 生成、代码生成和运行时。从图中可以清楚地看出,运行时生成的错误应该能够传达可以与源位置项相关联的 Id。棘手的部分是这个 Id 不一定是整数类型(尽管它可以是)。到目前为止,SourceItemID 是 Source 组件的内部类型,但现在似乎需要在其外部定义它。

在这里使用的最佳模式是什么?我正在考虑使用所需的源位置 id 来模板化运行时错误类型。

【问题讨论】:

    标签: c++ architecture dependencies


    【解决方案1】:

    最简单的解决方案是将模块使用的所有类型和常见行为定义在一个独立单元(可能是单个标头)中,所有实际处理单元都使用该单元。

    为了最小化开销/麻烦和兼容性问题(这些共享类型在某些时候可能在其他地方用于与其他应用程序/插件/任何东西进行通信),如果可以,请尝试保留这些类型 POD。

    “模板化”事情并非易事。它非常强大且富有表现力,但如果您正在考虑删除依赖项,我的意见是:先尝试看看您是否可以让事情变得更简单

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2014-07-04
      相关资源
      最近更新 更多