
Android设计模式
一边读《Android源码设计模式解析与实战》一边综合笔记。
有一点点个人的小理解加工。
喵了个呜s
这个作者很懒,什么都没留下…
展开
-
Android设计模式-总结+索引
通过《Android源码设计模式解析与实战》,对23种设计模式总算有了个初步的了解。书中对设计模式的介绍并不深奥,也没有很深究这些设计模式,但是对于之前没看过设计模式的我来说,让我对每一种设计模式都有了一种概念。设计模式这种东西,我觉得有个概念,然后在开发中可能就会在遇到某些情况时想到一些设计模式。至于深入研究设计模式,应该是要有一定的使用基础的。笔记中只对设计模式的基本概念和结构进行了一下了解,有原创 2017-04-11 11:49:51 · 1998 阅读 · 0 评论 -
Android设计模式(二十三)-桥接模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/70048778桥接模式也叫桥梁模式,和生活中一样,桥梁就是用来连接河道两岸的主要建筑。桥接模式也是起着连接两边的作用,连接的两边就是抽象部分和实现部分,这就需要在程序设计的时候划分好抽象部分和实现部分了。定义将抽象部分与实现部分分离,使他们都可以独立地进行变化。使用...原创 2017-04-11 10:53:50 · 1434 阅读 · 0 评论 -
Android设计模式(二十二)-外观模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/70040325外观模式猛一听有点蒙逼,但是在开发中我们应该都用过,只是没这个概念罢了。比如在开发时通常会把图片加载框架和网络框架进行封装,封装到最后只暴露出来一个最上级的类供外部调用,外部调用这一个类提供的方法,然后这个类内部具体调用了什么,用的什么逻辑等等外部都不用管。这样也方便...原创 2017-04-11 00:01:31 · 1955 阅读 · 0 评论 -
Android设计模式(二十一)-享元模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69952037享元模式是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。享元模式也是为了减少内存的使用,避免出现大量重复的创建销毁对象的场景。享元模式用在一批相同或相似的对象上,这些对象有可以共享的内部状态和各自不同的外部状态。享元模式中会有一...原创 2017-04-10 17:24:37 · 1889 阅读 · 0 评论 -
Android设计模式(十九)-适配器模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69586926适配器模式是咋Android中使用非常广泛的一种设计模式,总到处可见的Adapter就可以看出来。适配器模式类似于电源适配器的设计思想,将两个不兼容的东西通过适配兼容到一起。在实际开发中,经常会遇见两个没有关系的类型之间的交互。那么有下面两个方式:修改各自类的接...原创 2017-04-07 18:03:28 · 3187 阅读 · 0 评论 -
Android设计模式(二十)-装饰模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69944273装饰模式也叫做包装模式,是结构型设计模式之一。目的是为了给一个类或对象增加行为。可以是继承的一种替代。装饰模式也很好理解,比如一个人,给他装上火箭就能上天了,装上潜水服就能下海了,但本身还是个人,人没有任何变化。定义动态地给一个对象添加一些额外的职责,就增...原创 2017-04-10 11:07:54 · 1683 阅读 · 1 评论 -
Android设计模式(十七)-代理模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69525446代理模式也叫委托模式,是结构型设计模式。代理就是让别人帮你做事,比如帮你带饭,请律师打官司什么的。喵了个呜的小宇宙定义为其他对象提供一种代理以控制对这个对象的访问。使用场景当一个对象不能或者不想直接访问另一个对象时,可以通过一个代理对象来间接...原创 2017-04-07 11:51:42 · 1082 阅读 · 0 评论 -
Android设计模式(十八)-组合模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69568341组合模式,也称作部分整体模式。是结构型设计模式之一。组合模式画成图就是数据结构中的树结构,有一个根节点,然后有很多分支。将最顶部的根节点叫做根结构件,将有分支的节点叫做枝干构件,将没有分支的末端节点叫做叶子构件.定义将对象组合成树形结构以表示“部分-整体”的层...原创 2017-04-07 16:02:34 · 3868 阅读 · 1 评论 -
Android设计模式(十一)-观察者模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69218968观察者模式是一种使用频率非常高的设计模式,最常用的地方就是订阅-发布系统。这个模式的重要作用就是将观察者和被观察者解耦,使他们之间的依赖更小甚至没有。定义定义对象一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于他的对象都会得到通知并被自动更新。...原创 2017-04-05 00:26:48 · 4773 阅读 · 1 评论 -
Android设计模式(一)-单例模式
最近在看《Android源码设计模式解析与实战》这本书,发现里面还有对源码的一些分析,之前也没好好看过设计模式,就来做个笔记,跟着看一下。简书地址定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。使用场景需要确保一个类只有一个实例的场景,避免产生多个对象小号过多的资源,或者是这个类只应该有一个实例。比如创建一个对象要消耗的资源过多,或者要访问IO和数...原创 2017-03-26 01:31:52 · 1391 阅读 · 0 评论 -
Android设计模式-面向对象六大原则
概述通过Volley学习面向对象的六大原则最终就是 抽象 单一直则 最小化单一职责原则(Single Responsibility Principle)简述简称SPR 一个类只做一件事.并不是说一个类只有一个函数,而是说这个类中的所有函数必须是高度相关的.高内聚.优点类的复杂度降低,实现什么职责有明确的定义可读性提高可维护性提高变更引起的风险降低.一个接口的修改只影响相应的实现类,对其他的接原创 2017-03-24 17:20:39 · 1606 阅读 · 0 评论 -
Android设计模式(一)续:LayoutInflater
LayoutInflat工作原创 2017-03-26 01:34:58 · 821 阅读 · 0 评论 -
Android设计模式(二)- Builder模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/66477142Builder模式是一步一步创建复杂对象的创建型模式。允许用户在不知道内部构建细节的情况下,可以更精细的控制构造流程。该模式是为了将构建过程和表示分开,使构建过程和部件都可以自由扩展,两者的耦合度也降到最低。简书地址定义将一个复杂对象的构建与它的表示分离,...原创 2017-03-26 17:12:25 · 1121 阅读 · 3 评论 -
Android设计模式(二)- 续:WindowManager
通过前面的分析可以知道,Android系统中,所有的界面内容显示都是通过Window来实现的,包括Activity,Dialog,Toast等。 先初步分析一下Window,WindowManager,WindowManagerService的关系。获取WindowManager从Android设计模式(一)-单例模式中后面的内容可以看到,系统在启动的时候就注册了许多服务。其中就有这样的代码:pa原创 2017-03-26 22:31:31 · 1420 阅读 · 0 评论 -
Android设计模式(三)- 原型模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/66972873原型模式也是一种创建型设计模式,从名字就能理解,这个模式应该有一个样板实例,也就是原型,然后用户从这个原型中复制出一个内部属性一致的实例,也就是克隆。 有时,一个对象的构造比较复杂并且比较耗时时,直接从已有对象复制一个实例比重新构造出来更高效。简书地址定义...原创 2017-03-27 16:15:20 · 1582 阅读 · 0 评论 -
Android设计模式(四)- 工厂方法模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/67110082工厂方法模式也是创建型模式。 工厂模式根据抽象程度可以分为三种:简单工厂模式,工厂方法模式,抽象工厂模式。简书地址定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。使用场景任何需要生成复杂对象的地方,都可以使用工厂方法模式。用new就...原创 2017-03-27 23:55:54 · 5576 阅读 · 0 评论 -
Android设计模式(五)-抽象工厂模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/68063060在上一篇的工厂模式中中,工厂生产出来的产品都是实现同一个接口或继承同一个抽象类的。而有时候工厂可以生产出不是同一个接口或抽象类的产品,也就是说生产出来的产品是不确定的,就是抽象工厂了。 简书地址定义为创建一组相关或相互依赖的对象提供一个接口,而无需指定他们的...原创 2017-03-29 12:16:08 · 1451 阅读 · 0 评论 -
Android设计模式(四)续:Activity的onCreate是怎么调用的
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/68288085这里分析的是app第一次启动时的第一个Activity的onCreate()方法的启动流程。图先贴一下大致的流程图吧,不会画,很丑 ActivityThread.main()APP的启动入口应该都知道是ActivityThread的main方法了,所...原创 2017-03-30 00:40:47 · 2385 阅读 · 0 评论 -
Android设计模式(六)-策略模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/68623134在开发中几女航遇见下面这种情况:实现同一个功能有很多不停的算法和策略,然后根据实际情况来选择不同的算法和策略。一般的做法是在一个类里写不同的方法,然后根据实际情况用一连串的if-else或switch来选择对应的方法。这种方法多了后,这个类会变得臃肿,难以修改。所...原创 2017-03-30 23:39:21 · 3873 阅读 · 2 评论 -
Android设计模式(七)-状态模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/68927938状态模式看起来和策略模式很像,但是是两个不一样的设计模式。状态模式是一个类根据内部的状态动态的选择行为。策略模式一般用于算法,通过设置不同的策略类来执行不同的算法。状态模式的一个特点就是行为改变状态,而状态又导致行为的变化。策略模式是可以在运行时外部直接策略的,状态模式一...原创 2017-03-31 18:03:04 · 1505 阅读 · 0 评论 -
Android设计模式(八)-责任链模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/68938532责任链模式是一个行为模式。责任链就是从一个起点发起请求,然后沿着任务链依次传递给每一个节点上的对象,直到有一个节点处理这个请求为止。听着是不是跟Android的事件分发机制很像。简书地址定义使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关...原创 2017-03-31 22:59:01 · 1429 阅读 · 0 评论 -
Android设计模式(九)-解释器模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/68944729解释器模式是一种行为模式,实际开发中用的很少,提供了一种解释语言的语法或表达式的方式。定义了一个表达式接口,通过接口解释一个特定的上下文。类似于json解析器按一定的语法解析json的。定义给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释...原创 2017-04-01 15:08:52 · 896 阅读 · 0 评论 -
Android设计模式(十)-命令模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/68946248命令模式是行为型设计模式之一。命令模式没那么多条条框框,所以很灵活。命令模式简单的说就是给他下一个命令,然后他就会执行和这个命令的一系列操作。例如点击电脑的关机命令,系统会执行暂停,保存,关闭等一系列的命令,最后完成关机。命令模式也跟关机一样,将一系列方法封装为一个方...原创 2017-04-01 17:03:17 · 1147 阅读 · 0 评论 -
Android设计模式(十二)-备忘录模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69228428备用录模式是一种行为型设计模式,用于保存对象当前的状态,以便之后可以再次恢复到此状态。备忘录模式要保证保存的对象状态不能被对象从外部访问,保护好被保存的这些对象状态的完整性以及内部实现不向外部暴露。定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该...原创 2017-04-05 10:42:08 · 3065 阅读 · 1 评论 -
Android设计模式(十三)-迭代器模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69251972迭代器模式又称游标模式,也是行为型设计模式。源于对容器的访问,主要解决容器的遍历操作。我们队容器的访问必然会用到遍历。我们可以将遍历的方法封装到容器中,或者不提供遍历方法。如果封装在容器中,容器就承担了过多的功能。如果不提供遍历方法,使用者会自己去实现遍历方法,让容器...原创 2017-04-05 14:30:06 · 956 阅读 · 0 评论 -
Android设计模式(十四)-模板方法模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69258883模板方法模式,名字就很直接,也很容易理解。什么是模板,模板就是一套固定格式。我们可以想象一个普通员工的一天的上班模板:去公司上班->工作->下班回家。 对于每一个员工来说,这三个步骤的具体内容是不一样的,但是流程都是这样的。在开发中也会有这种情况,架构师...原创 2017-04-05 16:09:16 · 1047 阅读 · 0 评论 -
Android设计模式(十五)-访问者模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69372613访问者模式是一种将数据操作与数据结构分离的设计模式。确实是我目前为止见过的最复杂的了。访问者模式的思想是:软件系统中拥有一个由许多对象构成的,比较稳定的对象结构。这些对象都拥有一个accept方法来接受访问者的访问。访问者是一个接口,对对象结构中的每一个元素都...原创 2017-04-06 10:00:55 · 1246 阅读 · 0 评论 -
Android设计模式(十六)-中介者模式
原文地址 http://blog.youkuaiyun.com/qq_25806863/article/details/69396448中介者模式又叫调解者模式或调停者模式,是行为型设计模式之一。生活中的中介者的作用就是连接两方的一个桥梁,比如房产中介,买房的只需跟中介打交道,然后买房的也跟着中介打交道,没有中介的时候是这样的: 每个买房的和卖房的都要和很多对方打交道,有了新的买房人,这些卖...原创 2017-04-06 16:32:50 · 5366 阅读 · 7 评论