一行代码快速解耦Application逻辑,让Application更简洁好维护

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/23b9ba9b685d

转载请标明出处: https://www.jianshu.com/p/23b9ba9b685d 本文出自 AWeiLoveAndroid的博客


【前言】很多人在开发中使用了大量的第三方的库,或者自己封装的库,很多库都是需要在Application里面配置的,如果配置过多,导致Application过于臃肿,代码不好维护,可读性比较差。下面是我写的一个简单的库,帮你快速解耦Application,让你的Application显得更简洁,更好维护。

使用场景: Application里面配置的过多的时候,可以使用这个库。

注意事项: 1.目前只适用于普通开发,组件化插件化没做兼容处理。 2.线程切换也没做考虑,因为一般的第三方库的使用基本都是在主线程,所以没做线程切换,后续有时间会慢慢完善的。 3.进程有关的也没做处理,因为目前用到的三方库没有这方面的需求,所以没考虑这一块。

1.首先来一张调用的图,如下,是不是很简单:

调用方式

2.下面看一下ApplicationHelper这个类做了什么事情:

这是一个单例的类,调用init方法传入上下文,然后调用init开头的方法,比如initNetWork()就表示初始化网络操作的一些逻辑。

ApplicationHelper这个类简单介绍

3.ApplicationHelper实现了IInitMethods接口,这个接口主要用来规范有哪些逻辑要处理,它是初始化的所有方法的顶层接口,用于规范有哪些逻辑需要做,比如网络库,图片库等。

IInitMethods接口

4.ApplicationHelper类调用了InitWrapperImpl这个类,通过InitWrapperImpl.getInstance()返回一个实例对象,然后调用了init(mContext)方法,传入一个上下文,最后调用execute(XX,XX,XX)执行库的初始化的具体操作。

InitWrapperImpl这个类的一个简单说明

5.InitWrapperImpl这个类里面用到了常量类Contants,主要保存type类型,和库的名字的信息。

常量类Contants


6.InitWrapperImpl这个类它是实现了IInitWrapper接口,规范了具体的执行过程公用的一些接口方法。

IInitWrapper接口


到此,这个库基本就介绍完了,是不是很简单?想要源码的可以下面的链接获取。

ApplicationHelper这个库,轻松实现Application的隔离型框架


在这里也欢迎各位多提意见。感谢大家的支持。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客猴

详解 python3 urllib

本文是爬虫系列文章的第一篇,主要讲解 Python 3 中的 urllib 库的用法。urllib 是 Python 标准库中用于网络请求的库。该库有四个模块,...

1111
来自专栏网络

Nginx 教程#1:基本概念

协作翻译 原文:Nginx Tutorial #1: Basic Concepts 链接:https://www.netguru.co/codestories/...

2388
来自专栏Python中文社区

Django博客教程(五):处理 http 请求完全解读

專 欄 ❈追梦人物,Python中文社区专栏作者。电子科技大学计算机学院研究生,从事大数据分析研究方向。主要使用 Python 语言进行相关数据的分析,熟练使...

31110
来自专栏架构说

河狸家:Redis 源码的深度剖析

大家好!我叫陈科,目前就职于河狸家,主要做架构方面的工作,今天和大家分享的是 Redis 的源码分析。 Redis 这个东西很简单,懂 C 语言的同学花一个下...

3617
来自专栏Python

python并发编程之多进程理论部分

一 并发与并行   无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cp...

2195
来自专栏coder修行路

关于go语言的测试相关内容笔记

其实之前对于测试自己一直比较弱,不管是python的还是go的,关于测试这块并没有非常注重,这次就好好整理一下关于go的测试

851
来自专栏喵了个咪的博客空间

基于PhalApi的Smarty拓展

基于PhalApi的Smarty拓展 ? 前言 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 用过的童鞋都知道Ph...

3095
来自专栏wblearn

redis应用的总结

对最近项目应用redis做一个简单总结,项目中的营业网点资料和客户资料等模块以后的资料量势必会随着业务的扩张会越来越大,可能会造成系统性能瓶颈及用户体验不佳等,...

851
来自专栏Python爬虫实战

Python爬虫利器:Requests库的使用

写了一些爬虫,从urllib库转到requests库,到目前为止,个人感觉requests库是最简单易用的HTTP库,以下这段话来自requests官网:

991
来自专栏北京马哥教育

一线Python运维开发带你秒懂Flask框架

相信曾经纠结过这个问题:怎样才能彻底掌握flask? Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkz...

6396

扫码关注云+社区

领取腾讯云代金券