如何重构程序启动代码?

时间:2013-02-22 02:19:28

标签: java android refactoring

我有一个类(Android Activity)来处理我的应用程序的启动。该应用程序有一些非常复杂的启动规则。现在它看起来像一堆意大利面,我正在寻找重构它的策略。

老实说,这样一团糟,我遇到了将其黑客攻击以提供伪代码的问题。一般来说,有些启动规则基本上都是用逻辑编写的:

步骤:

  1. 检查上次退出时的错误并在必要时刷新本地缓存
  2. 下载设置文件
  3. 解析设置并将设置保存为本地原生格式
  4. 使用设置中的值,做一堆'家务“
  5. 使用设置中的值,下载核心数据组件A
  6. 解析组件A并加载本地缓存
  7. 在此逻辑期间,它还会更新用户界面。所有这些都是在一个锯齿形的单一整体类中处理的。它很长,它有很多依赖,逻辑非常难以遵循,它似乎触及了应用程序的太多部分。

    是否有可用于破解程序启动代码的策略或框架?

2 个答案:

答案 0 :(得分:2)

嗯。根据您的步骤,我看到了各种不同的“问题”:

  1. 阅读和保存设置。
  2. 从服务器下载设置和组件(不确定“组件”在这里)。
  3. 阅读和实例化组件。
  4. 刷新并读取缓存。
  5. 内务管理(不确定这一切是什么意思)。
  6. UI更新(不确定这需要什么)。
  7. 您可以尝试将代码拆分为上述行中的各种对象,例如:

    1. SettingsReader
    2. ServerCommunicationManager(?)
    3. ComponentReader
    4. 高速缓存
    5. 不确定5和6,因为我没有太多可以继续下去。

      关于框架,嗯,有各种各样的,如前面提到的Roboguice,可以帮助依赖注入。这些可能派上用场,或者手工操作可能更容易。我认为在考虑依赖注入之前,您需要解开代码。所有依赖注入框架都是为你初始化你的对象 - 你必须首先确保对象有意义。

答案 1 :(得分:0)

在没有任何细节的情况下,我能想到的唯一建议就是将结构良好的功能背后的各个步骤分组,这些功能只做一件事,一件事。

您的6个步骤看起来是您的init函数应具有的6个函数的良好开端。如果#2是同步的(我怀疑它),我会将#2,#3合并到getSettings函数中。