有两个不同的GitHub分支永远不会合并以分别存储接口和完整的应用程序是一个好主意吗?

Mat*_*teo 0 git merge interface github

对于我的软件工程类,我们必须用Java开发一个按钮引导的应用程序(即按下按钮切换LED).我们必须根据接口定义整体架构,然后在各种场景中实现它:按钮和LED在同一台PC上建模为GUI元素,按钮和LED建模为不在同一台机器上运行的GUI元素(例如远程),Raspberry Pi/Arduino等物理按钮和LED ......

尽管运行环境发生了变化,但接口必须相同,即只有实现必须改变.通过接口我不是指GUI,而是我的应用程序中的类将实现的接口(例如,接口iLed将由类Led实现,其方法代码将根据LED的建模方式而变化:物理LED,本地GUI元素等.).只是为了给你一个想法,在下面的链接中有draw.io接口的UML图(用draw.io打开):https://drive.google.com/file/d/0BxSY8GbXKYeAd0dZNm92ODdOSFE/view ? usp = sharing

我想要的是能够在接口(和驱动程序存根)之间来回切换以及我正在处理的完整应用程序(除了接口之外,还有实现它们的类).构建项目以实现这一目标的最佳方法是什么?拥有一个永远不会合并的两个分支的GitHub仓库是一个好主意,一个只有接口而另一个只有接口,另一个带有实际的实现(即给定执行环境的完整应用程序,接口也是如此)?如果没有,你有什么建议?我问,因为据我所知,你通常会分支添加/修改一些功能,然后与你最初分支的分支合并,这意味着分支将重新组合在一起.

Ste*_*ica 5

可能最好的做法是为您的接口和完整的应用程序创建两个单独的存储库.然后,您可以将接口代码作为子模块添加到主程序中.

从本质上讲,子模块是一种将Git存储库保存在另一个Git存储库中的方法.这样,您可以将接口作为单个独立项目来处理,但您也可以将代码包含在需要它的其他相关项目中.