2011-06-08 75 views
3

我工作在一个大的项目,包括服务器,某些插件用于控制可以加载到服务器的过程设备,并且客户还能够连接到服务器。我正在寻找构建最终需要存在的框架的最佳实践。组织框架客户端,服务器和插件

但是也有一些客户端,服务器和插件之间共享头文件和一些标题特定于该系统的各个方面。有时候头文件只能在说客户端和服务器,或者服务器和插件之间共享。同样,在项目的所有三个方面都可以共享通用代码,并且还有一些代码只能在一个特定方面需要。

当项目完成后,我们将需要释放客户端应用程序和插件开发者API为第三方开发针对。

我不知道如何正确地构造支持这个所需的框架。

我需要2个独立的框架吗?或者我可以有1个框架,包括所有标题,并提供2个单独的dylibs?

如果我需要有2个独立的框架,我该怎么办与在系统的各个环节之间共享的头文件?我不想将它们复制到每个框架中,以避免版本控制可能出现的问题。

第3个只有标头的框架是否合理?

谁能推荐用于构建最佳实践这种事情与OS X的框架?

回答

1

框架=库+为标头

每个框架只需要包括要公开的接口的头文件。即使共用头文件被用于构建所有三个框架,您都没有义务捆绑它们。

A 3框架的方法就可以了,即使框架之一,仅捆绑共同的头和没有图书馆在所有。例如:如果你在你的Mac上安装Qt,你会看到它跨越了许多框架,但是头文件从来不会被重复使用。还有一些框架只包含头文件而没有代码(例如QtScript.framework)。