加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Android 应用架构—— 那些由于年青犯的错

发布时间:2019-07-20 21:06:47 所属栏目:业界 来源:非非白
导读:本系列文章旨在概述我们搭建 Android 应用措施架构时也许会遇到的题目。我意识到,无论实现 Android app 架构的进程何等坚苦,功效证明这些必然是完成每一个卓越的应用的基

你应该尽也许地对你的 app 举办单位测试,而且你的架构应该应承你这样做。假如你不能测试全部对象,你至少应该包围你的营业逻辑。与真实天下疏散可以很利便地做到这点。假如你的营业逻辑清楚地和 app 别的部门断绝,是很轻易测试的。

Android 应用架构—— 那些由于年青犯的错

第一次迭代 —— 天主 Activity

  1. public final class UsersActivity extends ListActivity { 
  2.  
  3. @Override 
  4. protected void onCreate(Bundle savedInstanceState) { 
  5. super.onCreate(savedInstanceState); 
  6.  //... 
  7.  new ListUsers().execute(); 
  8.  
  9. private final class ListUsers extends AsyncTask<Void, Void, Void> { 
  10.  
  11. @Override 
  12. protected Void doInBackground(Void... voids) { 
  13.  // final SQLiteOpenHelper sqLiteOpenHelper = ... 
  14.  // JsonObjectRequest jsObjRequest = new JsonObjectRequest 
  15.  // (Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 
  16.  // MySingleton.getInstance(this).addToRequestQueue(jsObjRequest); 
  17.  // showData(user); 
  18.  return null; 
  19.  } 
  20.  } 

你也许在 “上古期间” 看到过这样的代码。假如没有,声名你很年青。可是这一段代码那边有题目呢?谜底是那边都有题目。

Android 应用架构—— 那些由于年青犯的错

我们有一个 Activity 操纵数据库,会见收集,理会数据,切换线程以及渲染数据。全部的好处相干者都在看这一个类,没有存眷点是疏散的,它是不行测试的,营业逻辑和 Android 的对象稠浊在一路。

Android 应用架构—— 那些由于年青犯的错

译者注:寄望上图左边赤色的标签。每个标签别离对应一条黄金法例,赤色暗示不满意。SRP 是指单一职责原则,即疏散存眷点。

第二次迭代 —— MVP

第一种要领显然是不能事变的。我们实行过的第一件工作是 MVP,可能说 model-view-presenter。每小我私人都认识 MVP。它是最受接待的架构模式之一。看起来像这样:

Android 应用架构—— 那些由于年青犯的错

这里,我们疏散了现实上是 Android Fragment 的 View,我们拥有代表我们营业的(规模)模子,最后我们有和谐统统的 Presenter。这必定是更好的。存眷点有了一些疏散,好处相干者不再那么狐疑,你也可以写一些单位测试了。尽量云云,因为 Presenter 直接操纵数据库和全部统统,我们如故和真实天下稠浊在一路。Presenter 成了天主工具。它处理赏罚模子,将数据发送到视图,它拥有营业逻辑(营业逻辑是那些齿轮 :)),它会见数据库和收集,获取传感器数据,等等。以是,是好了些,但可以更好。

Android 应用架构—— 那些由于年青犯的错

第三次迭代 —— MVP + managers

当当局不知道做什么的时辰它会做什么?它创立一个署理机构。当开拓不知道做什么的时辰他们会做什么?他们引入一些 Manager。你不必然把它定名为 “*Manager” 。这些类有许多名字:uitls、helpers、fooBarBuzz-ator、等等。因此我们引入 Manager。

Android 应用架构—— 那些由于年青犯的错

说真话,这乃至有点凑效。营业逻辑包括在 Manager 中。好处相干者知道往哪看,存眷点必然水平是疏散的但可以做得更好,你可以编写更多的测试,但你依然直打仗摸 Android ,以是你必需编写 Android 测试用例,并预先填写数据库来测试营业逻辑,一个字:不爽。

是的,Manager 有酿成巨兽的倾向,很快就变得难以维护。你也许争论说它不会变得更伟大,你可以通过更简朴的架构来更快地提供代码,但通过这种要领依然会有许多 BUG,可维护性也会遭到粉碎。

Android 应用架构—— 那些由于年青犯的错

译者注:寄望 Manager this 和 Manager that 之间的标签

总结

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读