【发布时间】:2015-12-23 18:59:47
【问题描述】:
我正在构建一个用于托管应用的 SDK。该 SDK 将被集成到拥有大量用户的应用程序中。
我们开始使用分层架构构建它 - UI、与模型交互的管理器和网络层。一共三层。 UI 正在通过回调获取更新。
旁注:我曾参与构建一些拥有大量用户的 Android 应用程序的团队,在所有这些应用程序中,我们都使用相同的分层架构。 这些应用程序拥有活跃的用户,并且到目前为止反馈良好。
我们有我们的测试版,似乎一切都按预期工作。
一周前,我们的一位团队成员来说他认为我们需要改变 我们的架构以事件驱动为基础。我们将在 SDK 中拥有处理所有侦听器的静态事件句柄,并且调度将从其他组件触发。
我认为这有点冒险,我认为在多线程环境中以这种方式处理具有大量依赖项和服务的大型 SDK 会很困难。 此外,因为我们正在构建一个 SDK,我们希望将我们的主类与我们的宿主应用程序隔离开来,我认为这几乎是不可能的。
我的问题:
您认为正确的做法是什么,分层架构是否好,我们需要坚持下去,还是基于事件的架构是首选?
对于需要尽可能高效的 SDK,您认为这是一个合适的解决方案吗?
您认为这对于多线程环境来说是一个好的解决方案吗?
感谢任何反馈,谢谢。
我读过的一些文章:
architecting-android-the-clean-way
【问题讨论】:
-
您的 SDK 和托管应用程序是在 Android 设备上执行,还是在为大量 Android 设备提供服务的服务器上执行?
-
@WarrenDew SDK 是通过托管应用程序使用的某种聊天应用程序。因此,对于您的问题,与我们的服务器和其他客户端问题有关。
标签: java android multithreading architecture