美文网首页
Android Context与装饰器模式

Android Context与装饰器模式

作者: 丸子不爱吃丸子 | 来源:发表于2019-10-17 14:27 被阅读0次

Context

从开始写Android程序的那一天也就我们就知道了有context的存在,本猿当时一直好奇context是什么东西,在后来的学习中逐渐明白了context的重要性,但一直没有写下来好好总结一下。

从最初的上下文我理所当然认为上下文就是为了让程序员调用方便,快速编程,后来思索为什么要搞一个context,为什么不搞其他的东西来代替context为什么要把context设计出来,保持着存在即合理的态度我们去追寻google当时的设计思想。

当我们终有一天搞清除了Activity,Service,Application都是context的时候就好奇为什么google要这样设计。

当在网络博客里看了context类图,我们就好奇这个设计模式

装饰器模式:
装饰器模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰器模式比生成子类更为灵活;它允许向一个现有的对象添加新的功能,同时又不改变其结构

看一下装饰器模式的类图


装饰器模式.jpg

继续看一下Context的类图


Context.jpg

关于装饰器模式

装饰器模式出现还是为了解决过多的继承,举个栗子:
Google现在有Android系统,然后衍生出来很多 如: Android1, Android2, Android3.。。。
类图如下,我们发现这样的类很难管理,当android子类型越来越多,目前使用集成的方法很难适配接下来的工作了,因为每个衍生Android都有自己的特色


android.jpg

由于Android1,2,3是逐渐递增的,所有走一个分支
Android thin 与 Android auto是Android lite下的一个子类,又各自又特色
于是我们改造一下


android2.jpg

这个是利用继承与组合达到的一个最优解。

其实这里没有多么复杂的设计也没有什么高深的技术,就是利用继承与组合完成了。

相关文章

  • Android Context与装饰器模式

    Context 从开始写Android程序的那一天也就我们就知道了有context的存在,本猿当时一直好奇cont...

  • 让你再也忘不了IO相关知识-Java IO图文详解

    1 装饰模式 Java中IO使用的是装饰模式,装饰模式在Android中很常见,比如系统的Context。 装饰模...

  • Context

    Context 表示上下文。Android中的 Context 使用了装饰模式。 image.png Androi...

  • 聊聊Context

    在上篇文章《设计模式之装饰模式》中我们谈到了装饰模式,在 Android 中关于 Context 的设计就用到了装...

  • 【Android设计模式】从Context看懂装饰器模式

    前言 平时写代码的时候可能为了完成某一个任务而只是应付性地编码,然后写完理直气壮地来一句"又不是不能用!",但如果...

  • Context中的装饰器模式

    对于Android开发者来说,Context再熟悉不过,通过Context,我们可以启动一个Activity,启动...

  • Context中的装饰器模式

    对于Android开发者来说,Context再熟悉不过,通过Context,我们可以启动一个Activity,启动...

  • 2020-04-10-Android源码中的设计模式

    装饰模式 以我们最熟悉的Context为例,它就是一种装饰模式。 我是这样理解的,Context是一个抽象的人,没...

  • 设计模式之装饰器模式

    在阎宏博士的《JAVA与模式》的书中,对装饰器模式的描述如下:装饰模式又名包装(Wrapper)模式。装饰模式以对...

  • Android的Context的装饰者模式

    Context类:这是一个由Android系统提供其实现的抽象类,它是提供应用环境信息的接口。通过它可以访问到应用...

网友评论

      本文标题:Android Context与装饰器模式

      本文链接:https://www.haomeiwen.com/subject/zsvqmctx.html