Android设计模式
文章平均质量分 93
本专题从《Android设计模式-源码分析》一书中摘取了在Android开发中最常见的20余种设计模式,通过概念、例子、实战深入浅出地分析了这些设计模式的应用场合和优缺点,欢迎您提出批评建议。
vanpersie_9987
这个作者很懒,什么都没留下…
展开
-
Android设计模式-代理模式
介绍代理模式(Proxy Patter)也称委托模式,属于结构型设计模式。这是一个相当重要的设计模式,Android源码中随处可见。何为代理模式呢?比如每天吃饭时赶进度是常事,就叫公司的同时帮忙买饭,这就是一种代理;如果碰到辞职时老板不给发工资,还得委托个律师 帮你打官司,这也是代理。总之,即便在现实生活中,代理也是无处不在。定义为其他对象提供一种代理以控制这个对象的访问。使用场景当无法或者不想直接原创 2017-05-05 19:18:50 · 1251 阅读 · 0 评论 -
Android设计模式-迭代器模式
介绍迭代器模式(Iterator Pattern)又称游标模式(Cursor)模式,是行为型模式之一。迭代器模式源于对容器的访问,如Java中的List、Map、数组等,由于对容器的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,那么对于容器来说就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还要对外部提供遍历的接口方法,因为原创 2017-05-04 17:58:34 · 768 阅读 · 0 评论 -
Android设计模式-备忘录模式
介绍备忘录模式是一种行为模式,该模式用于保存对象的当前状态,并且可以在之后再次恢复到此状态,这有点像我们平常所说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。定义在不被破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可以将该对象恢复到原先保存的状态原创 2017-05-04 12:13:34 · 817 阅读 · 0 评论 -
Android设计模式-观察者模式
观察者模式是一个使用概率很高的模式,它最常用的地方时GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们的依赖变小、甚至毫无依赖。在Android开发中,UI具有易变性,但是业务逻辑变化不大,此时GUI系统就需要一套机制在应对这种情况,使得UI层与具体的业务逻辑解耦,观察者模式在此就可以派上用场。定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状原创 2017-05-02 17:34:48 · 545 阅读 · 0 评论 -
Android设计模式-责任链模式
介绍责任链模式(Iterator Pattern),是行为型设计模式之一。什么是“链”? 我们将多个首尾相连所构成的模型称为链。对于链式结构,每个节点都可以被拆开再连接,因此具有很好的灵活性。将这样一种结构应用于编程领域,将每个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首端出发,沿着链的路径依次传递给每一个对象,直至有对象处理这个请求为止,这样的模式称为责任链模式。在上代码原创 2017-04-28 11:51:50 · 395 阅读 · 0 评论 -
Android设计模式-状态模式
状态模式介绍状态模式中的行为由状态决定,不同的状态下有不同的行为。状态模式和策略模式的结构几乎完全一样,但它们的目的和本质完全不同。状态模式是平行的、不可替换的。用一句话表述,策略模式是彼此独立、可替换的。一句话描述就是,状态模式把对象的行为包装在不同状态的对象中,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象再其内部状态改变的时候,其行为也随之改变。状态模式定义当一个对象的内原创 2017-04-27 17:36:13 · 1084 阅读 · 0 评论 -
Android设计模式-策略模式
策略模式介绍考虑这样一种情况:实现某个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能。如,排序算法,可以使用插入排序、归并排序、冒泡排序等。针对这样的情况,一种常规方法是将多种算法写在一个类中。如,需要提供多种排序算法,可以将这些算法写到一个类中,每一个方法对应一个具体的方法;当然,也可以将这些排序算法封装到一个统一的方法中,通过if…else 或者case等条件判断原创 2017-04-27 14:14:00 · 373 阅读 · 0 评论 -
Android设计模式-抽象工厂模式
抽象工厂模式介绍抽象工厂模式(Abstract Factory Pattern),也是创建型设计模式之一。大家联想一下,在现实生活中的工厂肯定都是具体的,也就是说每个工厂都会产生某一种具体的产品,也就是每一个工厂都会产生某种具体的产品,那么抽象工厂意味着生产出来的产品是不确定的。那这岂不是很奇怪?抽象工厂模式起源于以前对不同操作系统的图形化解决方案,如,不同操作系统中的按钮和文本框控件其实现不同,展原创 2017-04-26 14:30:01 · 408 阅读 · 0 评论 -
Android设计模式-工厂方法模式
工厂方法模式介绍工厂方法模式(Factory Pattern),是创建型模式之一。它结构简单,应用广泛。下面看看它的定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。工厂方法模式的通用模式代码//抽象产品类public abstract class Prod原创 2017-04-25 17:59:00 · 928 阅读 · 0 评论 -
Android设计模式-Builder模式
Builder模式介绍Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户再不知道内部构建细节的情况下,更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。因为一个复杂的对象有很多大量组成的部分,如汽车,有车轮、方向盘、发动机,还有各种小零件等。如何将这些部件装配成一辆汽车,这个过程很复杂,对于这种情况,为了在构建过原创 2017-04-25 10:17:45 · 363 阅读 · 0 评论 -
Android设计模式-单例模式
单例模式介绍单例模式是应用最广的模式之一。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需一个全局对象,这样有利于协调系统的整体行为。如在一个应用中,应当只有一个ImageLoader实例,这个ImageLoader中又含有线程池、缓存系统、网络请求等,很消耗资源,所以,没有理由让它构造多个实例。这种不能自由构造对象的情况,就是单例模式的使用场景。单例模式定义确保某一个类原创 2017-04-21 14:48:01 · 488 阅读 · 0 评论