Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

LucasDevelop/NewsSample

Repository files navigation

NewsSample

目的:学习mvp+dagger2+retrofit+rxjava开发模式

效果预览

为什么要使用MVP

在Android开发中,Activity并不是一个标准的MVC模式中的Controller,它的首要职责是加载应用的布局和初始化用户界面,并接受并处理来自用户的操作请求,进而作出响应。随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,以致变得庞大臃肿。当我们将其中复杂的逻辑处理移至另外的一个类(Presneter)中时,Activity其实就是MVP模式中View,它负责UI元素的初始化,建立UI元素与Presenter的关联(Listener之类),同时自己也会处理一些简单 的逻辑(复杂的逻辑交由Presenter处理).

dagger2是什么?有什么优势?

Dagger2是Dagger的升级版,是一个依赖注入框架,现在由Google接手维护。 这里有个关键字依赖注入,因此我们得先知道什么是依赖注入,才能更好的理解Dagger2。依赖注入是面向对象编程的一种设计模式,其目的是为了降低程序耦合,这个耦合就是类之间的依赖引起的。在mvp中,最常见的一种依赖关系,就是Activity持有presenter的引用,并在Activity中实例化这个presenter,即Activity依赖presenter,presenter又需要依赖View接口,从而更新UI。 主要的注解:

  • @Provides: 用来修饰方法,方法的返回类型就是所提供的依赖类型,可以简单的把方法的返回值理解为我们通常要new出来的对象.
  • @Provides方法都会用provide作为前缀
  • @Module: 所有的@Provides方法都必须放到一个Moudle中,一个Moudle就是使用@Moudle修饰的类,可以简单的理解为一个持有各种对象的仓库.用来给@Component组件提供实例化的对象.
  • Android中有三种Module:ApplicationModule,ActivityModule,UserModule,分别提供整个应用级别的(只生成一个该组件的实例),Activity级别的,用户级别的Module。
  • @Module类都用Module作为后缀
  • @Inject: 通常在需要依赖的地方使用这个注解,简单的理解为声明一个对象
  • @Component 它是@Inject和@Module的桥梁,它的主要作用就是连接这两个部分.
  • 我们必须用@Component注解一个接口,为该注解传入Module类,或者添加其依赖的组件
  • @Component注解的接口或抽象类以Component为后缀
  • @Component的实现类
  • @Component注解的接口或抽象类,Dagger将会为该接口或者抽象类生成一个实现,这个实现的命名是在接口或抽象类前面加上Dagger,如MyComponent生成的实现是DaggerMyComponent

retrofit是什么?

Retrofit是Square开发的一个Android和Java的REST客户端库。这个库非常简单并且具有很多特性,相比其他的网络库,更容易让初学者快速掌握。它可以处理GET、POST、PUT、DELETE...等请求,还可以使用picasso加载图片。 请求方法:@GET / @POST / @PUT / @DELETE / @HEAD(具体使用请参考:http://blog.csdn.net/wy819/article/details/51353102)

什么是RXjava

RxJava 是一个响应式编程框架,采用观察者设计模式。 RxJava 是一个开源项目,地址:https://github.com/ReactiveX/RxJava 还有一个RxAndroid,用于 Android 开发,添加了 Android 用的接口。地址:https://github.com/ReactiveX/RxAndroid

About

练习mvp+dagger2+retrofit+rxjava开发模式

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /