设计模式
lxn_李小牛
Where you spend your time on,The Time will let you become what kind of person
展开
-
单例模式的7种写法
一、概述 在介绍单例模式的写法之前,我们有必要了解一下什么是单例模式。 单例模式是一种常用的软件设计模式,在他的核心结构中只包含一个被称为 单例的特殊类。通过单例模式可以保证系统只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 单例模式结构图 作用:保...原创 2016-01-19 15:59:43 · 1274 阅读 · 0 评论 -
Android设计模式系列(11)--SDK源码之策略模式
策略模式其实特别简单(听到这句话,大家是不是心里一下子放松了?)。 比如排序,官方告诉大家我这里有一个排序的接口ISort的sort()方法,然后民间各尽其能,实现这个排序的方法:冒泡,快速,堆等等。 这些方法就是“不同的策略”。 然后,某个模块下,需要一个排序方法,但是暂时不能指定具体的sort方法(出于扩展的考虑),就需要使用ISort接口了。 最后,具体什么场景下,传入什么具体的sor转载 2016-03-14 17:21:00 · 386 阅读 · 0 评论 -
Android设计模式系列(10)--SDK源码之原型模式
CV一族,应该很容易理解原型模式的原理,复制,粘贴完后看具体情况是否修改,其实这就是原型模式。 从java的角度看,一般使用原型模式有个明显的特点,就是实现cloneable的clone()方法。 原型模式,能快速克隆出一个与已经存在对象类似的另外一个我们想要的新对象。1.意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。2.结构图和代码 它的结构图非常简单,我们以Int转载 2016-03-14 17:17:43 · 317 阅读 · 0 评论 -
Android设计模式系列(9)--SDK源码之适配器模式
对于android开发者来说起,适配器模式简直太熟悉不过,有很多应用可以说是天天在直接或者间接的用到适配器模式,比如ListView。 ListView用于显示列表数据,但是作为列表数据集合有很多形式,有Array,有Cursor,我们需要对应的适配器作为桥梁,处理相应的数据(并能形成ListView所需要的视图)。 正是因为定义了这些适配器接口和适配器类,才能使我们的数据简单灵活而又正确的显示转载 2016-03-14 17:15:27 · 322 阅读 · 0 评论 -
Android设计模式系列(8)--SDK源码之工厂方法模式
工厂方法模式,往往是设计模式初学者入门的模式,的确,有人称之为最为典型最具启发效果的模式。 android中用到了太多的工厂类,其中有用工厂方法模式的,当然也有很多工厂并不是使用工厂方法模式的,只是工具管理类。 今天以ThreadFactory举例说明一下简单工厂模式和工厂方法模式。 工厂方法模式,Factory Method,简单的方式,不简单的应用。1.意图 定义一个用于创建对象的接口转载 2016-03-14 17:07:54 · 366 阅读 · 0 评论 -
Android设计模式系列(7)--SDK源码之命令模式
命令模式,在.net,java平台的事件机制用的非常多,几乎每天都与之打交道。 android中对我印象最深的就是多线程多进程的环境,所以必然大量使用到Runbable,Thread,其实用的就是最简单的命令模式。 命令模式,Command Pattern,把请求封装为一个对象,多么巧妙的一个说法啊。1.意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请原创 2016-03-14 16:51:42 · 438 阅读 · 0 评论 -
Android设计模式系列(6)--SDK源码之享元模式
享元模式,给我的感觉就是对象池,缓存单例对象。 java中的享元模式最经典的例子就是String类了,还有一个最容易理解的就是word文档字符共享的例子,也是享元模式的经典应用。 本文对android中的sql编译类SQLiteCompiledSql说明,展开分析,也是很容易理解的一个例子,其实,android SDK中必然有很多地方需要用到享元模式。 享元模式,Flyweight Patt转载 2016-03-14 16:49:25 · 336 阅读 · 0 评论 -
Android设计模式系列(5)--SDK源码之备忘录模式
备忘录模式,在工作代码中,要么不用,要么经常用到。 举个例子,程序员喜欢写代码,coding,coding,这个时候它的状态是很high,但是每隔一段时间总要去上一下厕所,状态是放松relax,上完测试归来后又恢复到high的状态,继续coding。这个过程对于身后的老板来说,它默认同意你离开去上厕所,他也希望你回来后恢复high的状态继续工作,但是你在这个过程中上厕所的这件事,他是不需要了解细节转载 2016-03-14 16:46:31 · 327 阅读 · 0 评论 -
Android设计模式系列(4)--SDK源码之模板方法模式
模板方法,和单例模式是我认为GOF的23中最简单的两种模式。 但是我个人对模板方法的经典思想特别推崇,虽然模板方法在大对数情况下并不被推荐使用,但是这种通过父类调用子类的方法,使用继承来改变算法的一部分,是面向对象的一种基本认识。 打比方说父亲有很多理想,就行医救人吧,但是父亲医术不行,只能靠儿子,儿子长大后遵从父亲大志,春风拂面,妙手回春,实现了父亲的理想,儿子做的事情早在出生前就定下来了,是转载 2016-03-14 16:44:11 · 392 阅读 · 0 评论 -
Android设计模式系列(3)--SDK源码之单例模式
单例模式,可以说是GOF的23种设计模式中最简单的一个。 这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式,本人很喜欢这个模式。 android中很多地方都用到了单例模式,本文以输入法管理者InputMethodManager为例,展开分析。 单例模式,Singleton Pattern,能够以其特有的转载 2016-03-14 16:40:42 · 441 阅读 · 0 评论 -
Android设计模式系列(12)--SDK源码之生成器模式(建造者模式)
建造者模式把构造和表示分离开,根据客户需求生产一个相应的对象。 本来呢,我们根据Builder接口实现不同的具体的ConcreteBuilder,就可生产不同的对象了。 但是,下面例子的只有一个Builder,所以也没有接口Builder,也没有其他的ConcreteBuilder。 但是我今天要讲的例子太简单,简单到都不觉得是建造者模式,但是又有建造者模式的感觉。 意图 将一个复杂对象的构转载 2016-03-14 17:29:56 · 380 阅读 · 0 评论