我们说LibImplementationA
包含LibInterfaces
LibImplementationA
包含LibInterfaces
的java接口的实现
我的应用程序使用LibInterfaces
中的接口和LibImplementationA
中的实现
我在我的应用中添加了LibImplementationA
,我想我可以在我的应用代码中使用LibInterfaces
中的界面。但我不能!
为什么?
要使我的应用有效,我必须加入LibImplementationA
和 LibInterfaces
。
所以LibInterfaces
是重复的(在LibImplementationA
和我的应用中),这似乎非常糟糕(如果更新了LibInterfaces
)
最后但并非最不重要的是,在我的应用中,我希望能够使用LibImplementationA
切换为LibImplementationB
或LibImplementationX
(这就是应用使用{{1}的原因}})。
我真正的问题是更复杂,但我需要一个聪明的主意,以避免重复这个LibInterfaces
,如果可能的话!
我使用Android Studio,使用gradle
编辑:为了更好地理解,LibInterfaces
包含通信接口(简单为LibInterfaces
,sendMessage()
方法),messageReceived()
使用SIP,XMPP,WebSocket,Whatever实现这些方法。
答案 0 :(得分:0)
“为什么”的答案 - LibInterfaces
可以受到保护/默认范围界面&无法在特定包装之外实施。