自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SunnyMarkLiu

悟已往之不谏 知来者之可追

转载 扩展系统功能——装饰模式(四):透明与半透明装饰模式,装饰模式注意事项,装饰模式总结

12.4 透明装饰模式与半透明装饰模式       装饰模式虽好,但存在一个问题。如果客户端希望单独调用具体装饰类新增的方法,而不想通过抽象构件中声明的方法来调用新增方法时将遇到一些麻烦,我们通过一个实例来对这种情况加以说明: 在Sunny软件公司开发的Sunny OA系统...

2015-09-13 12:10:33

阅读数 2198

评论数 2

转载 扩展系统功能——装饰模式(三):图形界面构件库的装饰模式解决方案

12.3 完整解决方案        为了让系统具有更好的灵活性和可扩展性,克服继承复用所带来的问题,Sunny公司开发人员使用装饰模式来重构图形界面构件库的设计,其中部分类的基本结构如图12-4所示: 图12-4 图形界面构件库结构图       在图12-4中,Component...

2015-09-13 10:46:27

阅读数 677

评论数 0

转载 扩展系统功能——装饰模式(二):装饰模式概述

12.2 装饰模式概述       装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具有防潮的功能,而且用户可以根据需要给它增加不同类型的相框,甚至可以在一个小相框的外面再套一个大...

2015-09-13 10:34:11

阅读数 428

评论数 0

转载 扩展系统功能——装饰模式(一):图形界面构件库的设计

