我必须创建一个具有强大功能的应用。功能可以根据客户端增长。我希望有两个不同的模块/项目的功能,但单个app / apk。我有一个仪表板模块,其中包含可打开其他功能(按活动)的按钮。是否真的可以拥有一个应用程序,以及这样的多个模块?
我正在关注this video作为参考。我想,也许,从那个视频来看,通用模块是我的应用程序。买方项目和卖方项目可以是图书馆。
因此,在图中,我有一个仪表板模块。仪表板模块具有打开其他功能的按钮(例如musicPlayer,imageEditor,fileManager等)。而且,我还有一个Common / Base模块,它将承载所有模块和应用程序本身所需的基本功能。
因此,在这种情况下,仪表板模块依赖于功能模块。并且,功能模块依赖于Common / Base模块。
我认为Dashboard模块可以通过其中一个功能模块访问Common / Base模块,但它没有用。我无法从Dashboard模块访问Common模块中的类。
所以,现在,我必须将Common模块的依赖项添加到Dashboard模块中,对吧?
Dashboard -> Common
Dashboard -> Feature_1 -> Common
Dashboard -> Feature_2 -> Common
Dashboard -> Feature_3 -> Common
Dashboard -> Feature_4 -> Common
正如您所看到的,仪表板模块需要直接使用Common模块,您是否认为它会与Feature模块中的Common模块发生碰撞,为什么或为什么不?
而且,以后如果功能模块必须相互访问,那将是一个糟糕的设计,对吧?循环依赖?
我不知道这种实施是否是一种好方法。我该怎么办呢?这是我第一次尝试模块。
答案 0 :(得分:0)
如果您创建一个启用了“ instantapp”的新Android应用程序,则Android将设置以下结构:
base
|
feature
/ \
app instantapp
通过将base
替换为common
并将dashboard
作为附加功能来处理您的案件。
common
/ | \ ...\
feature feature feature ... dashboard
\ | / .../
app
您的dashboard
实际上应该是引用显示在其上的摘要的简单视图。这些摘要实际上应该由相应的功能部件处理,因为它们将可以访问相关的模型组件,并且最适合为仪表板提供摘要。这将使dashboard
不必导入common
模块。
两个高度依赖的feature
要么作为一个功能更好,那就是将它们合并在一起,或者分成三个组成一个公共组件的组件,而剩下的两个组件功能。
common
/ \ ...\
sub.feature feature ... dashboard
/ \ / /
feature feature / /
\ \ / .../
------ app
如果您的dashboard
模块确实需要导入common
模块,则可以这样做,大多数语言都将每个{{1} }不会掩盖后来通过说common
而进行的相同导入。如果该语言不支持此功能,则必须考虑使用feature
/ dashboard
声明将其隔离。