![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android/Java 设计模式
文章平均质量分 94
Shawn_Dut
github地址:https://github.com/zhaozepeng
展开
-
java/android 设计模式学习笔记(11)---原型模式
这篇博客我们来介绍一下剩下的最后一个创建型模式:原型模式(Prototype Pattern)。该模式有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程在 C++ 中就是一个克隆。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可以使程序运行效率更高。 这个模式的重点在于,客户端的原创 2016-06-25 20:50:26 · 5602 阅读 · 0 评论 -
java/android 设计模式学习笔记(19)---状态模式
这篇博客我们来介绍一下状态模式(State Pattern),也是行为型设计模式之一。状态模式的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式的结构类图几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的、不可替换的,策略模式的行为是彼此独立、可相互替换的。状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类;而策略模式可以想象成是原创 2016-09-04 19:14:59 · 2462 阅读 · 4 评论 -
java/android 设计模式学习笔记(16)---命令模式
这篇博客我们来介绍一下命令模式(Command Pattern),它是行为型设计模式之一。命令模式相对于其他的设计模式更为灵活多变,我们接触比较多的命令模式个例无非就是程序菜单命令,如在操作系统中,我们点击关机命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,最后调用内核命令关闭计算机等,对于这一系列的命令,用户不用去管,用户只需点击系统的关机按钮即可完成如上原创 2016-08-14 18:30:19 · 2364 阅读 · 5 评论 -
java/android 设计模式学习笔记(21)---备忘录模式
这篇博客我们来介绍一下备忘录模式(Memento Pattern),也是行为型模式设计模式之一,备忘录模式又称为快照(Snapshot Pattern)模式或者 Token 模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问(an opaque object),目的是为了保护被保存的这些对象状态的完整性以及内部实现不向外原创 2016-09-24 13:07:08 · 2379 阅读 · 1 评论 -
java/android 设计模式学习笔记(24)---访问者模式
这篇博客我们来介绍访问者模式(Visitor Pattern),这也是行为型设计模式之一。访问者模式是一种将数据操作与数据结构分离的设计模式,它可以算是 23 中设计模式中最复杂的一个,但它的使用频率并不是很高,大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是需要使用它了。 访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象的类都原创 2016-10-16 11:35:29 · 2019 阅读 · 0 评论 -
java/android 设计模式学习笔记(22)---模板方法模式
这篇博客我们来介绍一下模板方法模式(Template Method Pattern),也是[行为型设计模式](http://blog.csdn.net/self_study/article/details/51234377#t12)之一。在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现是未知的,或者说某些步骤的实现是会随着环境的变原创 2016-10-04 15:47:41 · 1615 阅读 · 0 评论 -
java/android 设计模式学习笔记(23)---解释器模式
这篇博客我们来介绍一下解释器模式(Interpreter Pattern),也是行为型设计模式之一,是一种用的比较少的设计模式,其提供了一种解释语言的语法或表达式的方式,该模式定义了一个表达式接口,通过该接口解释一个特定的上下文。在这么多的设计模式中,解释器模式在实际运用上相对来说要少很多,因为我们很少会去构造一个语言的文法。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。 转载请原创 2016-10-07 17:40:00 · 2308 阅读 · 2 评论 -
java/android 设计模式学习笔记(1)---单例模式
前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使用的时候也会有一些坑。原创 2016-04-24 20:16:37 · 11422 阅读 · 7 评论 -
java/android 设计模式学习笔记目录
其实很早就想开始总结设计模式了,无奈刚刚换完工作,工作太忙,平时周末也太懒,难得提起精神写一点,估计时间会花的很长,不过还是自己加油吧~~。 学习笔记,顾名思义,其实就是我在平时看书,工作的笔记而已,只不过分享出来让大家有什么错误的给指点一下,能学到知识当然也是很好的 ( ̄▽ ̄)” 。 PS:对技术感兴趣的同鞋加群544645972一起交流java/android设计模式介绍 设计模式原创 2016-04-24 20:15:55 · 9513 阅读 · 0 评论 -
java/android 设计模式学习笔记(5)---对象池模式
这次要介绍一下对象池模式(Object Pool Pattern),这个模式为常见 23 种设计模式之外的设计模式,介绍的初衷主要是在平时的 android 开发中经常会看到,比如 ThreadPool 和 MessagePool 等。 在 java 中,所有对象的内存由虚拟机管理,所以在某些情况下,需要频繁创建一些生命周期很短使用完之后就可以立即销毁,但是数量很大的对象集合,那么此时 GC原创 2016-05-29 23:25:19 · 10970 阅读 · 0 评论 -
java/android 设计模式学习笔记(8)---桥接模式
这篇博客我们来介绍一下桥接模式(Bridge Pattern),它也是结构型设计模式之一。桥接,顾名思义,就是用来连接两个部分,使得两个部分可以互相通讯或者使用,桥接模式的作用就是为被分离了的抽象部分和实现部分搭桥。在现实生活中也有很多这样的例子,一个物品在搭配不同的配件时会产生不同的动作和结果,例如一辆赛车搭配的是硬胎或者是软胎就能够在干燥的马路上行驶,而如果要在下雨的路面行驶,就需要搭配雨胎了,原创 2016-06-10 19:59:10 · 13817 阅读 · 3 评论 -
java/android 设计模式学习笔记(20)---迭代器模式
我们这篇博客来介绍一下迭代器模式(Iterator Pattern),又称为游标(Cursor Pattern)模式,是行为型设计模式之一。迭代器模式算是一个比较古老的设计模式,其源于对容器的访问,比如 Java 中的 List、Map、数组等,我们知道对容器对象的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,那么对于容器类来说就承原创 2016-09-16 17:44:06 · 2243 阅读 · 6 评论 -
java/android 设计模式学习笔记(18)---中介者模式
设计模式总目录 java/android 设计模式学习笔记目录 特点UML类图示例与源码总结源码下载引用原创 2016-09-01 17:12:46 · 2372 阅读 · 2 评论 -
java/android 设计模式学习笔记(17)---策略模式
这篇博客我们来介绍一下策略模式(Strategy Pattern,或者叫 Policy Pattern),也是行为型模式之一。通常在软件开发中,我们为了一个功能可能会设计多种算法和策略,然后根据实际使用情况动态选择对应的算法和策略,比如排序算法中的快速排序,冒泡排序等等,根据时间和空间的综合考虑进行运行时选择。 针对这种情况,一个常规的方法是将多种算法写在一个类中,每一个方法对应一个具体的排序原创 2016-08-27 20:54:22 · 2452 阅读 · 6 评论 -
java/android 设计模式学习笔记(4)---抽象工厂模式
再来介绍一下抽象工厂模式(Abstact Factory Pattern),也是创建型模式之一,上篇博客主要介绍了工厂方法模式。抽象工厂模式和工厂方法模式稍有区别。工厂方法模式中工厂类生产出来的产品都是具体的,也就是说每个工厂都会生产某一种具体的产品,但是如果工厂类中所生产出来的产品是多种多样的,工厂方法模式也就不再适用了,就要使用抽象工厂模式了。 抽象工厂模式的起源或者最早的应用,是对不同操原创 2016-05-22 20:28:50 · 7642 阅读 · 0 评论 -
java/android 设计模式学习笔记(10)---建造者模式
这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与[工厂方法模式](http://blog.csdn.net/self_study/article/details/51419770)和[抽象工厂模式](http://blog.csdn.net/self_study/article/details/51472885)不同,后两者的目的是为了实现多态性,原创 2016-06-19 21:00:55 · 9832 阅读 · 1 评论 -
java/android 设计模式学习笔记(3)---工厂方法模式
这篇来介绍一下工厂方法模式(Factory Method Pattern),在实际开发过程中我们都习惯于直接使用 new 关键字用来创建一个对象,可是有时候对象的创造需要一系列的步骤:你可能需要计算或取得对象的初始设置;选择生成哪个子对象实例;或在生成你需要的对象之前必须先生成一些辅助功能的对象,这个时候就需要了解该对象创建的细节,也就是说使用的地方与该对象的实现耦合在了一起,不利于扩展,为了解决这原创 2016-05-21 20:36:40 · 10532 阅读 · 0 评论 -
java/android 设计模式学习笔记(2)---观察者模式
这篇来讲一下观察者模式,观察者模式在实际项目中使用的也是非常频繁的,它最常用的地方是GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变形,尤其是前期随着业务的改变或者产品的需求修改,应用界面也经常性变化,但是业务逻辑基本变化不大,此时,GUI系统需要一套机制来应对这种情况,使得UI层与具体的业务逻辑解耦原创 2016-05-15 20:43:54 · 11985 阅读 · 0 评论 -
java/android 设计模式学习笔记(12)---组合模式
这篇我们来介绍一下组合模式(Composite Pattern),它也称为部分整体模式(Part-Whole Pattern),结构型模式之一。组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别。这个最典型的例子就是数据结构中的树了,如果一个节点有子节点,那么它就是枝干节点,如果没有子节点,那原创 2016-06-26 18:03:31 · 5048 阅读 · 1 评论 -
java/android 设计模式学习笔记(13)---享元模式
这篇我们来介绍一下享元模式(Flyweight Pattrn),Flyweight 代表轻量级的意思,享元模式是对象池的一种实现。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,缓存可共享的对象,来达到对象共享和避免创建过多对象的效果,这样一来就可以提升性能,避免内存移除和频繁 GC 等。 享元模式的一个经典使用案例是文本系统中图形显示所用的数据结构,一个文本系统能够显示的字符种类就是那原创 2016-07-10 20:00:29 · 4910 阅读 · 0 评论 -
java/android 设计模式学习笔记(15)---责任链模式
这篇博客我们来介绍一下责任链模式(Chain-of-responsibility Pattern),责任联模式又称为职责链模式,是行为型设计模式之一。顾名思义,责任链模式中存在一个链式结构,多个节点首尾相连,每个节点都可以被拆开再连接,因此,链式结构具有很好的灵活性。将这样一种结构应用于编程领域,将每一个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首段发出,沿着链的路径依次传原创 2016-07-24 20:33:41 · 2648 阅读 · 0 评论 -
java/android 设计模式学习笔记(14)---外观模式
这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是在现阶段各种第三方 SDK 基本很大概率都会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块、ImageLoader 模块等原创 2016-07-17 18:14:44 · 5776 阅读 · 1 评论 -
java/android 设计模式学习笔记(7)---装饰者模式
这篇将会介绍装饰者模式(Decorator Pattern),装饰者模式也称为包装模式(Wrapper Pattern),结构型模式之一,其使用一种对客户端透明的方式来动态的扩展对象的功能,同时它也是继承关系的一种替代方案之一,但比继承更加灵活。在现实生活中也可以看到很多装饰者模式的例子,或者可以大胆的说装饰者模式无处不在,就拿一件东西来说,可以给它披上无数层不一样的外壳,但是这件东西还是这件东西,原创 2016-06-09 17:44:16 · 9465 阅读 · 0 评论 -
java/android 设计模式学习笔记(6)---适配器模式
这篇来介绍一下适配器模式(Adapter Pattern),适配器模式在开发中使用的频率也是很高的,像 ListView 和 RecyclerView 的 Adapter 等都是使用的适配器模式。在我们的实际生活中也有很多类似于适配器的例子,比如香港的插座和大陆的插座就是两种格式的,为了能够成功适配,一般会在中间加上一个电源适配器,形如: 这样就能够将原来不符合的现有系统和目标系统通过适配原创 2016-06-05 17:29:10 · 11985 阅读 · 1 评论 -
java/android 设计模式学习笔记(9)---代理模式
这篇博客我们来介绍一下代理模式(Proxy Pattern),代理模式也成为委托模式,是一个非常重要的设计模式,不少设计模式也都会有代理模式的影子。代理在我们日常生活中也很常见,比如上网时连接的代理服务器地址,更比如我们平时租房子,将找房子的过程代理给中介等等,都是代理模式在日常生活中的使用例子。 代理模式中的代理对象能够连接任何事物:一个网络连接,一个占用很多内存的大对象,一个文件,或者是一原创 2016-06-11 21:13:13 · 12399 阅读 · 3 评论