自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 设计模式讨论之abstract factory篇

设计模式讨论之abstract factory篇有人说过,“不写1M行代码,不能看设计模式。”但似乎设计模式并非那么神奇,下面用笔者的一点粗浅认识,讨论一下abstract factory设计模式的主要部分。首先,为什么要用设计模式?GOF的设计模式主要是用来减小耦合和提高复用的。而面向对象的主要原则就是能private的,就不要protected;能protected,就不要public

2002-09-22 12:12:00 2265 2

原创 EJB设计模式之Data Transfer Object

Data Transfer Object 在一个ejb系统中的客户端层需要一种向服务器往返 传输大块(bulk)数据的方法。 客户端怎样能和服务器交换大块数据而无需多个细粒 度网络调用呢? 在一个分布式应用中,客户端和服务器交互通常可能 有两个原因。第一个是从服务器上读取一些数据来显 示;第二个是通过创建,更新,删除数据来改变服务 器上的数据。在一个ejb环境,这些类型的操作通常 涉及和客户端(s

2002-07-15 09:33:00 4476

原创 EJB设计模式(第二版)之EJB Command

EJB Command 一个ejb客户端为了完成一个用例需要执行商业逻辑。 怎样让一个开发者用一个轻量级的态度实现一个用例的 商业逻辑,使客户端和ejb解耦并且用一个事务和一次 网络调用执行用例? 设计ejb系统时的一个重要的架构决定是把商业逻辑 放到什么地方?一个用例的商业逻辑是代表你的领域 模型中的合适的方法或跨多个其它entity bean 和/或 session bean执行逻辑(工作流逻

2002-07-08 09:48:00 2042

原创 EJB设计模式(第二版)之Message Facade

message facade 一个ejb客户端想要在一个环境的用例中调用多个ejb的 方法,并且不需要从服务器的立即的反映。 怎样才能让ejb客户端在一个事务中调用多个session bean或entity bean的方法,不需要被阻塞并且等待 每个bean的反映? 特别在大型系统中,伸缩性指明一个用例的商业逻辑 与客户端的分离执行,不需要客户端等待执行完毕。 这种类型的行为,叫做异步行为,允

2002-07-01 09:40:00 1960

原创 用32行代码表示16个设计模式

为了演示以下16个模式,用了下面32行代码。iterator,adapter,interpreter,proxy,state,visitor,command,bridge,chain of responsibility,composite,flyweight,strategy,decorator,mediator,memento,observervoid main(){for(i=0;i  if

2002-06-22 17:38:00 1865 1

原创 中国队失利原因之Bad Smell篇

中国队失利原因之Bad Smell篇1.Duplicated Code米卢使用怪阵,采用两个右后卫,使本来是替补,防守能力弱的徐云龙打右后卫,当孙继海受伤后,徐自然也防不住右路的进攻,而且无人替换。2.Long Method && Large Class孙继海本来是打右后卫的,不擅长于防对方的犯规,保护自己,结果早早下场为后来的失利埋下祸根。徐云龙老是前插,和跑到中后卫的位置,造成对方第二

2002-06-06 09:42:00 1359

原创 成功模式(pattern)作家的七个习惯(3)(by GOF)

习惯三:开始时做得更具体(Being Concrete Early)在我们的模式中,“意图”部分表现得更直接明了(up-front)。这是因为人们对先提出具体的术语,然后才是抽象术语理解得更好一些。“意图”部分的具体例子给读者一个问题的参考和解决方案的框架。这个部分演示的另一个方面是为什么其它对这个问题的解决方法失败了,同样用具体的术语。把“意图”部分作为一个介绍,读者能更好的理解(appreci

2002-05-27 09:33:00 1291

原创 成功模式(pattern)作家的七个习惯(4)(by GOF)

习惯四:保持模式独一无二和优点突出(Keeping Patterns Distinct and Complementary)当你开发多个模式时有一个趋向需要避免。当你写一个模式时,可能趋向于在细节和口径(scope)同时增长。在这时很容易忘记其它模式。模式之间的区别结果变得模糊了,使别人无法分组(collectively)理解模式。它们开始在口径和目的上互相重叠。这可能对作者来说非常清楚,而对新手

2002-05-27 09:33:00 1317

原创 成功模式(pattern)作家的七个习惯(5)(by GOF)

习惯五:有效的表达。(Presenting Effectively)你的模式的质量取决于你表达它们好不好。你可能发现世界上最好的模式,但它将不会帮助任何人除非你有效的表达它们。用“表达“(presenting)这个词我表示两件事:打印设置(typesetting)和写作风格。好的打印设置是页面设置(page layout),预览打印(typography),图象(graphics)的技巧的事,而不

2002-05-27 09:32:00 1408

原创 成功模式(pattern)作家的七个习惯(6)(by GOF)

习惯六:无拘束的迭代(Iterating Tirelessly)你不能在第一次就得到一个模式。你甚至不可能在最初10次就得到正确的模式。实际上,你可能永远不会得到完全正确的模式。模式写作是一个永远不会停止(on-going)的过程。这个领域是新的事实不会使事情好转。不过即使它不是.....甚至有很多模式的好的例子和书帮助你写它们,模式开发(像任何其他种类的开发)将是一个迭代的过程。期望写和重写你的

2002-05-27 09:30:00 1204

原创 成功模式(pattern)作家的七个习惯(7)(by GOF)

习惯七:收集和采纳反馈(Collecting and Incorporating Feedback)Cervantes是对的:“对布丁的验证就是在吃它的过程中”(The Proof of Pudding is in theeating)。对一个模式的测试来自于对它的实际应用。实际上,没有一个模式能被信任,直到除了它的作者外的其他人使用了它。模式有潜藏危机的特性(insidious property

2002-05-27 09:28:00 1368

原创 成功模式(pattern)作家的七个习惯(8)(by GOF)

No Silver Bullet当然采用这些习惯不会保证你成为一个成功的模式作家。而且上面所列的也不完整。不过至少它能帮助你有成效的集中你的努力。你的模式越好,它们的影响就越大。然而,不是说所有人都要成为模式作家。模式写作包括一个不小的投资,而且不是所有人都能正确表达它。所有人应该尝试模式写作一次,因为你不能知道你是否擅长于模式写作。当时间流逝,然而,我希望模式作家的数目被模式用户的数目缩减---

2002-05-27 09:28:00 1328

原创 最新EJB设计模式中文版之Session Facade(会话外观)

session facade一个EJB客户端为了完成一个用例需要执行一个商业逻辑。EJB客户端怎样才能在一个事务(transaction)和一个大批(bulk)网络调用中执行一个用例的商业逻辑呢?为了执行一个典型的用例的商业逻辑,多个服务器端对象(如session或entity bean)通常需要被存取和可能的修改。问题是session和entity bean的多个细粒度(fine-grain

2002-05-27 09:26:00 4067 1

原创 成功模式(pattern)作家的七个习惯(0)(by GOF)

成功模式作家的七个习惯如果你认为OO开发很难做好,那么试试模式开发!我心中的数学家喜欢把它看作OO设计的“集成”:它是一段时间应用的无数小经验的集和。然而,模式开发比我在微积分课上所学的要难得多。积分并不会去干扰另一个积分,它让你独立的解决它们。(虽然知道怎么解一个经常能帮助你去解其它的。)一个模式,相反,不是工作在一个真空管中。它只提供对一个问题的解决方案;因此它要和其它模式合作。所以一个模

2002-05-20 09:42:00 1348

原创 成功模式(pattern)作家的七个习惯(1)(by GOF)

习惯一:让时间来反映(reflect)。在模式写作中的最重要的活动就是反映(reflection)。Bruce Anderson,最早对我们的工作有影响的人,曾经很多年强调这一点圣谕(mantra)。让时间来阶段性的反映你所做的东东。想想你所做的系统,你所遇到的问题,和你是怎么解决(或没解决)它们的。这些阻碍是在日益变短的开发时代中的所有而且是不可想象的。不过反映是紧迫的。有比无头脑的去h

2002-05-20 09:40:00 1010

原创 成功模式(pattern)作家的七个习惯(2)(by GOF)

习惯二:坚持(adhering to)一个结构一旦你有了原始素材,你怎么把它们写成模式的形式(form)呢?好,首先,不要假设只有一种模式的形式。没有一种形式适合于所有人。一些人喜欢像Alexander那样更通用(prosey)的风格。另一些喜欢像>中使用的更细粒度(fine-grained)方法。还有一些使用完全不同的结构。这些结构所共享的特性只是它们的结构。如果有一个大多数人同意的

2002-05-20 09:40:00 1157

原创 最新的C++之父访谈录(2002年4月版)

RW:C++和internet时代相关吗? BS:当然,C++代码不适合于下载到一个不安全的计算机中; 不过大多数计算机都不是这样的。 C++是关于系统编程和有一些资源约束和(或)一些严重的 性能需求的最好的语言。Google是一个例子。操作小应用 (gadgets)的嵌入式系统是另一个例子。 并且,有许多程序并不直接和internet交互。对于这些程序 世界并没有什么太大的变化。 RW:对于.n

2002-05-13 09:30:00 1139

原创 关于新手学习ejb的建议

首先ejb绝对是最高端的东东,国内要广泛采用可能还得几年, 用delphi做3层绝对要性能高得多,而且国内的公司都比较 倾向于用delphi。 如果你一定要学,可以有如下几个参考资料, 不过首先你必须要把java的基础的东东弄懂, 学习ejb还需要很多基础知识的辅助,因为 你写的不光是bean,有时还需要写一些基本类来辅助, 最好先去过个scjp,准备时你会发现你还有很

2002-05-08 10:01:00 1356

原创 使用JBuilder来制作EXE文件(白云原创)

倘若说看到标题后,以为jb真的提供了一种把java应用程序打包成exe文件的主流方法的话 , 你会失望的,下面的一个小技巧只是一个技巧而已。   使用JBuilder来制作可执行文件 ---白云黄鹤 jack 这个是Borland不公开的使用技巧,能够通过JBuilder来制作exe文件来启动Java文件。JBui lder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动Jav

2002-05-04 18:00:00 8800

原创 深入Delphi编程

                                                深入Delphi编程                                                       左轻侯    刚刚接触的Delphi的朋友,可能最感兴趣的就是它丰富、强大的VCL(可视化构件库)。仅仅向窗体上扔几个构件,甚至不用动手写代码,就能很容易地做出一个有

2002-05-02 10:27:00 1516

原创 减小耦合(by martin fowler)

最早的设计质量的标志之一就是耦合。它在最早的结构化设计中和内聚一起出现,并且从未消失过。我在考虑软件设计时仍然总是想到它。有几种方法描述耦合,不过它可以缩减成这样:如果在一个程序中的一个模块的变化需要另一个模块的变化,那么耦合存在了。这可能是两个模块在一点做相似的事情,因此在一个模块中的代码是另一个模块中的代码的有影响的重复。这是一个代码重复的最主要和明显的罪恶的例子。重复总是意味着耦合,因为

2002-04-29 09:24:00 1188

原创 关于use case的误区

关于use case的误区 use case是从系统外部看提供给外部的角色的 “有价值”的东东(通常用动词开头),主要是从 用户的角度来看,切忌不要把use case作为系统 的功能的划分,因为那样是作为程序员的角度来看。 什么叫“有价值”呢?就是用户通过完成对系统的 一系列的操作,满足了他的一项需求(可粗可细) 。从这个角度来说,只要你的use case写得足够好 的话,用户的需求应该是不会变的

2002-04-22 09:27:00 967

原创 足球战术之低耦合,高内聚及重构篇

接上回:http://www.csdn.net/Develop/read_article.asp?id=12058足球战术之低耦合,高内聚及重构篇 假设前锋和前卫之间的传球是必需的, 那么有两种传球的方案,1.后卫传球 给前卫和前锋。2.后卫传球给前卫, 然后前卫传球给前锋。后者比前者 的系统总耦合度要低,并且后卫的 内聚度要高。这有什么好处呢?这意 味着前锋可单独复用,而无须依赖 于助攻

2002-04-15 09:14:00 1309

原创 SMTH Java FAQ (4) 2D作图以及文字处理

1 如何在2D Graphics中使用双缓冲?     首先你需要知道的是,如果你是在一个Swing组件上作图的画,Swing已经自动的为你   实现了双缓冲,因此没有必要在这个问题上上脑筋了。//感谢上帝     如果你使用的是AWT组件的话,你可以根据下面的流程使用双缓冲:         利用该组件之createImage()方法创建一个BufferedImage对象       利用Buf

2002-04-15 09:09:00 1575

原创 Session Facade with EJB && .net

Session FacadeProvides a coarse grained facade on fine grained objects to improve efficiency over a network. In an object-oriented model, you do best with small objects that have small metho

2002-04-15 09:08:00 8736

原创 Lazy Load with EJB

Lazy LoadAn object that doesnt contain all of the data you need, but knows how to get it. class Supplier... public List getProducts() { if (products == null) products = Product.findForS

2002-04-15 09:08:00 1538

原创 什么时候在EJB系统中使用XML

什么时候在EJB系统中使用XML XML是一个非常流行的词,我们现在来讨论XML在EJB开发中的适用性。XML适用于以下几种情况: 1.作为对legacy系统的接口。如果你有数目巨大的legacy系统,或者你有一个很大的恐怖的的legacy系统,然后你将需要查看你从legacy系统收发的数据,这时候XML可以帮助你。不是去收发那个legacy系统能够懂的合适结构的数据,而是你能够为那个le

2002-01-25 09:29:00 1063

原创 足球战术之Factory Method篇

接上回:http://www.csdn.net/Develop/read_article.asp?id=12040使用工厂方法有以下好处,球员仅处理进球(product)接口,但每要产生一种新的进球方式,就必须让这个队员来学会这种方法,或者换个队员。球员基类在类中创建进球,而不是直接创建,为子类提供一个hook。提供平行的类层次。代码如下:class 球员{public:     virt

2002-01-22 11:33:00 1053

原创 足球战术->单刀赴会之prototype篇

接上回:http://www.csdn.net/Develop/read_article.asp?id=11949使用prototype模式,用其他队员牵制对手的注意力,然后带球队员通过个人技术甩脱对方的防守,单刀赴会得分(clone)。就像皇马在西甲半程时齐达内进的那个球。好处是在进攻进行时决定是否射门或改用其他方法;动态控制射门;改用不同球员来变化射门方式;减少进攻需要的队员数;动态换

2002-01-18 09:37:00 927

原创 足球战术之Builder篇

接上回:http://www.csdn.net/Develop/read_article.asp?id=11801使用builder模式,来多点进攻,可以避免abstract factory的进球方式已经定死的缺点,因为builder生产的产品差异很大,以至于无需定义一个抽象的父类,再就是很多人会把builder和observer弄混,以为subject就是director,observe

2002-01-13 14:30:00 1060

原创 重构模式3

refactoring Patterns:第三部分 内容:应用Refactoring需要考虑的问题数据库接口改变和Published Interface用Refactoring思想武装自己的设计编程语言支持Refactori

2002-01-05 18:19:00 1157

原创 重构模式4

refactoring Patterns:第四部分 内容:不应 Refactoring 的场合实施Refactoring可能碰到的阻碍以及解决方案学习Refactoring获得短期效益削减Refactoring的额外开销安全

2002-01-05 18:19:00 1283

原创 重构模式5

refactoring Patterns:第五部分 内容:增量迭代Moving Target拥抱变化-Refactoring和XP参考资料关于作者相关内容:该系列的其他部分

2002-01-05 18:19:00 1122

原创 重构模式6

refactoring Patterns:第六部分 内容:简化设计设计模式关于作者相关内容:该系列的其他部分Refactoring和软件设计 石一楹 (shiyiy

2002-01-05 18:19:00 1323

原创 重构模式7

refactoring Patterns:第七部分 内容:Refactoring 应用的场合Refactoring和命名参考资料关于作者相关内容:该系列的其他部分

2002-01-05 18:19:00 1128

原创 重构模式1

refactoring Patterns:第一部分 内容:介绍什么是Refactoring?Refactoring原则参考资料关于作者相关内容:该系列的其他部分

2002-01-05 18:17:00 1127

原创 重构模式2

refactoring Patterns:第二部分 内容:简化测试更简单的设计Refactoring增进软件可理解性Refactoring 改进了软件的设计Refactoring 帮助你寻找BugRefactoring 让您

2002-01-05 18:17:00 1324

原创 java中的高速缓存和连接池对访问数据库性能的影响

一.初识高速缓存和连接池   设想这样一种情形:你突然口渴,需要一杯水来缓解,从心情上来讲,当然是越快越好 了。通常,一杯水的产生包括从水源(井水、河水或江水、甚至海水等)抽取,通过管 道传输和设备净化,才到达你饮水的容器中。上述过程是必须的,但并不是每一杯水的 产生都必须把上述过程重复一次。你可以用一个大一点的容器(例如缸或罐等)来盛大 量的水,喝水之前分到杯子小部分中即可,你的代价只是把水从缸

2002-01-02 15:07:00 2657 1

原创 足球战术之iterator篇

接上回:http://www.csdn.net/develop/read_article.asp?id=11677使用iterator模式,让每个队员做iterator,每个位置做aggregate,有如下几个好处:1.每个位置支持不同的队员用不同方式遍历。2.简化了每个位置的接口,使其kiss,不用具有遍历的接口。3.在同一个位置支持多个队员同时遍历。代码如下:template clas

2002-01-02 15:05:00 1091

原创 Message Driven Bean Strategy

J2EE design strategies recommend that all business logic exposed to EJB clients should be placed in Stateless Session Beans. See Wrap Entity Beans with Session Beans (http://www.theserverside.co

2001-12-27 01:12:00 1089

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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