摘要: 代理模式 一、简介 代理模式为其他对象提供一种代理以控制对这个对象的访问。 二、使用场景 当无法或不想直接访问某个对象或者访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口。 三、简单实现 这里以代理上网为例来说明代理模式,我们有时 阅读全文
posted @ 2020-10-14 18:45 Robin132929 阅读(106) 评论(0) 推荐(0) 编辑
摘要: Application详解 一、简介 简介:Base class for maintaining global application state.The Application class, or your subclass of the Application class, is instant 阅读全文
posted @ 2020-10-13 11:55 Robin132929 阅读(813) 评论(0) 推荐(0) 编辑
摘要: Intent详解 一、什么是Intent 贴一个官方解释: An intent is an abstract description of an operation to be performed. It can be used with Context#startActivity(Intent)t 阅读全文
posted @ 2020-10-13 10:46 Robin132929 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 中介者模式 一、简介 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散耦合。当某些对象间的作用发生改变时不会立即影像其他的一些对象之间的作用。保证这些作用可以批次独立变化。中介者模式将多对多的相互做用转化为一对多的相互作用。中介者模式将对象的香味和协作抽象化 阅读全文
posted @ 2020-10-12 19:45 Robin132929 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式 一、简介 对于一个算法所需的关键步骤确定了顺序后,各个步骤的具体实现是未知的,如果遇到这类问题那么就可以采用模板方法模式解决。 定义:定义一个操作中的算法的框架而将一些步骤延迟到子类中,使子类可以不改变一个算法的结构即可冲定义该算法的某些特定步骤。 二、使用场景 多个子类公有的方法并且 阅读全文
posted @ 2020-10-12 19:43 Robin132929 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式 一、简介 迭代器模式主要用于对容器的访问,比如Java中的List、Map等。我们知道对容器的访问必然会涉及遍历算法,如果我们将遍历的方法封装到容器中对于容器来说就承担了过多的功能,此时容器类不仅要维护自身内部数据元素还要对外提供遍历接口,而且遍历状态下的存储问题导致不能对同一容器同时进 阅读全文
posted @ 2020-10-12 19:39 Robin132929 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式 一、简介 备忘录模式用于保存对象当前状态并且在之后可以再次恢复到此状态。备忘录模式的实现方式需要保证被保存的对象状态不能被对象从外部访问,目的是保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样 阅读全文
posted @ 2020-10-12 19:37 Robin132929 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 一、简介 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。该模式一个重要作用就是解耦,将被观察者 阅读全文
posted @ 2020-10-12 19:36 Robin132929 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 本地广播( LocalBroadcastManager)源码解析 一、什么是LocalBroadcastManager LocalBroadcastManager是注册和发送本地广播的helper。本地广播与全局广播有如下优势: 广播携带的数据不会离开app,所以无需担心数据泄露。 不允许其他app 阅读全文
posted @ 2020-10-12 19:29 Robin132929 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 发送广播(sendBroadcast)的过程源码分析 一、简介 这篇文章我们来分析sendBroadcast的过程。 二、源码分析 一般我们通过以下代码来发送一个广播 Intent intent = new Intent(XXX_ACTION); sendBroadcast(intent); sen 阅读全文
posted @ 2020-10-12 19:25 Robin132929 阅读(838) 评论(0) 推荐(0) 编辑