2011-10-18 48 views
2

我在组件之间存在恼人的依赖关系问题,并且我想听到几种方法来解决它。源和错误运行时组件之间的依赖关系

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

Component dependency diagram

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

什么是最佳模式在这里使用?我在想可能用所需的Source位置id来模拟运行时错误类型。

回答

1

最简单的解决方案是定义了在一个独立的单元(可能是一个单个报头)中使用由你的模块的所有类型和共同行为,即所有的实际处理单元使用。

对于最小的开销/头痛和兼容性问题,尽量保持这些类型的POD如果可以的话(这些共享的类型可能会在某一时刻与其它应用程序/插件/无论通信是有用的其他地方)。

“Templatizing”的东西不是微不足道的。这是非常强大和富有表现力的,但是如果你正在寻找消除依赖关系,我的观点是:试着看看你是否可以先让更简单