在 Android 编程中,几乎所有地方都传递的最常用的参数是Context. 我们知道它的用途。但是我们不知道为什么我们应该出于这些目的传递它,以及为什么不从全局静态位置访问它。
根据 Uncle Bob 的 Clean Code,获得更简洁代码的一种方法是减少参数,使它们对您正在执行的任务更有意义。基于此,并基于 DRYing 参数,我们决定试一试,并创建一个功能齐全的应用程序,该应用程序具有活动、片段、前台和后台服务、通知、媒体等,并使用许多设备 API,如相机、 GPS等是一个真实世界的应用程序,并且在应用程序创建时只有一个静态上下文初始化。
因此,在应用程序创建中我们创建了一个public static Context context变量,并使用override中getApplicationContext()的方法对其进行了初始化。onCreate()
然后,我们没有在整个代码中传递诸如this、等上下文,而是简单地使用了 ,并且我们没有将它作为构造函数参数传递给我们的适配器和其他实用程序函数。getContextApp.context
现在,在冒险进行了这一大胆的运动之后,我们认为我们的应用程序没有任何问题。一切正常,电池消耗没有改变,至少它对我们来说是不可测量的,所以它非常低。内存消耗没有改变,我们无法衡量它。应用程序性能和速度没有明显改变。
所以我们有一个非常大的问题,我们的方法有什么缺点?为什么 Android 开发人员不只是公开一个可以初始化的全局上下文并从整个生态系统中删除所有上下文参数,而是只在需要时访问该全局变量?