我还没有开发Android一段时间,我正在努力将新功能作为Gradle依赖项做正确的事。
我想知道当您需要修改一个特定的依赖项以满足您的需求时,最佳实践是什么。
例如,假设我们有两个库通过继承适配器来扩展RecyclerView功能:
Adapter --> AdapterA
Adapter --> AdapterB
由于Java不支持多重继承,我想让两个库一起工作的唯一方法就是修改其中一个,这样子类层次结构如下所示:
Adapter --> AdapterA --> AdapterB
如果我是正确的,这是要走的路,那么修改和集成库的最佳方法是什么,这里有我能想到的选项:
请证明或建议什么是更好的,如果有任何其他替代方案来实现这一点。
答案 0 :(得分:5)
我说只需创建一个依赖于其他库的本地模块并修改它。不要忘记记录您所做的更改。理想情况下,您将模块作为VCS中的单独提交导入,然后在另一次提交中修改它。
这样做的好处是,如果您想要更新库,那么这将非常容易,因为您只需要复制新版本的源代码,然后进行相同的修改。但是,如果采用其他方法,那么您还必须将所有更改推送到GitHub,这会增加复杂性,但除非您想与其他人共享修改,否则几乎没有任何好处。
答案 1 :(得分:5)
这似乎是一种不寻常的情况 - 也许一个例子会有所帮助 在使用分叉库之前还要考虑构图。 https://en.wikipedia.org/wiki/Composition_over_inheritance
Encode?