2011-10-18 78 views
2

我在組件之間存在惱人的依賴關係問題,並且我想聽到幾種方法來解決它。源和錯誤運行時組件之間的依賴關係

基本上我有3個組件依賴於幾乎從彼此非循環,除了第一個和最後一個組件之間的小依賴。具體而言,這是一個JIT編譯器,但希望它是一種廣泛存在的抽象依賴類型,可能在其他情況下發生。

Component dependency diagram

中的部件基本上在流依賴性的序列;源/ AST生成,代碼生成和運行時間。從圖中可以清楚地看出,運行時產生的錯誤應該能夠傳達可以與源位置項相關的ID。棘手的部分是,這個Id不一定是一個整數類型(儘管它可以)。到目前爲止,SourceItemID是Source組件的內部類型,但現在看起來需要在其外部定義它。

什麼是最佳模式在這裏使用?我在想可能用所需的Source位置id來模擬運行時錯誤類型。

回答

1

最簡單的解決方案是定義了在一個獨立的單元(可能是一個單個報頭)中使用由你的模塊的所有類型和共同行爲,即所有的實際處理單元使用。

對於最小的開銷/頭痛和兼容性問題,儘量保持這些類型的POD如果可以的話(這些共享的類型可能會在某一時刻與其它應用程序/插件/無論通信是有用的其他地方)。

「Templatizing」的東西不是微不足道的。這是非常強大和富有表現力的,但是如果你正在尋找消除依賴關係,我的觀點是:試着看看你是否可以先讓更簡單