尽管目前房价依旧很高,但还是阻止不了大家对新房的渴望和买房的热情。如果大家买的是毛坯房,无疑还有一项艰巨的任务要面对,那就是装修。对新房进行装修并没有改变房屋用于居住的本质,但它可以让房子变得更漂亮、更温馨、更实用、更能满足居家的需求。在软件设计中,我们也有一种类似新房装修的技术可以对已有对象(新...

2015-09-13 10:11:44

阅读数 1314

评论数 0

转载 建造者模式(三):关于Director的进一步讨论,建造者模式总结

8.4 关于Director的进一步讨论        指挥者类Director在建造者模式中扮演非常重要的作用,简单的Director类用于指导具体建造者如何构建产品,它按一定次序调用Builder的buildPartX()方法,控制调用的先后次序,并向客户端返回一个完整的产品对象。下面我...

2015-09-12 20:55:41

阅读数 1339

评论数 0

转载 建造者模式(二):游戏角色设计的建造者模式解决方案

8.3完整解决方案       Sunny公司开发人员决定使用建造者模式来实现游戏角色的创建,其基本结构如图8-3所示: 图8-3 游戏角色创建结构图       在图8-3中,ActorController充当指挥者,ActorBuilder充当抽象建造者,HeroBuilder、An...

2015-09-12 20:40:00

阅读数 1346

评论数 0

转载 复杂对象的组装与创建——建造者模式(一):游戏角色设计,建造者模式概述

没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户,这是建造者模式需要解决的问题。建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式为客户端返回的不是一个简单的产品,...

2015-09-12 20:21:56

阅读数 1186

评论数 0

转载 职责链模式(四):纯与不纯的职责链模式,职责链模式总结

16.4 纯与不纯的职责链模式       职责链模式可分为纯的职责链模式和不纯的职责链模式两种:          (1) 纯的职责链模式       一个纯的职责链模式要求一个具体处理者对象只能在两个行为中选择一个:要么承担全部责任,要么将责任推给下家,不允许出现某一个具体处理者对象...

2015-09-07 18:34:30

阅读数 444

评论数 0

转载 职责链模式(三):采购单分级审批的职责链模式解决方案

16.3 完整解决方案       为了让采购单的审批流程更加灵活,并实现采购单的链式传递和处理,Sunny公司开发人员使用职责链模式来实现采购单的分级审批,其基本结构如图16-3所示:        在图16-3中,抽象类Approver充当抽象处理者(抽象传递者),Director、V...

2015-09-07 18:18:37

阅读数 1100

评论数 0

转载 职责链模式(二):职责链模式概述

16.2 职责链模式概述       很多情况下,在一个软件系统中可以处理某个请求的对象不止一个,例如SCM系统中的采购单审批,主任、副董事长、董事长和董事会都可以处理采购单,他们可以构成一条处理采购单的链式结构,采购单沿着这条链进行传递,这条链就称为职责链。职责链可以是一条直线、一个环或者一个...

2015-09-07 18:04:17

阅读数 442

评论数 0

转载 职责链模式(一):采购单的分级审批

“对二”,“过”,“过”……这声音熟悉吗?你会想到什么?对!纸牌。在类似“斗地主”这样的纸牌游戏中,某人出牌给他的下家,下家看看手中的牌,如果要不起上家的牌则将出牌请求再转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初的出牌者可以打出新的牌。在这个过程中,牌作为一个请...

2015-09-07 17:53:45

阅读数 1801

评论数 0

转载 TCP-IP协议详解(11) 涅槃 (TCP重新发送)

TCP协议是一个可靠的协议。它通过重新发送(retransmission)来实现TCP片段传输的可靠性。简单的说,TCP会不断重复发送TCP片段,直到片段被正确接收。 TCP片段丢失   TCP头部的checksum 接收方(receiver)可以通过校验TCP片段头部中checksum区...

2015-09-07 16:28:35

阅读数 540

评论数 0

转载 TCP-IP协议详解(10) 魔鬼细节 (TCP滑窗管理)

在阅读“TCP-IP协议详解”系列文章之前,建议阅读以下两篇文章,以便对互联网协议有个快速的全局了解和把握! 互联网协议入门(一) 互联网协议入门(二) 在TCP协议与”流”通信中,我们建立了滑窗(sliding window)的基本概念。通过滑窗与ACK的配合,我们一方面实现了TC...

2015-09-07 16:15:30

阅读数 535

评论数 0

转载 迭代器模式(六):迭代器模式总结

6 迭代器模式总结        迭代器模式是一种使用频率非常高的设计模式,通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负责存储数据,而遍历数据由迭代器来完成。由于很多编程语言的类库都已经实现了迭代器模式,因此在实际开发中,我们只需要直接使用Java等语言已定义好的迭代器即...

2015-09-03 22:21:21

阅读数 485

评论数 0

转载 迭代器模式(五):JDK内置迭代器的使用

5 JDK内置迭代器        为了让开发人员能够更加方便地操作聚合对象,在Java等编程语言中都提供了内置迭代器。在Java集合框架中,常用的List和Set等聚合类都继承(或实现)了java.util.Collection接口,在Collection接口中声明了如下方法(部分): ...

2015-09-03 22:14:44

阅读数 1101

评论数 0

转载 迭代器模式(四):使用内部类实现迭代器

4 使用内部类实现迭代器        在迭代器模式结构图中,我们可以看到具体迭代器类和具体聚合类之间存在双重关系,其中一个关系为关联关系,在具体迭代器中需要维持一个对具体聚合对象的引用,该关联关系的目的是访问存储在聚合对象中的数据,以便迭代器能够对这些数据进行遍历操作。        除了使...

2015-09-03 21:56:29

阅读数 399

评论数 0

转载 迭代器模式(三):销售管理系统中数据的遍历的迭代器模式解决方案

3 完整解决方案        为了简化AbstractObjectList类的结构,并给不同的具体数据集合类提供不同的遍历方式,Sunny软件公司开发人员使用迭代器模式来重构AbstractObjectList类的设计,重构之后的销售管理系统数据遍历结构如图4所示: 图4 销售管理系统...

2015-09-03 17:55:45

阅读数 961

评论数 0

转载 迭代器模式(二):迭代器模式概述

2 迭代器模式概述        在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被称之为“迭代器”的对象中...

2015-09-03 17:42:07

阅读数 587

评论数 0

转载 迭代器模式(一):销售管理系统中数据的遍历

20世纪80年代,那时我家有一台“古老的”电视机,牌子我忘了,只记得是台黑白电视机,没有遥控器,每次开关机或者换台都需要通过电视机上面的那些按钮来完成,我印象最深的是那个用来换台的按钮,需要亲自用手去旋转(还要使点劲才能拧动),每转一下就“啪”的响一声,如果没有收到任何电视频道就会出现一片让人眼花...

2015-09-03 16:57:00

阅读数 1367

评论数 0

转载 代理模式之cglib动态代理

cglib动态代理 一、原理       代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。JDK的动态代理用起来简单,但它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如...

2015-09-02 21:48:32

阅读数 561

评论数 0

原创 代理模式(五)JDK动态代理深入分析

JDK动态代理实现的核心技术是java反射机制,其主要的两个类是:Proxy、InvocationHandler。使用java.lang.reflect.Proxy类可以动态实现接口作为代理类。 一. Creating Proxies 使用Proxy.newProxyInstance()方法创建动...

2015-09-02 18:18:09

阅读数 2131

评论数 0

转载 代理模式(四):代理模式效果与适用场景

15.7 代理模式效果与适用场景        代理模式是常用的结构型设计模式之一,它为对象的间接访问提供了一个解决方案,可以对对象的访问进行控制。代理模式类型较多,其中远程代理、虚拟代理、保护代理等在软件开发中应用非常广泛。   15.7.1 模式优点        代理模式的共同优点如...

2015-09-01 15:43:27

阅读数 1698

评论数 0

转载 代理模式(三):远程代理,虚拟代理,缓冲代理

15.4 远程代理       远程代理(Remote Proxy)是一种常用的代理模式,它使得客户端程序可以访问在远程主机上的对象,远程主机可能具有更好的计算性能与处理速度,可以快速响应并处理客户端的请求。远程代理可以将网络的细节隐藏起来,使得客户端不必考虑网络的存在。客户端完全可以认为被代理...

2015-09-01 15:25:00

阅读数 1256

评论数 0

转载 代理模式(二):代理模式应用实例(收费商务信息查询系统)

15.3 代理模式应用实例        下面通过一个应用实例来进一步学习和理解代理模式。        1. 实例说明        某软件公司承接了某信息咨询公司的收费商务信息查询系统的开发任务,该系统的基本需求如下:        (1) 在进行商务信息查询之前用...

2015-09-01 15:03:03

阅读数 1055

评论数 0

转载 代理模式(一):代理模式概述,代理模式结构与实现

代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用...

2015-09-01 14:06:35

阅读数 1101

评论数 0

提示
确定要删除当前文章?
取消 删除