Java 设计模式
Sunday_Vssupermadman
这个作者很懒,什么都没留下…
展开
-
设计模式之——策略模式
Joe是一名OO程序员,他为一家开发模拟鸭子池塘游戏的公司工作,该公司的主要产品是一种可以模拟展示多种会游泳和呷呷叫的鸭子的游戏。这个游戏是使用标准的面向对象技术开发的,系统里所有鸭子都继承于Duck基类,系统的核心类图如下: 如图所示,在Duck基类里实现了公共的quack()和swim()方法,而MallardDuck和RedheadDuck可以分别覆盖实现自己的display转载 2014-06-03 10:53:33 · 672 阅读 · 0 评论 -
设计模式之——代理模式
Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理.设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问.为什么要使用Proxy?1.授权机制 不同级别的用户对同一对象拥有不同的访问权利,如Jive论坛系统中,就使用P转载 2014-06-05 11:04:59 · 333 阅读 · 0 评论 -
设计模式——代理模式(Ⅱ)
1:强制代理模式 普通代理模式和强制代理模式是代理模式的其中俩个部分。对于这俩个代理模式,我们采用一个类似事情解释下:在网络上的代理服务器分透明代理和普通代理;对于透明代理来说,字如其意,就是这个代理服务器对用户来说是透明的,用户根本不知道这个服务器的存在。而普通代理则是用户需要自己手动去设置代理服务器的ip,很显然,对于这点上,用户必须知道代理服务器的存在。现在对号入座:转载 2014-06-05 13:52:28 · 499 阅读 · 0 评论 -
请求发送者与接收者解耦——命令模式(四)
5 撤销操作的实现 在命令模式中,我们可以通过调用一个命令对象的execute()方法来实现对请求的处理,如果需要撤销(Undo)请求,可通过在命令类中增加一个逆向操作来实现。扩展除了通过一个逆向操作来实现撤销(Undo)外,还可以通过保存对象的历史状态来实现撤销,后者可使用备忘录模式(Memento Pattern)来实现。转载 2014-06-23 16:29:16 · 539 阅读 · 0 评论 -
请求发送者与接收者解耦——命令模式(六)
7 宏命令 宏命令(Macro Command)又称为组合命令,它是组合模式和命令模式联用的产物。宏命令是一个具体命令类,它拥有一个集合属性,在该集合中包含了对其他命令对象的引用。通常宏命令不直接与请求接收者交互,而是通过它的成员来调用接收者的方法。当调用宏命令的execute()方法时,将递归调用它所包含的每个成员命令的execute()方法,一个宏命令的成员可以是简单命令,转载 2014-06-23 16:32:14 · 353 阅读 · 0 评论 -
请求发送者与接收者解耦——命令模式(三)
4 命令队列的实现 有时候我们需要将多个请求排队,当一个请求发送者发送一个请求时,将不止一个请求接收者产生响应,这些请求接收者将逐个执行业务方法,完成对请求的处理。此时,我们可以通过命令队列来实现。 命令队列的实现方法有多种形式,其中最常用、灵活性最好的一种方式是增加一个CommandQueue类,由该类来负责存储多个命令对象,而不同的命令对象可以对应不同的请求接收转载 2014-06-23 16:25:34 · 404 阅读 · 0 评论 -
请求发送者与接收者解耦——命令模式(二)
3 完整解决方案 为了降低功能键与功能处理类之间的耦合度,让用户可以自定义每一个功能键的功能,Sunny软件公司开发人员使用命令模式来设计“自定义功能键”模块,其核心结构如图4所示: 图4自定义功能键核心结构图 在图4中,FBSettingWindow是“功能键设置”界面类,FunctionButton充当请求调用者,Command充当抽象命令类,M转载 2014-06-23 16:04:00 · 371 阅读 · 0 评论 -
请求发送者与接收者解耦——命令模式(一)
装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关闭,例如电灯或者排气扇。在购买开关时,我们并不知道它将来到底用于控制什么电器,也就是说,开关与电灯、排气扇并无直接关系,一个开关在安装之后可能用来控制电灯,也可能用来控制排气扇或者其他电器设备。开关与电器之间通过电线建立连接,如果开关打开,则电线通电,电器工作;反之,开关关闭,电线断电,电器停止工作。相同的开关可以通过不转载 2014-06-23 16:02:10 · 402 阅读 · 0 评论 -
设计模式——单例模式
7.1 我是皇帝我独苗 自从秦始皇确立了皇帝这个位置以后,同一时期基本上就只有一个人孤零零的坐这个位置。这种情况下臣民们也好处理,大家叩拜、谈论的时候只要提及皇帝,每个人都知道指的是谁,而不用在皇帝前前面加上特定的称呼,如张皇帝,李皇帝。这一个过程反应到设计领域就是,要求一个类只能生成一个对象(皇帝),所有对象对它的依赖都是相同的,因为只有一个对象,大家对它的脾气和习性都非常了解,建立健壮稳转载 2014-06-05 15:37:24 · 458 阅读 · 0 评论 -
请求发送者与接收者解耦——命令模式(五)
6 请求日志 请求日志就是将请求的历史记录保存下来,通常以日志文件(Log File)的形式永久存储在计算机中。很多系统都提供了日志文件,例如Windows日志文件、Oracle日志文件等,日志文件可以记录用户对系统的一些操作(例如对数据的更改)。请求日志文件可以实现很多功能,常用功能如下: (1)“天有不测风云”,一旦系统发生故障,日志文件可以为系统提供一种恢转载 2014-06-23 16:31:04 · 367 阅读 · 0 评论 -
设计模式6大原则
设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使转载 2015-02-28 15:29:23 · 732 阅读 · 1 评论