
设计模式
文章平均质量分 87
AkaiC
这个作者很懒,什么都没留下…
展开
-
Java设计模式之——桥接模式
桥接模式的简单介绍桥接模式也称为桥梁模式,是结构型设计模式之一。在现实生活中大家都知道“桥梁”是连接河道两岸的主要交通枢纽,简而言之其作用就是连接河的两边,而我们的桥接模式与现实中的情况很相似,也会承担这连接“两边”的作用,那么具体是哪两边呢?这里先不着急,我们先来看看该模式的定义。桥接模式的定义将抽象部分与实现部分分离,使它们都可以独立地进行变化。桥接模式的使用场景从模式的定义中我们大致可以了解到原创 2016-11-02 21:45:02 · 697 阅读 · 0 评论 -
Java设计模式之——状态模式
状态方法模式简单介绍状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的、不可替换的,策略模式的行为是彼此独立、可相互替换的。用一句话来表述,状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模原创 2016-10-31 15:04:06 · 698 阅读 · 0 评论 -
Java设计模式之——责任链模式
责任链模式简单介绍责任链模式,是行为性设计模式之一。什么是“链”?我们将多个节点首尾相连构成的模型称为链,比如生活中常见的锁链,就是由一个个圆角长方形的铁环串起来的结构。对于链式结构,每个节点都可以被拆开在连接,因此,链式结构也具有很好的灵活性。将这样一种结构应用于编程领域,将每一个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首端发出,沿着链的路径依次传递给每一个节点对象,直原创 2016-10-31 17:47:38 · 1110 阅读 · 0 评论 -
Java设计模式之——命令模式
命令模式简单介绍命令模式,是行为型设计模式之一。命令模式相对于其他的设计模式来说并没有那么多的条条框框,其实它不是一个很“规矩”的模式,不过,就是基于这一点,命令模式相对于其他的设计模式更为灵活多变。我们接触比较多的命令模式个例无非就是程序菜单命令,如在操作系统中,我们点击“关机”命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,最后调用内核命令关闭计算机等,原创 2016-10-31 22:32:53 · 668 阅读 · 0 评论 -
Java设计模式之——迭代器模式
迭代器模式简单介绍迭代器模式又称为游标模式,是行为型设计模式之一。迭代器模式算是一个比较古老的设计模式,其源于对容器的访问,比如 Java 中的 List、Map、数组等,我们知道对容器对象的方法必然会涉及遍历算法,我们可以将遍历的算法封装在容器中,或者不提供遍历算法。如果我们将遍历的方法封装到容器中,那么对于容器类来说就承担了过多的功能,容器类不仅要维护自身内部的元素而且还要对外提供遍历的接口方法原创 2016-10-31 23:43:32 · 512 阅读 · 0 评论 -
Java设计模式之——模板方法模式
模板方法模式简单介绍在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现是未知的,或者说某些步骤的实现是会随着环境的变化而改变的,例如,执行程序的流程大致如下:(1) 检查代码的正确性(2)链接相关的类库(3)编译相关代码(4)执行程序对于不同的程序设计语言,上述 4 个步骤都是不一样的,但是,它们的执行流程是原创 2016-11-01 15:33:23 · 441 阅读 · 0 评论 -
Java设计模式之——组合模式
组合模式简单介绍组合模式也称为部分整体模式,结构型设计模式之一,组合模式比较简单,它将一组相似的对象看做一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别。生活中一个比较典型的例子就是组织结构的树状图,如下所示:上面是一个公司的组织结构树状图,其中总公司下有行政部和研发部,而且总公司下属还有一个子公司,虽然子公司也包含行政部和研发部原创 2016-11-01 16:56:25 · 571 阅读 · 0 评论 -
Java设计模式之——装饰模式
装饰模式简单介绍装饰模式也称为包装模式,结构型设计模式之一,其使用一种对客户端透明的方式来动态地扩展对象的功能,同时它也是继承关系的一种替代方案之一。在现实生活中你也可以看见很多装饰模式的例子,或者可以大胆地说装饰模式无处不在,就拿人来说,人需要各式各样的衣着,不管你穿着怎样,但是,对于个人的本身来说是不变的,充其量只是在外面披上一层遮羞物,这就是装饰模式,装饰物也行各不相同但是装饰的对象本质是不变原创 2016-11-02 14:41:50 · 579 阅读 · 0 评论 -
Java设计模式之——享元模式
享元模式简单介绍享元模式是对象池的一种实现,代表轻量级的意思。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多的对象的效果,这样一来就可以提升性能、避免内存移除等。享元对象中的部分状态是可以共享,可以共享的状态称为内部状态,内部状态不会随着环境变化;不可共享的状态则称之为外部状态,它们会随着环境的改变而改变。在享元模式中会建立一个原创 2016-11-02 15:50:14 · 576 阅读 · 0 评论 -
Java设计模式之——策略模式
策略模式的简单介绍在软件开发中常常遇到这样的情况:实现某一个功能可以有多种算法或者策略,我们根据事件情况选择不同的算法或者策略来完成该功能。例如,排序算法,可以使用插入排序、归并排序、冒泡排序等。这对这种情况,一个常规的方法是将多种算法写在一个类中。例如,需要提供多种排序算法。可以将这些算法写到一个 类中,每一个方法对应一个具体的排序算法;当然,也可以将这些排序算法封装到一个统一的方法中,通过 if原创 2016-10-30 14:49:22 · 788 阅读 · 0 评论 -
Java设计模式之——抽象工厂模式
抽象工厂模式简单介绍抽象工厂模式也是创建型设计模式之一。在上一篇博客中我们已经对工厂方法模式进行了介绍,那么这个抽象工厂又是怎么一回事呢?大家联想一下现实生活中的工厂肯定都是具体的,也就是说每个工厂都会生产某一种具体的产品,那么抽象工厂意味着生产出来的产品是不确定的,那这岂不是很奇怪?抽象工厂模式起源于以前对不同操作系统的图形化解决方案,如不同操作系统中的按钮和文本框控件其实现不同,展示效果也不一样原创 2016-10-30 00:29:22 · 636 阅读 · 0 评论 -
Java设计模式之——工厂方法模式
工厂方法模式简单介绍工厂方法模式是创建型设计模式之一。工厂方法模式是一种结构简单的模式,其在我们平时开发中应用很广泛。如 Android 中的 Activity 里的各个生命周期方法,以 onCreate 方法为例,它就可以看作是一个工厂方法,我们在其中可以构造我们的 View 并通过 setContentView 返回给 framework 处理等。工厂方法模式的定义定义一个用于创建对象的接口,让原创 2016-10-29 22:20:44 · 1629 阅读 · 0 评论 -
Java设计模式之——观察者模式
观察者模式简单介绍观察者模式是一个使用率非常高的模式,它最常用的地方是 GUI 系统、订阅——发布系统。因为这个模式的一个重要作用是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以 GUI 系统来说,应用的 UI 具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也会经常性变化,但是业务逻辑基本变化不大,此时,GUI 系统需要一套机制来应对这种情况,使得 U原创 2016-11-03 14:30:19 · 520 阅读 · 0 评论 -
Java设计模式之——适配器模式
适配器模式简单介绍适配器模式在我们的开发中使用率极高,从代码中随处可见的 Adapter 就可以判断出来。从最早的 ListView、GridView到现在最新的 RecyclerView 都需要使用 Adapter,并且在开发中我们遇到的优化问题、出错概率较大的地方也基本都出自 Adapter,这是个让人又爱又恨的角色。 说到底,适配器是将两个不兼容的类融合在一起,它有点向粘合剂,将不同的东西通原创 2016-11-03 15:58:23 · 651 阅读 · 0 评论 -
Java设计模式之——代理模式
代理模式简单介绍代理模式也称为委托模式,是结构型设计模式之一。那么何为代理呢?其实代理在我们日常生活中也并不少见,对于程序员来说最常接触的莫过于代理上网了,连上代理服务器地址,就可以轻松畅游全世界的网络;还有每天吃饭时赶进度是常事,叫公司的同时帮忙买饭也是一种代理等等…总而言之,也许你并不留意,但是代理的确是无处不在,现实生活中如此,我们的 Code 世界里也是如此!既然如此,我们来深究一下代理模式原创 2016-11-03 22:32:14 · 986 阅读 · 0 评论 -
Java设计模式之——面向对象六大原则
设计模式六大原则(1):单一职责原则设计模式六大原则(2):开闭原则设计模式六大原则(3):里氏替换原则设计模式六大原则(4):依赖倒置原则设计模式六大原则(5):接口隔离原则设计模式六大原则(6):迪米特原则设计模式六大原则(1):单一职责原则单一职责原则的英文名称是 Single Responsibility Principle,缩写为 SRP。SRP 的定义是:就一个类而言,应该仅有一个引起它原创 2016-10-27 20:51:45 · 2031 阅读 · 0 评论 -
Java设计模式之——单例模式
单例模式基本介绍单例模式是所有工程师最熟悉的设计模式之一,也是在开发中用的最多的。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。比如我们在上篇博客中自定义的 ImageLoader,它就应该只有一个 ImageLoader 实例,因为这个 ImageLoader 中含有线程池、缓存系统、网络请求等,很消耗资源,因此没原创 2016-10-28 15:32:47 · 688 阅读 · 0 评论 -
Java设计模式之——Builder 模式
Builder 模式基本介绍Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。 因为一个复杂的对象有很多大量组成部分,如汽车,有车轮、方向盘、发动机,还有各种小零件等,如何将这些部件装配成一辆汽车,这个装配过程很漫长,也很复杂,对于这种原创 2016-10-28 17:50:08 · 507 阅读 · 0 评论 -
Java设计模式之——原型模式
原型模式简单介绍原型模式是一个创建型的模式。原型二字表明了该模式应该有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程也就是我们俗称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可使程序运行更高效。原型模式的定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原创 2016-10-29 15:56:06 · 677 阅读 · 0 评论 -
Java设计模式之——备忘录模式
备忘录模式简单介绍备忘录模式是一种行为模式,该模式用于保存对象当前的状态,并且在之后可以再次恢复到此状态,这有点像我们平时说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象状态不嗯呢该被对象从外部访问,目的是为了保护号被保存的这些对象状态的完整性以及内部实现不向外暴露。备忘录模式的定义在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可将该对象恢复到原先保存原创 2016-10-29 19:46:35 · 561 阅读 · 0 评论 -
Java设计模式之——外观模式
外观模式的简单介绍外观模式在开发过程中的运用频率非常高,尤其是在现阶段各种第三方 SDK 充斥在我们的周边,而这些 SDK 很大概率会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块、ImageLoader 模块等。可能你已经在开发中运用过无数原创 2016-11-02 20:47:55 · 825 阅读 · 0 评论