- 博客(69)
- 资源 (5)
- 收藏
- 关注
翻译 软件设计模式的非软件例子(三)
行为模式--描述类和对象怎样交互和怎样分配职责 作者总结了十一种行为模式。这些模式可以在硬币分类银行、餐馆订餐、音乐、运输、汽车修理、自动售货机和家庭建筑中找到例子。 职责链(Chain of Responsibility)举例 职责链模式使得多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。机械硬币分拣银行使用职责链。这里并不是为每一种硬币分配一个滑槽,而是
2006-09-09 21:45:00 2947
翻译 软件设计模式的非软件例子(二)
结构性模式--处理类与对象的组合 作者总结了七个结构型模式,这些模式的例子可以在工具、住宅配线、数学、节日传统、零售目录和银行业中找到。适配器(Adapter)举例 适配器模式允许将一个类的接口转换成客户期望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作。扳手提供了一个适配器的例子。一个孔套在棘齿上,棘齿的每个边的尺寸是相同的。在美国典型的边长为 1/
2006-09-09 19:41:00 1606
翻译 软件设计模式的非软件例子(一)
摘要本文Michael Duell 著,为Wu译,出自> 软件设计模式来源于 Christopher Alexander的建筑学模式和对象运动。根据Alexander的观点,模式就是一个对于特定的系统的通用解决方案本身的重复。对象运动关注于将现实世界模化为软件内部的关系。基于这两个原因,软件设计模式对于真实世界的物体而言同样应当是可以重复的。这篇文章呈现了现实的世界中的非软件的模式实例
2006-09-09 19:01:00 2014
原创 用简单的实例来实践TDD的核心思想
TDD(Test Driven Development),核心思想就是以测试的方式来驱动开发,它对传统的软件开发流程做了一个有效的调整。TDD的目的主要是为了保证类是为了其所赋予的功能、职责而存在,另一方面也是为了保证避免过度设计,还有就是为了将来的重构方便,为了持续集成存在能够有意义,测试不仅带来了软件质量的提升,也同时为软件提供了详尽的文档。(本文为精通Spring-Java轻
2006-09-09 17:25:00 4219
原创 从“在快餐店吃饭”到Command模式(二)
附一个简单的实现代码:下面的表格是对应这个例子所涉及到的类跟方法对应到命令模式的标准名称: Waitress(服务员) invoker
2006-09-03 00:41:00 1567
翻译 从“在快餐店吃饭”到Command模式(一)
生活中的Command模式之在快餐店吃饭 以下内容是来自>英文版,介绍Command模式那一章中的一个现实生活中的例子的部分内容,例子跟原文有点不一样,大部分是采用意译,有些地方可能翻译的不妥,还望指出.(假设你到一个快餐吃饭,简化后的流程大概像上图所示的:1:你作为一个顾客(Customer),把菜单(Order)递给服务员(Waitress),2:服务员(Waitress)拿着菜单(
2006-09-03 00:36:00 2734
转载 Jdk5.0新特性之Generic Types (泛型)
感觉本文是学习 Generic Types (泛型)的难得的好文章,通俗易懂。(转载) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0。这说明Java已经有大幅度的变化。本文将讲解JDK5.0支持的新功能-----Java的泛型. 目录 1. 介绍2. 定义简单Java泛型3. 泛型通配符 3.1有限制的通配符4.泛型与数据类型转换 4.1.消除
2006-08-31 14:04:00 1463
转载 候捷谈Java反射机制(三)
Java 源码改动办法 先前我曾提到,原本想借由“改动Java标准库源码”来测知Class object的生成,但由于其ctor原始设计为private,也就是说不可能透过这个管道生成Class object(而是由class loader负责生成),因此“在ctor中打印出某种信息”的企图也就失去了意义。 这里我要谈点题外话:如何修改Java标准库源码并让它反应到我们的应用
2006-08-30 12:27:00 1957
转载 候捷谈Java反射机制(二)
Java classes 组成分析首先容我以图3的java.util.LinkedList为例,将Java class的定义大卸八块,每一块分别对应图4所示的Reflection API。图5则是“获得class各区块信息”的程序示例及执行结果,它们都取自本文示例程序的对应片段。 package java.util; //(1)
2006-08-29 23:00:00 1694
转载 候捷谈Java反射机制(一)
Java反射机制 摘要Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields
2006-08-29 22:56:00 1812
转载 Java Annotation入门
在开发Java代码的时候,我们总是习惯于利用注释来表达代码中无法放置的一些东西,其中一些内容被JavaDoc用来产生帮助文档。只有帮助文档还是不够的,在越来越多的情况下,注释中的标记用来表达更多的含义。例如,在使用了xDoclet工具的项目中,特殊用途的各种xDoclet标记用于生成新的代码和对应的配置文件, Hibernate也是借助于@hibernate开头的xDocle来生成代码和
2006-08-28 22:14:00 2645
转载 用Struts建立MVC应用的介绍
在重新总结了Struts跟MVC模式的关系之后,在IBM Java开发者社区找到了一篇题为“用Struts建立MVC应用的介绍”,作为总结之后Struts内容的一个补充,看了感觉很好。(转载 部分节选)Struts的结构和处理流程简介Struts是Apache组织的一个项目,像其他的Apache组织的项目一样,它也是开放源码项目。Struts是一个比较好的MVC框架提供了对开发MV
2006-08-25 11:48:00 2017
原创 Struts与MVC模式
在我前面的那篇再战MVC(二)>>最后也说到了:MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,如果采用现成的MVC框架,在此之下进行开发,能够达到事半功倍的效果。因为如果说要想在一些有限的时间里构造出来一个正确并且是可维护性的应用程序,我们必须有一个好的工具或者框架来建立表现层, 纵观目前在开源社区中针对Web表现层的开源框架webwork,struts等,stru
2006-08-25 11:25:00 3802
转载 印度的软件工业(建议程序员必读)
本文转自hoplite的blog上的一篇文章:(转载开始)我在工作中,接触到印度软件公司开发出来的软件: 整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的代码一看,拖沓冗长,水平不咋样。我们自己的一些程序员就有怪话了,说他们水平真低。但是!印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文档。 而中国人在那里琢磨数据结构、算法,界面人
2006-08-23 22:49:00 2947 1
原创 再战MVC(二)
MVC模式在J2EE技术中的应用 MVC模式并不能自动保证一个结构设计是正确的,如何在一个系统的设计中正确地使用MVC架构模式与系统使用的技术有密切的关系。2EE中有几个核心的技术:JSP,JavaBean,Servlet,EJB,SessionBean,EntityBean构成了J2EE构架的基石,但是对于一个基于J2EE技术的Web应用来说,如何正确地使用MVC模式不是一句话就
2006-08-18 19:31:00 5299 2
原创 再战MVC(-)
前言 之所以说是再战,是因为在没有学习设计模式之前已经基于MVC体系结构做过一些项目,主要是小项目,当初理解MVC有一些困难。现在已经把Gof所说的相对简单但是最常见的这些设计模式: Abstract Factory Adapter Composite Decorator Factory Method Obs
2006-08-18 15:45:00 2585 1
原创 从Decorator,Adapter模式看Java/IO库(三)
四 适配器模式的应用 适配器模式是Java I/O库中第二个最为重要的设计模式。 InputStream原始流处理器中的适配器模式 InputStream类型的原始流处理器是适配器模式的应用。 ByteArrayInputStream是一个适配器类 ByteArrayInputStream继承了InputStream的接口,而封装了一个byte数组。换言之,它将一
2006-08-16 18:52:00 1891
原创 从Decorator,Adapter模式看Java/IO库(二)
三 装饰模式的应用 学过装饰模式后,大家会发现,它在Java语言中最著名的应用莫过于Java I/O标准为库的设计了。这一节将以处理Byte流为例,看看装饰模式是怎样得到应用的。 为什么不用继承而用装饰模式 我们知道Java I/O库需要很多性能的各种组合,如果说这些性能的组合是通过继承方式来实现的话,那么每一种组合都需要一个类,这样就会出现大量重复性问题的出现,从而使类数目“爆炸
2006-08-16 15:49:00 2660
转载 应用Decorator模式的一个很好的实例
本文转自板桥里人 本文从一个案例分析设计角度,讨论了使用设计模式可以比较优雅地实现了质量、功能和性能的统一。很多人以为设计模式是抽象概念,实际上,设计模式是实战经验的总结,只有正确使用了设计模式,才明白设计模式真正的运用技巧,避免了过分设计或设计不足。 案例需求和问题 多个图片上传是很多系统的基本功能,一般图片是一个主体父对象的附属,如是商店的图片、是人物的图片。以下商品
2006-08-15 22:54:00 1858
原创 从Decorator,Adapter模式看Java/IO库(一)
我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字
2006-08-15 22:31:00 2818
转载 设计模式(Design Patterns)笔记之Builder模式 yakuu(原作)
这篇文章转自yakuu的原作,写得相当精彩,很有独自的见解,看了以后收获很大,很喜欢他的这种风格~~概念:Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。---------------------------------------------------------------------------------------“嘿,Andy,
2006-08-15 12:04:00 1685
转载 深入探索Factory模式与Prototype模式的异同(续)
本文转自 blackphoenix 之所以写这篇续集,是因为,上篇文章登出后,自己才发现,上次对于工厂模式与原型模式的比较,仅仅只是限于用原型模式来模仿工厂模式的功能上,其实并未指出工厂模式与原形模式的真正差别。因此,本着把问题说清楚的初衷,便有了现在的这篇续。 在原先的那篇文章中,我曾提到,可以用Prototype来实现Factory的功能。但实际上,Prototype
2006-08-15 11:52:00 1311
转载 深入探索Factory模式与Prototype模式的异同
本文转自 blackphoenix 原型模式与工厂模式的定义,本文不想在这讲太多,本文主要想在这讲一下对原型模式的一些误解--将原型模式等价于工厂模式; 为什么会产生这种误导呢?其实也不是我们的错,关键在于设计模式这本书以及网上的其它资料很喜欢将原型和工厂方法进行比较,从而导致我们误解了原型引入的本质意义。按我的理解,原型引入的根本原因就是在于它可以利用一个原型对象(在
2006-08-15 11:47:00 1483
翻译 HeadFirst采访“工厂方法”和“抽象工厂”
>第四章的后面有段HeadFirst采访工厂模式中的工厂方法模式及抽象工厂模式,感觉对理解这两种模式很有帮助,大概的翻译了采访内容跟大家分享下~~ HeadFirst:哇,马上就要采访工厂模式中的两位老大了,这是我们的第一次接触啊,我现在心情很激动啊。 Factory Method:呃,你知道我自己是不太喜欢被你们把我和抽象工厂(Abstract Factory)混淆在一起。仅
2006-08-14 13:26:00 2012
原创 倾听来自观察者模式中两个成员的经典对话。。。
一.引子:观察者模式中两个成员的对话 > 第二章中在讲到观察者模式的时候有段很经典的,是观察者模式中两个角色Subject跟Observer的对话,以下称Subject为S,Observer为O(不是完全按里面翻译的): S:很高兴,为了改善咱两的关系,终于等到了今天这个机会跟Observer面对面地来交流。 O:哦,真的啊?我还以为您从来都
2006-08-12 18:20:00 2117
原创 一次愉快的“DAO模式之旅”(三)
六.DAO工厂类的实现 在刚开始的时候设计DAO模式的结构时,我们按 一个典型的 DAO 实现有以下组件: 一个 DAO 工厂类 一个 DAO 接口 一个实现了 DAO 接口的具体类 数据传输对象(有时称为值对象) 如何才能使系统通过一种更加灵活地方式来使用不同的实现了 DAO 接口的具体类呢?以下将仿照Spring的bean工厂,实现一个简单的IOC容器,这种做法的目的
2006-08-11 15:56:00 2655
原创 一次愉快的“DAO模式之旅”(二)
五.DAO 中的异常处理 > 中的留言板小例子我还学到了DAO 中的异常处理,如何使DAO 更容易使用、更健壮及更易于维护,在实现 DAO 模式的异常处理时,一般我们都会考虑下面的问题: 1 DAO 的公共接口中的方法是否抛出检查过的异常?如果是的话,抛出何种检查过的异常? 2 在 DAO 实现类中如何处理异常? 在网上曾看到过一篇文章说,遵从以下这些
2006-08-11 12:37:00 1279
原创 一次愉快的“DAO模式之旅”(一)
一 .有关DAO模式的介绍 业务对象只应该关注业务逻辑,不应该关心数据存取的细节。数据访问对象必须实现特定的持久化策略(如,基于JDBC或Hibernate的持久化逻辑),这样就抽出来了DAO层,作为数据源层,而之上的Domain Model层与之通讯而已,如果将那些实现了数据访问操作的所有细节都放入高层Domain model(领域模型)的话,系统的结构一定层次上
2006-08-10 21:30:00 3825 1
原创 Tomcat+MySql+Struts中文问题绝妙的解决方案
开发Web应用程序时,无论是用什么样的框架技术来开发,一碰从数据库存取涉及到中文的数据,就要面对中文乱码或者是各种编码方式不匹配的异常,今天晚上终于搞定了Tomcat+MySql+Struts的中文问题,用到了很简单的方法,很快就能搞定。 在做以下工作之前,所有的HTML/JSP的charset都设为charset=gb2312。 第一个要解决的是表单提交乱码问题。在使
2006-07-29 00:47:00 1455
部署asterisk项目到Netbeans进行实时调试(图解)
2007-10-20
SkypeShell可执行程序、代码、开发文档
2007-08-28
Web服务解析小工具
2007-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人