设计模式
haima1998
这个作者很懒,什么都没留下…
展开
-
命令(Command )模式
一、 命令(Command)模式命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割转载 2013-02-13 10:43:21 · 491 阅读 · 0 评论 -
State 模式
有限状态机(FSM:Finite state machine)例子:1、若状态机在Locked状态收到了一个coin事件,则迁移到Unlocked状态并执行unlock动作。2、若状态机在UnLocked状态收到了一个pass事件,则迁移到locked状态并执行lock动作。一、描述人方法: 1、STD(state transition Diagram) 状态迁移图。原创 2013-06-16 12:03:01 · 1047 阅读 · 0 评论 -
设计模式 -- Observer 观察者模式
原创 2013-06-25 11:29:08 · 565 阅读 · 0 评论 -
UML类图符号 各种关系说明以及举例
转自:http://www.cnblogs.com/duanxz/archive/2012/06/13/2547801.htmlUML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。依赖(Depe转载 2013-05-23 09:10:25 · 647 阅读 · 0 评论 -
设计模式 Visitor 模式 VS decorator模式
Visitor模式应用场景:如果一个应用程序存在有需要以多种不同方式进行解释的数据结构,就可以使用Visitor模式。使用Visitor模式和Decorator模式都可以在不改变现有类层次结构的情况下向其中增加新方法。示例:解决问题: 在Modern接口中增加ConfigureForUnix方法,ConfigureForWin方法或者其他平台的方法。Visitor 模式如同原创 2013-06-12 14:19:18 · 1574 阅读 · 0 评论 -
设计模式--facade外观模式 VS Mediator 模式
facade模式:为一组具有复杂且全面的接口对象提供一个简单且特定的接口。例如 图1中的DB类,该类为java.sql包中复杂且全面的接口类提供了一个非常简单的,特定于ProductData的接口。图1facade模式:是以明显且受限的方式来施加它的策略。对比Meidator模式Meidator模式: 是以隐藏且不受限原创 2013-06-10 17:39:02 · 867 阅读 · 0 评论 -
设计模式--proxy代理模式
proxy 模式分成3个部分:1、interface 部分:也就是图1 例子中的order interface。声明了用户需要调用的所有方法。2、implementation部分:也就是图1例子中的ordeImplementation。 在不涉及数据库操作的情况下,实现接口中的方法,主要实现业务逻辑规则。3、proxy部分:也就是图1中的orderProxy。实现接口中的方法,操作数据原创 2013-06-10 16:51:51 · 720 阅读 · 0 评论 -
设计模式--Abstract server模式 VS Adapter 模式
一、 Abstract Server 模式:图1二、Adapter 模式:图2 : 委托形式的Adapter 模式图3: 类形式的Adapter模式图4疑问:DedUser 是关联 Dedicated Modern对象还是Modern对象?原创 2013-06-10 22:03:02 · 680 阅读 · 0 评论 -
设计模式 -- Composite 模式
示例: 组合命令 如图1,Senor 包含了多个Command对象列表或者向量,Senor 和Command之间的关系式一对多的。 其实我们可以使用Composite模式(图2)去构建一对一的关系,但是一对多的行为的代替方法。 一对一的关系要比一对多的关系更容易理解、编码和维护。 只有那些以一致的方式对待列表中的每个对象的情况才具备转换的可能性。图1原创 2013-06-11 16:35:57 · 784 阅读 · 0 评论 -
软件开发模式对比(瀑布、迭代、螺旋、敏捷)
转自:http://www.cnblogs.com/-OYK/archive/2012/10/08/2714669.html1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,转载 2013-10-06 17:55:59 · 708 阅读 · 0 评论 -
UML用例图
转自:http://kb.cnblogs.com/page/129491/用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1. 参与者(Actor) 表示与您的应用程序或系统进行交互的用户、组转载 2013-11-11 12:28:49 · 522 阅读 · 0 评论 -
设计模式 -- Singleton单态模式
单态定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加1转载 2013-06-04 13:53:32 · 555 阅读 · 0 评论 -
设计模式--Template模式 VS Strategy模式
Template 模式和Strategy模式所要解决的问题类似,而且通常可以互换使用。Template模式使用继承来解决问题。Strategy模式使用委托来解决问题。如图1:template 模式:基类 BubbleSorter实现了通用算法sort, IntBubble Sorter和Double Sorter 子类继承了父类的算法sort,分别实现子类特有的outOford原创 2013-06-11 12:45:16 · 793 阅读 · 0 评论 -
策略(strategy)模式
前言万事开头难,最近对这句话体会深刻!这篇文章是这个系列正式开始介绍设计模式的第一篇,所以肩负着确定这个系列风格的历史重任,它在我脑袋里默默地酝酿了好多天,却只搜刮出了一点儿不太清晰的轮廓,可是时间不等人,以后再多“迭代”几次吧!在前面的随笔里,我已经提到了,这个系列准备以《Head First Design Patterns》的结构为主线,所以每个模式的核心故事都是取材于此书,在此再转载 2013-02-13 10:35:21 · 518 阅读 · 0 评论 -
工厂(factory)模式
转自: http://www.cnblogs.com/hegezhou_hot/archive/2010/11/30/1892227.html一、开篇 一个多月没有写文章了,一方面是由于家庭的原因,还有一方面是因为工作上的原因,所以在这里给大家说抱歉了,这段时间也是有很多热心的朋友,一直询问我,什么时候能把相关的系列文章写完,其实我也特别的想赶转载 2013-02-13 10:41:32 · 593 阅读 · 0 评论 -
外观(Facade)模式
什么是(Facade)模式? Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用(出自百度文库)。即当子系统复杂或者繁锁时,我们让子系统提供一个窗口,程序中称为接口,其它程序或者对象就通过这个窗口(接口)与此子系统联系。接口可以是类或方法等。这样就简化了子系统的使用。 作用是什么? 简化转载 2013-02-13 10:52:17 · 504 阅读 · 0 评论 -
中介者(Mediator)模式
转自:http://liulinqi206.blog.163.com/blog/static/13460476620120173323449/一、什么是中介者模式 Mediator模式也叫中介者模式,是由GoF提出的23种软件设计模式的一种。Mediator模式是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对转载 2013-02-13 10:54:54 · 563 阅读 · 0 评论 -
委托(delegate)模式
梗概委托是对一个类的功能进行扩展和复用的方法。它的做法是:写一个附加的类提供附加的功能,并使用原来的类的实例提供原有的功能。场景扩展和复用一个类的功能常用的一种方法是继承,而另一种更普遍的方法则是委托。在很多情况下委托很适用,而继承则并不适用。另外在[MEYERS98]中也讲到,公有继承表现的设计思想是“is-a-kind-of” ,私有继承表现的设计思想则是“is-imp转载 2013-02-13 10:57:03 · 835 阅读 · 0 评论 -
设计模式--templete mode
转自:http://blog.csdn.net/hguisu/article/details/75640391.概述在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:转载 2013-05-21 09:30:43 · 608 阅读 · 0 评论 -
设计模式--observer观察者模式
转自:http://blog.csdn.net/Venlin/article/details/1658821一、 观察者(Observer)模式观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的转载 2013-05-23 18:23:55 · 605 阅读 · 0 评论 -
设计模式中的五大原则
设计模式是一种思想,是智慧的结晶了.它有利于我们快速构建高效,模块化,高扩展性的代码.这种思想不仅仅在c++中有,c代码中也是有很充分的使用.设计模式是前提,是重中之重,那比它更重要的是什么?是原则!面向对象设计五大原则1. 单一职责原则(SRP:Single Responsibility Principle)就一个类而言,应该仅有一个引起它变化的原因。2. 开放封闭原则(OC转载 2013-05-23 10:13:21 · 576 阅读 · 0 评论 -
java的多重继承~interface模拟
interface与多重继承的观念不管是Java的interface或是C++的多重继承﹐在物件导向的理论里﹐都算是蛮新颖的概念。所以这里我们谈的﹐是以程式语言的角度﹐看看Java interface的所有意义与功能﹐是否C++的多重继承能全部诠释?或是相反地以Java的来诠释C++的。首先让我们来复习一下什么是C++的多重继承。 「继承」通常在物件导向程式语言中﹐扮演着程式码的重复利转载 2013-05-23 18:03:34 · 607 阅读 · 0 评论 -
设计模式 -- Adapter 适配器模式
转自:http://blog.csdn.net/joyney/article/details/4000818以下内容是我和小组的兄弟学习设计模式我做的课件,我整理出来和大家分享,有不妥之处敬请指出. 上次做的桥接模式(Bridge),这次是适配器模式(Adapter).概述: 在软件开发过程中,我们要经常要复用我们以前开发的一些“现存对象”,但是这些“现存对象”并不能转载 2013-05-24 10:29:55 · 505 阅读 · 0 评论 -
UML中关系图解
转自:http://blog.csdn.net/duran1986/article/details/5573415最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有些概念还是经常被混淆的,写在这里是为了加深印象。关系列表:继承关系(Generalization);实现关系(Realization);依赖关系(Dependency);关转载 2016-12-03 10:55:49 · 344 阅读 · 0 评论