
Java设计模式
文章平均质量分 80
lin_bei
IMS——更软的软交换
展开
-
从“在快餐店吃饭”到Command模式(一)
生活中的Command模式之在快餐店吃饭 以下内容是来自>英文版,介绍Command模式那一章中的一个现实生活中的例子的部分内容,例子跟原文有点不一样,大部分是采用意译,有些地方可能翻译的不妥,还望指出.(假设你到一个快餐吃饭,简化后的流程大概像上图所示的:1:你作为一个顾客(Customer),把菜单(Order)递给服务员(Waitress),2:服务员(Waitress)拿着菜单(翻译 2006-09-03 00:36:00 · 2752 阅读 · 0 评论 -
从Decorator,Adapter模式看Java/IO库(二)
三 装饰模式的应用 学过装饰模式后,大家会发现,它在Java语言中最著名的应用莫过于Java I/O标准为库的设计了。这一节将以处理Byte流为例,看看装饰模式是怎样得到应用的。 为什么不用继承而用装饰模式 我们知道Java I/O库需要很多性能的各种组合,如果说这些性能的组合是通过继承方式来实现的话,那么每一种组合都需要一个类,这样就会出现大量重复性问题的出现,从而使类数目“爆炸原创 2006-08-16 15:49:00 · 2699 阅读 · 0 评论 -
设计模式(Design Patterns)笔记之Builder模式 yakuu(原作)
这篇文章转自yakuu的原作,写得相当精彩,很有独自的见解,看了以后收获很大,很喜欢他的这种风格~~概念:Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。---------------------------------------------------------------------------------------“嘿,Andy,转载 2006-08-15 12:04:00 · 1703 阅读 · 0 评论 -
一次愉快的“DAO模式之旅”(二)
五.DAO 中的异常处理 > 中的留言板小例子我还学到了DAO 中的异常处理,如何使DAO 更容易使用、更健壮及更易于维护,在实现 DAO 模式的异常处理时,一般我们都会考虑下面的问题: 1 DAO 的公共接口中的方法是否抛出检查过的异常?如果是的话,抛出何种检查过的异常? 2 在 DAO 实现类中如何处理异常? 在网上曾看到过一篇文章说,遵从以下这些原创 2006-08-11 12:37:00 · 1296 阅读 · 0 评论 -
从Decorator,Adapter模式看Java/IO库(一)
我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字原创 2006-08-15 22:31:00 · 2836 阅读 · 0 评论 -
深入探索Factory模式与Prototype模式的异同
本文转自 blackphoenix 原型模式与工厂模式的定义,本文不想在这讲太多,本文主要想在这讲一下对原型模式的一些误解--将原型模式等价于工厂模式; 为什么会产生这种误导呢?其实也不是我们的错,关键在于设计模式这本书以及网上的其它资料很喜欢将原型和工厂方法进行比较,从而导致我们误解了原型引入的本质意义。按我的理解,原型引入的根本原因就是在于它可以利用一个原型对象(在转载 2006-08-15 11:47:00 · 1511 阅读 · 0 评论 -
一次愉快的“DAO模式之旅”(三)
六.DAO工厂类的实现 在刚开始的时候设计DAO模式的结构时,我们按 一个典型的 DAO 实现有以下组件: 一个 DAO 工厂类 一个 DAO 接口 一个实现了 DAO 接口的具体类 数据传输对象(有时称为值对象) 如何才能使系统通过一种更加灵活地方式来使用不同的实现了 DAO 接口的具体类呢?以下将仿照Spring的bean工厂,实现一个简单的IOC容器,这种做法的目的原创 2006-08-11 15:56:00 · 2690 阅读 · 0 评论 -
再战MVC(二)
MVC模式在J2EE技术中的应用 MVC模式并不能自动保证一个结构设计是正确的,如何在一个系统的设计中正确地使用MVC架构模式与系统使用的技术有密切的关系。2EE中有几个核心的技术:JSP,JavaBean,Servlet,EJB,SessionBean,EntityBean构成了J2EE构架的基石,但是对于一个基于J2EE技术的Web应用来说,如何正确地使用MVC模式不是一句话就原创 2006-08-18 19:31:00 · 5358 阅读 · 2 评论 -
HeadFirst采访“工厂方法”和“抽象工厂”
>第四章的后面有段HeadFirst采访工厂模式中的工厂方法模式及抽象工厂模式,感觉对理解这两种模式很有帮助,大概的翻译了采访内容跟大家分享下~~ HeadFirst:哇,马上就要采访工厂模式中的两位老大了,这是我们的第一次接触啊,我现在心情很激动啊。 Factory Method:呃,你知道我自己是不太喜欢被你们把我和抽象工厂(Abstract Factory)混淆在一起。仅翻译 2006-08-14 13:26:00 · 2055 阅读 · 0 评论 -
应用Decorator模式的一个很好的实例
本文转自板桥里人 本文从一个案例分析设计角度,讨论了使用设计模式可以比较优雅地实现了质量、功能和性能的统一。很多人以为设计模式是抽象概念,实际上,设计模式是实战经验的总结,只有正确使用了设计模式,才明白设计模式真正的运用技巧,避免了过分设计或设计不足。 案例需求和问题 多个图片上传是很多系统的基本功能,一般图片是一个主体父对象的附属,如是商店的图片、是人物的图片。以下商品转载 2006-08-15 22:54:00 · 1891 阅读 · 0 评论 -
倾听来自观察者模式中两个成员的经典对话。。。
一.引子:观察者模式中两个成员的对话 > 第二章中在讲到观察者模式的时候有段很经典的,是观察者模式中两个角色Subject跟Observer的对话,以下称Subject为S,Observer为O(不是完全按里面翻译的): S:很高兴,为了改善咱两的关系,终于等到了今天这个机会跟Observer面对面地来交流。 O:哦,真的啊?我还以为您从来都原创 2006-08-12 18:20:00 · 2151 阅读 · 0 评论 -
设计一个具有健壮性,灵活性,可重用性的Web应用架构(一)--->实验总结
虽然这是一个功能很简单的基于Web的应用程序,但是经过认真地探索,最终设计出了具有健壮性,灵活性,可重用性的基于层模式的Web应用的架构。Ø 基于层模式的Web应用的架构中不同层的作用:1. 表示层:表示层就是客户端,为用户转换工作流层返回的结果。它包括客户端的软件组件、应用程序、Web浏览器等。这些不同形式的客户端能够以可视形式提供丰富、灵活的用户交原创 2006-12-10 22:33:00 · 4070 阅读 · 0 评论 -
设计一个具有健壮性,灵活性,可重用性的Web应用架构(二)--->实验总结
Ø 运用DAO模式来设计数据持层这个例子是作为那篇一次愉快的“DAO模式之旅”(一)的JDBC的实现版本,整个架构的设计跟那个例子差不多,不同的是,那篇用到的是开源持久化框架Hibernate来设计DAO层,并且对事务问题用Hibernate进行了封装和管理,而在这个实验里并没有汲及到DAO模式中2个常用的事务界定方式JDBC 事务跟JTA事务。l 为原创 2006-12-10 22:50:00 · 3077 阅读 · 0 评论 -
一次愉快的“DAO模式之旅”(一)
一 .有关DAO模式的介绍 业务对象只应该关注业务逻辑,不应该关心数据存取的细节。数据访问对象必须实现特定的持久化策略(如,基于JDBC或Hibernate的持久化逻辑),这样就抽出来了DAO层,作为数据源层,而之上的Domain Model层与之通讯而已,如果将那些实现了数据访问操作的所有细节都放入高层Domain model(领域模型)的话,系统的结构一定层次上原创 2006-08-10 21:30:00 · 3863 阅读 · 1 评论 -
软件设计模式的非软件例子(三)
行为模式--描述类和对象怎样交互和怎样分配职责 作者总结了十一种行为模式。这些模式可以在硬币分类银行、餐馆订餐、音乐、运输、汽车修理、自动售货机和家庭建筑中找到例子。 职责链(Chain of Responsibility)举例 职责链模式使得多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。机械硬币分拣银行使用职责链。这里并不是为每一种硬币分配一个滑槽,而是翻译 2006-09-09 21:45:00 · 2983 阅读 · 0 评论 -
软件设计模式的非软件例子(二)
结构性模式--处理类与对象的组合 作者总结了七个结构型模式,这些模式的例子可以在工具、住宅配线、数学、节日传统、零售目录和银行业中找到。适配器(Adapter)举例 适配器模式允许将一个类的接口转换成客户期望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作。扳手提供了一个适配器的例子。一个孔套在棘齿上,棘齿的每个边的尺寸是相同的。在美国典型的边长为 1/翻译 2006-09-09 19:41:00 · 1639 阅读 · 0 评论 -
软件设计模式的非软件例子(一)
摘要本文Michael Duell 著,为Wu译,出自> 软件设计模式来源于 Christopher Alexander的建筑学模式和对象运动。根据Alexander的观点,模式就是一个对于特定的系统的通用解决方案本身的重复。对象运动关注于将现实世界模化为软件内部的关系。基于这两个原因,软件设计模式对于真实世界的物体而言同样应当是可以重复的。这篇文章呈现了现实的世界中的非软件的模式实例翻译 2006-09-09 19:01:00 · 2053 阅读 · 0 评论 -
从“在快餐店吃饭”到Command模式(二)
附一个简单的实现代码:下面的表格是对应这个例子所涉及到的类跟方法对应到命令模式的标准名称: Waitress(服务员) invoker原创 2006-09-03 00:41:00 · 1587 阅读 · 0 评论 -
再战MVC(-)
前言 之所以说是再战,是因为在没有学习设计模式之前已经基于MVC体系结构做过一些项目,主要是小项目,当初理解MVC有一些困难。现在已经把Gof所说的相对简单但是最常见的这些设计模式: Abstract Factory Adapter Composite Decorator Factory Method Obs原创 2006-08-18 15:45:00 · 2611 阅读 · 1 评论