首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何规划我的android应用程序的重构,以获得更好的架构?

我如何规划我的android应用程序的重构,以获得更好的架构?
EN

Software Engineering用户
提问于 2020-07-14 11:36:19
回答 1查看 290关注 0票数 0

我的应用程序的当前结构如下:

  • 一个活动和多个片段(约25个片段)
  • 一个巨大的整体存储库
  • 一个巨大的整体视图模型
  • 数据库正在使用,但是有一个巨大的单块处理程序类。
  • 导航组件,为整个应用程序提供一个导航图

我一直在学习,现在我意识到我的架构很差。我想要实现适当的MVVM和模块化的项目。我的最终目标是拥有一个更易于维护和可测试的体系结构。我的目标是:

  • 每个片段的单独视图模型
  • 每个实体(或大致每个数据访问对象)的单独存储库
  • 为每个片段单独设置数据绑定处理程序
  • 整个项目分成不同的库模块,每个模块都是特定于一个特性或核心功能的。

为了达到上述结果,下面的方案是否合理?

  1. 为每个片段创建单独的视图模型
  2. 为每个实体创建单独的存储库
  3. 为每个片段创建单独的处理程序类
  4. 将整个项目划分为不同的模块

我在研究过程中遇到的一些来源是:

请你告诉我,上面的粗略计划是否是一个好的计划,是否有任何我应该注意的陷阱?

EN

回答 1

Software Engineering用户

发布于 2020-07-15 01:19:56

大致来说,是的,但我很难称之为一项计划。这是一幅你想看的风景的画。

该计划将是你将使用的具体步骤/策略,从你已经在工作的巨石到达那里。

推拉

也许最简单的方法就是选择一个函数。这一职能可能是一个混乱的关注,应该存在于不同的层次。例如,高层的业务关注点与如何从存储库获取数据的细节混在一起。

这就是推和拉进来的地方。目标是将这些关注点分离开来,这样一个函数在整个抽象过程中都处于相同的抽象级别。完美是很难实现的,但你可能会在你所拥有的基础上有所改进。

将细节向下推倒、抽象起来的好处是,它将使每个函数更易于阅读。但缺点是,您将有更多的功能。

Sprout和Split

现在,我们对代码所做的事情有了更清晰的了解,我们可以开始将这些功能组织成特定的服务。这些功能都是关于显示、数据存储、与业务相关的,等等。

您可以将这些相关关注点扩展到隐藏为较大对象的实现细节的对象中。如果它们是真正通用的,并且可以在其他地方使用,那么我们将它们分开,使它们成为真正的协作者。

重构

现在你有了一个如何从你拥有的东西走向更好的东西的计划。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/412725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档