Android应用构架

Android 应用构架

我们每一个安卓开发者都很头疼,现在的安卓需求越来越难了,整体代码莲藕性不好。

我们都在想用什么来架构一个应用,从而保证app的灵活性和需求的改变性,我们都知道当程序中代码越少bug就会越少,我们的目的就是以最少的代码来开发

最有效的app。

首先,我们先要想想每一个app必须有的东西,不变的东西是什么?把它封装起来(以不变应千变),我们都知道开发一个app基本都是让view来展示我们

的数据,所以我就把一个app通用构架分三类:

外层包:UI、存储、网络等

中间层包:Presenter、Converter

内层包:Interactor、Model、Repository、Executor

外层

正如之前所提到的,该层是框架的具体细节所在。

UI——这是所有Activity、Fragment、适配模块和其他与用户接口相关的Android代码存在的地方。

存储——Interactor访问和存储数据所需要使用的接口代码。例如,它包括了ContentProvider或者DBFlow等ORM。

网络——包括了Retrofit等。

中间层

负责将实现细节和业务逻辑连接起来的粘合层。

Presenter——Presenter负责处理来自UI的事件(如用户点击等)和内层模块(如Interaactor等)的回调。

Converter——Converter对象负责内层模型与外层模块的相互转换工作。

内层

该层包含了绝大部分高级代码。其中所有的类都是POJO。该层中的类和对象对于Android应用相关的东西一无所知,因此可以被轻易移植到任何运行JVM的机器中。

Interactor——这就是包含实际的业务逻辑代码的类。他们在后台运行,并通过回调函数将事件报告给上层。在一些项目中,他们也被称作用例。通常情况下,项目中可能包含很多小的Interactor类,用来分别解决特定的问题。这符合了单一职责原则,也比较容易对类进行理解。

模型——这些就是在业务逻辑中进行处理的业务模型。

Repository——该包只包含了数据库或者其他外层实现的接口。Interactor使用这些接口来访问和存储数据。这就是所谓的repository模式(https://msdn.microsoft.com/en-us/library/ff649690.aspx)。

Executor——该包涵盖了使得Interactor在后台运行所需要的代码。一般情况下,用户不需要修改该包。

我们在以后的开发中多注意些,多用些java的面向对象的三大特征,多想想,希望以后开发更加有效率,优美的app。

你可能感兴趣的:(Android)