![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
liaoqianchuan00
这个作者很懒,什么都没留下…
展开
-
设计模式之间区别 (1) 桥接模式和策略模式
概述:桥接(Bridge)模式是结构型模式的一种,而策略(strategy)模式则属于行为模式。以下是它们的UML结构图。在桥接模式中,Abstraction通过聚合的方式引用Implementor。在策略模式中,Context也使用聚合的方式引用Startegy抽象接口。从他们的结构图可知,在这两种模式中,都存在一个对象使用聚合的方式引用另转载 2012-11-09 00:07:38 · 887 阅读 · 0 评论 -
设计模式(11) ------------解释器模式
一、什么是解释器模式 Interpreter模式也叫解释器模式,是行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpreter模式是一种简单的语法解释器构架。二、解释器模式应用场景 当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。 而当转载 2012-11-13 15:48:11 · 374 阅读 · 0 评论 -
设计模式(14) ------------状态模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述状态(State)模式的: 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。 状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。状态模式的结构 用一句话来表述,状态模式把所研究的对象的行为包装在不同转载 2012-11-14 23:20:24 · 419 阅读 · 0 评论 -
设计模式(15) ------------模板方法模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构 模板转载 2012-11-14 23:53:22 · 378 阅读 · 0 评论 -
设计模式(16) ------------命令模式
《JAVA与模式》之命令模式在阎宏博士的《JAVA与模式》一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式转载 2012-11-15 00:10:25 · 486 阅读 · 0 评论 -
设计模式(12) ------------观察者模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这转载 2012-11-14 22:12:31 · 461 阅读 · 0 评论 -
设计模式(17) ------------迭代器模式
概述: 迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。参与者:Iterator:迭代器定义访问和遍历元素的接口。ConcreteIterator(Controller):具体迭代器实现迭代器接口,对该聚合遍历时跟踪当前位置。Aggre转载 2012-11-15 23:08:55 · 551 阅读 · 0 评论 -
设计模式(18) ------------备忘录模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述备忘录(Memento)模式的: 备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原转载 2012-11-15 23:45:50 · 690 阅读 · 0 评论 -
设计模式(19) ------------原型模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过转载 2012-11-19 23:01:29 · 490 阅读 · 0 评论 -
设计模式(20) ------------建造者模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象转载 2012-11-19 23:29:00 · 503 阅读 · 0 评论 -
设计模式(笔记)优先使用对象组合而不是类继承
优先使用对象组合而不是类继承问概述继承和组合都能达到一个代码复用的效果,但是类的继承通常是白箱复用,对象组合通常为黑箱复用。我们在使用继承的时候同时也就拥有了父对象中的保护成员,增加了耦合度。而对象组合就只需要在使用的时候接口稳定,耦合度低。 Is a和has a 我们怎么来判断是用继承还是组合呢?只有在对象之间关系具有很强的is a关系的时候才使用继承原创 2014-05-01 12:00:49 · 8364 阅读 · 0 评论 -
设计模式(笔记)概述
设计模式(笔记)概述 目的解决类与相互通信的对象之间的组织关系,包括角色,职责,协作几个方面。好处应对变化,提高复用 概述面向对象设计模式是独立于编程语言的。不像算法技巧,可以照搬照用,是一些经验性的认识。首先我们要先了解什么是面向对象。 面向对象三大机制1. 封装:隐藏内部实现,隔离内部变化,外部接口是稳定的,但是内部的实现可原创 2014-05-01 13:04:06 · 1040 阅读 · 0 评论 -
设计模式(13) ------------终介者模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。为什么需要调停者 如下图所转载 2012-11-14 22:51:19 · 598 阅读 · 0 评论 -
设计模式(10) ------------策略模式
1.概述在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else转载 2012-11-13 15:27:00 · 491 阅读 · 0 评论 -
设计模式(8) ------------适配器模式
概述:适配器模式,属于结构型模式,其主要作用是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适用情况:以下情况使用适配器模式• 你想使用一个已经存在的类,而它的接口不符合你的需求。• 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。转载 2012-11-11 22:45:41 · 384 阅读 · 0 评论 -
设计模式(9) ------------职责链模式
前言之前我们已经将前两种类型的设计模式都已经悉数介绍完呢(创建型和结构型),希望此时大家能够对它们有一个全新的认识,不仅加深对各个模式的理论理解,更需要在日常开发活动中实践之,这样才能真正做到对模式的融会贯通。模式的学习和领悟需要一个过程,不可能一蹴而就,更不可高开低走,需要大家静下心来扎实地一步步学习和提高。从今天开始,我们将继续完成最后一种类型的设计模式——行为型模式的介绍和学习,所谓转载 2012-11-12 14:51:50 · 563 阅读 · 0 评论 -
设计模式之间区别 (2) 装饰者模式和继承
转载自:http://blog.csdn.net/woshirongshaolin/article/details/7676111转载 2012-11-10 00:49:04 · 892 阅读 · 0 评论 -
设计模式(4) ------------外观模式
概述:Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其转载 2012-11-10 00:16:28 · 710 阅读 · 0 评论 -
设计模式(6) ------------访问者模式
概要:访问者模式属于行为型模式,其意图是表示一个作用于某对象结构中的各元素的操作。他使你可以在不改变个元素的类的前提下定义作用与这些元素的操作。考虑一个访问汽车各个部件的程序,该程序需要在汽车各个部件上执行某些操作,比如:获取名字等等,因此它可能需要定义许多操作已进行类型检查。这些操作大多要求对不同节点进行不同的处理,如果单纯使用 继承来解决这个问题,将会使得访问的代码分散在程序的各个角落转载 2012-11-11 12:53:59 · 548 阅读 · 0 评论 -
设计模式(5) ------------享元模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java中的String类型 在JAVA语言中,String类型就是使转载 2012-11-11 11:44:56 · 720 阅读 · 0 评论 -
设计模式(3) ------------桥接模式
生活中的一个例子: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境(路)也在变化,在软件系统中就要适应两个方面的变化?怎样实现才能应对这种变化呢?概述:在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何转载 2012-11-08 23:31:42 · 883 阅读 · 0 评论 -
设计模式(2) ------------组合模式
1.1.1 摘要 在软件系统设计中,我们经常会遇到整体和部分的设计问题,例如为一家架构完善的公司设计系统时,我们在系统设计过程中应该更加注重这种整体和部分的关系(总部和分部的关系),这就是我们今天要介绍的组合模式(Composite)。 组合模式(Composite)把对象构造成为一棵对象树,现在让我们简短回忆一下树的定义。 树是一种数据结构,转载 2012-11-07 16:29:51 · 814 阅读 · 0 评论 -
设计模式(1) ------------装饰者模式
概述 JAVA23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点 (1) 装饰对象和真实对象有相同的接口。这样客户端对象就可以和真实对象相同的方式和装饰对象交互。 (2) 装饰对象包含转载 2012-11-06 14:33:53 · 705 阅读 · 0 评论 -
设计模式(24) ------------单例模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构 单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。 饿汉式单例类public cl转载 2012-11-27 15:43:16 · 579 阅读 · 0 评论 -
设计模式(7) ------------代理模式
概念代理(Proxy)模式是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。种类Remote Proxy :远程代理。该代理可以让客户端透明转载 2012-11-11 13:56:11 · 486 阅读 · 0 评论 -
设计模式(21) ------------简单工厂模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。那么简单工厂模式是在什么场景下使用呢,下面就以本人的理解举例说明: 就拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证、域认证(口令认证通常是去数据转载 2012-11-27 14:41:14 · 551 阅读 · 0 评论 -
设计模式(22) ------------工厂方法模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述工厂方法模式的: 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明:转载 2012-11-27 14:49:51 · 539 阅读 · 0 评论 -
设计模式(23) ------------抽象工厂模式
场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能确定具体的CPU。 同样,在选择主板的时候,也有一系列问题,比如品牌、转载 2012-11-27 15:17:34 · 689 阅读 · 0 评论 -
设计模式概览
该图片来自网络转载 2014-04-08 16:23:48 · 741 阅读 · 0 评论