2011-06-08 72 views
3

我工作在一個大的項目,包括服務器,某些插件用於控制可以加載到服務器的過程設備,並且客戶還能夠連接到服務器。我正在尋找構建最終需要存在的框架的最佳實踐。組織框架客戶端,服務器和插件

但是也有一些客戶端,服務器和插件之間共享頭文件和一些標題特定於該系統的各個方面。有時候頭文件只能在說客戶端和服務器,或者服務器和插件之間共享。同樣,在項目的所有三個方面都可以共享通用代碼,並且還有一些代碼只能在一個特定方面需要。

當項目完成後,我們將需要釋放客戶端應用程序和插件開發者API爲第三方開發針對。

我不知道如何正確地構造支持這個所需的框架。

我需要2個獨立的框架嗎?或者我可以有1個框架,包括所有標題,並提供2個單獨的dylibs?

如果我需要有2個獨立的框架,我該怎麼辦與在系統的各個環節之間共享的頭文件?我不想將它們複製到每個框架中,以避免版本控制可能出現的問題。

第3個只有標頭的框架是否合理?

誰能推薦用於構建最佳實踐這種事情與OS X的框架?

回答

1

框架=庫+爲標頭

每個框架只需要包括要公開的接口的頭文件。即使共用頭文件被用於構建所有三個框架,您都沒有義務捆綁它們。

A 3框架的方法就可以了,即使框架之一,僅捆綁共同的頭和沒有圖書館在所有。例如:如果你在你的Mac上安裝Qt,你會看到它跨越了許多框架,但是頭文件從來不會被重複使用。還有一些框架只包含頭文件而沒有代碼(例如QtScript.framework)。