摘要: 20.4 中介者模式总结 中介者模式将一个网状的系统结构变成一个以中介者对象为中心的星形结构,在这个星型结构中,使用中介者对象与其他对象的一对多关系来取代原有对象之间的多对多关系。中介者模式在事件驱动类软件中应用较为广泛,特别是基于GUI(GraphicalUserInterface,... 阅读全文
posted @ 2013-11-12 13:05 Wishmeluck 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 20.4 中介者与同事类的扩展 Sunny软件公司CRM系统的客户对“客户信息管理窗口”提出了一个修改意见:要求在窗口的下端能够及时显示当前系统中客户信息的总数。修改之后的界面如图20-9所示:图20-9修改之后的“客户信息管理窗口”界面图 从图20-9中我们不难发现,可以... 阅读全文
posted @ 2013-11-12 12:45 Wishmeluck 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 20.3 完整解决方案 为了协调界面组件对象之间的复杂交互关系,Sunny公司开发人员使用中介者模式来设计客户信息管理窗口,其结构示意图如图20-7所示:图20-7引入了中介者类的“客户信息管理窗口”结构示意图 图20-7只是一个重构之后的结构示意图,在具体实现时,为了确保系统... 阅读全文
posted @ 2013-11-12 12:42 Wishmeluck 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 20.2 中介者模式概述 如果在一个系统中对象之间的联系呈现为网状结构,如图20-4所示。对象之间存在大量的多对多联系,将导致系统非常复杂,这些对象既会影响别的对象,也会被别的对象所影响,这些对象称为同事对象,它们之间通过彼此的相互作用实现系统的行为。在网状结构中,几乎每个对象都需要... 阅读全文
posted @ 2013-11-12 12:41 Wishmeluck 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 腾讯公司推出的QQ作为一款免费的即时聊天软件深受广大用户的喜爱,它已经成为很多人学习、工作和生活的一部分(不要告诉我你没有QQ哦,)。在QQ聊天中,一般有两种聊天方式:第一种是用户与用户直接聊天,第二种是通过QQ群聊天,如图20-1所示。如果我们使用图20-1(A)所示方式,一个用户如果要与别... 阅读全文
posted @ 2013-11-12 12:40 Wishmeluck 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 原文地址:文件压缩加密">DELPHI 文件压缩加密作者:Summer-Lucky-bing1、 系统功能 1)、数据压缩 使用DELPHI提供的两个流类(TCompressionStream和TDecompressionStream)来完成数据的压缩和解压缩。2)、数据加密压缩 通过Del... 阅读全文
posted @ 2013-11-12 09:43 Wishmeluck 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 9.6缺省适配器 缺省适配器模式是适配器模式的一种变体,其应用也较为广泛。缺省适配器模式的定义如下:缺省适配器模式(Default AdapterPattern):当不需要实现一个接口所提供的所有方法时,可先设计一个抽象类实现该接口,并为接口中每个方法提供一个默认实现(空... 阅读全文
posted @ 2013-11-12 09:27 Wishmeluck 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 9.4 类适配器 除了对象适配器模式之外,适配器模式还有一种形式,那就是类适配器模式,类适配器模式和对象适配器模式最大的区别在于适配器和适配者之间的关系不同,对象适配器模式中适配器和适配者之间是关联关系,而类适配器模式中适配器和适配者是继承关系,类适配器模式结构如图9-5所示:图9-... 阅读全文
posted @ 2013-11-12 09:24 Wishmeluck 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 9.3 完整解决方案 Sunny软件公司开发人员决定使用适配器模式来重用算法库中的算法,其基本结构如图9-4所示:图9-4 算法库重用结构图 在图9-4中,ScoreOperation接口充当抽象目标,QuickSort和BinarySearch类充当适配者,Operatio... 阅读全文
posted @ 2013-11-12 09:24 Wishmeluck 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(ACAdapter),俗称充电器或变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容,如图9-1所示:转">图9-1电源适配器示意图 在软... 阅读全文
posted @ 2013-11-12 09:23 Wishmeluck 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 6 请求日志 请求日志就是将请求的历史记录保存下来,通常以日志文件(LogFile)的形式永久存储在计算机中。很多系统都提供了日志文件,例如Windows日志文件、Oracle日志文件等,日志文件可以记录用户对系统的一些操作(例如对数据的更改)。请求日志文件可以实现很多功能,常用功能... 阅读全文
posted @ 2013-11-12 09:22 Wishmeluck 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 5 撤销操作的实现 在命令模式中,我们可以通过调用一个命令对象的execute()方法来实现对请求的处理,如果需要撤销(Undo)请求,可通过在命令类中增加一个逆向操作来实现。扩展除了通过一个逆向操作来实现撤销(Undo)外,还可以通过保存对象的历史状态来实现撤销,后者可使用备忘录模... 阅读全文
posted @ 2013-11-12 09:22 Wishmeluck 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 4命令队列的实现 有时候我们需要将多个请求排队,当一个请求发送者发送一个请求时,将不止一个请求接收者产生响应,这些请求接收者将逐个执行业务方法,完成对请求的处理。此时,我们可以通过命令队列来实现。 命令队列的实现方法有多种形式,其中最常用、灵活性最好的一种方式是增加一个Co... 阅读全文
posted @ 2013-11-12 09:21 Wishmeluck 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 3完整解决方案 为了降低功能键与功能处理类之间的耦合度,让用户可以自定义每一个功能键的功能,Sunny软件公司开发人员使用命令模式来设计“自定义功能键”模块,其核心结构如图4所示: 图4自定义功能键核心结构图 在图4中,FBSettingWindow是“功能键设置”界面类,... 阅读全文
posted @ 2013-11-12 09:21 Wishmeluck 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 7 宏命令 宏命令(MacroCommand)又称为组合命令,它是组合模式和命令模式联用的产物。宏命令是一个具体命令类,它拥有一个集合属性,在该集合中包含了对其他命令对象的引用。通常宏命令不直接与请求接收者交互,而是通过它的成员来调用接收者的方法。当调用宏命令的execute()方法... 阅读全文
posted @ 2013-11-12 09:20 Wishmeluck 阅读(341) 评论(0) 推荐(0) 编辑