自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

跬步致远——Ai92

物换心不移,一生微笑同看雨过天晴。

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 我在blogchina上的家开张了

其实,在blogchina上的家早在好几个月前就申请了下来。原因自然是不用说了,都是因为csdn的blog实在是太让人难受了。http://ai92.blogchina.com但是很怀念csdn这里的技术氛围,而在blogchina上则有点像“萝卜开会”。让我一直不能接受。因此便把它撂下了,继续忍受着csdn blog的折磨——痛并快乐着!直到前一段时间,csdn blog的问题不见有所收敛,反而

2005-06-30 21:00:00 1710 2

原创 深入浅出命令模式

一、引言忙里偷闲,终于动笔了。命令模式是从界面设计中提取出来的一种分离耦合,提高重用的方法。被认为是最优雅而且简单的模式,它的应用范围非常广泛。让我们一起来认识下它吧。先从起源说起。在设计界面时,大家可以注意到这样的一种情况,同样的菜单控件,在不同的应用环境中的功能是完全不同的;而菜单选项的某个功能可能和鼠标右键的某个功能完全一致。按照最差、最原始的设计,这些不同功能的菜单、或者右键弹出菜单是要分

2005-06-16 20:08:00 4325

原创 深入浅出责任链模式

一、引言初看责任链模式,心里不禁想起了一个以前听过的相声:看牙。说的是一个病人看牙的时候,医生不小心把拔下的一个牙掉进了病人嗓子里。病人因此楼上楼下的跑了好多科室,最后无果而终。责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把你推给另一个对象。至于到底谁解决了这个问题了呢?我管呢! 二、定义与结构从名字上大概也能猜出这个模式的大概模样——系统中将会存在多个有类似处理能

2005-05-27 20:58:00 2953

原创 深入浅出观察者模式

一、引子还记得警匪片上,匪徒们是怎么配合实施犯罪的吗?一个团伙在进行盗窃的时候,总    有一两个人在门口把风——如果有什么风吹草动,则会立即通知里面的同伙紧急撤退。也许放风的人并不一定认识里面的每一个同伙;而在里面也许有新来的小弟不认识这个放风的。但是这没什么,这个影响不了他们之间的通讯,因为他们之间有早已商定好的暗号。呵呵,上面提到的放风者、偷窃者之间的关系就是观察者模式在现实中的活生生的例子

2005-05-16 20:01:00 36523 4

原创 写在4月末

好久没有贴自己的文章了,打算写的《深入浅出观察者模式》到现在也没有动笔。这一个月来,特别是后半个月。项目进入冲刺阶段,进度赶的很紧。天天加班,到了宿舍到了宿舍,倒头就睡,却睡不踏实,老是做梦。有点怀疑自己神经衰弱了。还好,自己进度赶的还算积极,估计可以完成现有基础上的开发。之所以叫做现有基础上的开发。是因为还有一些功能的实现,平台或者基础模块开发小组还没有开发出来。各个模块分割开发,最后的整合一定

2005-04-29 16:44:00 1933

原创 深入浅出模板方法模式

一、引子这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使用到了继承关系。继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理的利用继承关系,还是能对你的系统设计起到很好的作用的。而

2005-04-10 22:35:00 2875 1

原创 本blog访问量突破10000人大关!

        昨天晚上的时候,就发现我blog的计数器已经10000露头了。        心中按捺不住喜悦。回想开始编写自己的blog的四个月里,为了搞明白一个问题“遍网查找”;为了讲明白一句话,几经揣摩。看看自己关于设计模式的文章写了长长一溜,心里美滋滋的;但看到还有几篇尚未动笔,又不禁增加了责任感。        写blog的过程,也是我学习成长的过程。希望在将来的日子里,再接再厉,坚持到

2005-04-07 08:52:00 1915 4

原创 深入浅出桥梁模式

一、引子桥梁(bright)模式是我介绍的23种模式中的最后一个结构模式。它是一个功能非常强大而且适用于多种情况的模式。 二、定义与结构GOF在《设计模式》中给桥梁模式的定义为:将抽象部分与它的实现部分分离,使它们都可以独立地变化。这里的抽象部分和实现部分不是我们通常认为的父类与子类、接口与实现类的关系,而是组合关系。也就是说,实现部分是被抽象部分调用,以用来完成(实现)抽象部分的功能。在《Thi

2005-03-27 21:52:00 6705 3

原创 JUnit源码分析(三)

三、微观——执行流程与代码风格来过一遍JUnit的执行流程吧,这样你就能对JUnit有个清晰的认识,虽然作为一个使用者这完全是不必要的。从《JUnit in Action》直接拿来一张JUnit流程图。哦,也许你看晕了,我来当下导游好了。上面已经提到了TestRunner是BaseTestRunner的子类,在三个不同的ui包中各有一个TestRunner。这里我们仅以junit.textui包中

2005-03-14 20:57:00 9345 2

原创 JUnit源码分析(二)

    在上面我们已经提到了junit.extentions包中的内容TestSetup。来看看整个包的结构吧。    先简要的介绍下包中各个类的功能。ActiveTestSuite对TestSuite进行了改进,使得每个test运行在一个单独的线程里面,并且只到所有的线程都结束了才会结束整个测试。ExceptionTestCase是对TestCase进行的改进,可以方便的判断测试类是否抛出了期望

2005-03-13 20:26:00 8018 2

原创 JUnit源码分析(一)

一、引子JUnit源码是我仔细阅读过的第一个开源项目源码。阅读高手写的代码能学到一些好的编程风格和实现思路,这是提高自己编程水平行之有效的方法,因此早就想看看这些赫赫有名的框架是怎么回事了。今天就拿最简单的JUnit下手,也算开始自己的源码分析之路。 JUnit作为最著名的单元测试框架,由两位业界有名人士协力完成,已经经历了多次版本升级(了解JUnit基础、JUnit实践)。JUnit总体来说短小

2005-03-12 22:11:00 20046 2

原创 初探关键字volatile

第一次接触到关键字volatile,不知为何物,只是模糊的记得java关键字里面好像有它。查了些资料,整理如下:Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,

2005-03-08 21:14:00 4738

原创 深入浅出门面模式

一、引子门面模式是非常简单的设计模式。 二、定义与结构门面模式(facade)又称外观模式。GOF在《设计模式》一书中给出如下定义:为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。定义中提到的子系统是指在设计中为了降低复杂性根据一定的规则(比如业务、功能),对系统进行的划分。子系统中封装有一些类。客户程序在使用子系统的时候,可能会像

2005-03-07 21:17:00 4542 1

原创 深入浅出装饰模式

一、引子装饰模式?肯定让你想起又黑又火的家庭装修来。其实两者在道理上还是有很多相像的地方。家庭装修无非就是要掩盖住原来实而不华的墙面,抹上一层华而不实的涂料,让生活多一点色彩。而墙还是那堵墙,他的本质一点都没有变,只是多了一层外衣而已。那设计模式中的装饰模式,是什么样子呢? 二、定义与结构装饰模式(Decorator)也叫包装器模式(Wrapper)。GOF在《设计模式》一书中给出的定义为:动态地

2005-03-01 22:52:00 9411 9

原创 JUnit测试建议

以下是对JUnit实践的一个很好的总结,信息来源于一些比较权威的JUnit书籍和网上资料。这里集合如下: 1、每次只对一个对象进行UT测试(unit-test one object at a time)。这样能使你尽快发现问题,而不被各个对象之间的复杂关系所迷惑。2、给测试方法起个好名字(choose meaningful test method names)。应该是用形如testXXXYYY()

2005-02-28 22:21:00 11706 2

原创 一件小事 浮想篇

Oh!shit!我干了什么?我删了JUnit源代码阅读时的记录!这场悲剧刚刚发生,我快分析完的源代码被我shift+delete删除了!里面有我自己的注释和看法阿!! 有时候手就是非常“贱”!幸好这次损失不是很大,大不了再从头来一次,加深认识嘛!还有前辈支持我——孔子曰:温故而知新,可以为师也。嘴上虽然这么说,心里面对这个小的挫折还是蛮不情愿再来一次。再来一次真的很需要勇气!这只是

2005-02-28 22:18:00 2691 2

原创 JUnit入门

一、简介JUnit是一个开源的java单元测试框架。在1997年,由 Erich Gamma 和 Kent Beck 开发完成。这两个牛人中 Erich Gamma 是 GOF 之一;Kent Beck 则在 XP 中有重要的贡献(你觉得眼熟一点都不奇怪)。       正如常言道:“麻雀虽小,五脏俱全。” JUnit设计的非常小巧,但是功能却非常强大。       下面是JUnit一

2005-02-26 12:09:00 45868 27

原创 深入浅出组合模式

一、引子在大学的数据结构这门课上,树是最重要的章节之一。还记得树是怎么定义的吗?树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:(1)    有且仅有一个特定的称为根(Root)的结点;(2)   其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,…,Tm,其中每个子集本身又是一棵树,并称其为根的子树(SubTree)。上面给出的递归定

2005-02-23 10:33:00 18478 5

原创 深入浅出适配器模式

一、引子昨天在给新买的MP3充电的时候,发现这款MP3播放器只提供了USB接口充电的方式,而它所配备的充电器无法直接给USB接口充电,聪明的厂商为充电器装上了一个USB接口转换器解决了问题。这个USB接口转接器正是我们今天要谈到的适配器。而在软件开发中采用类似于上面方式的编码技巧被称为适配器模式。 二、定义和结构《设计模式》一书中是这样给适配器模式定义的:将一个类的接口转换成客

2005-01-30 20:43:00 3878

原创 深入浅出建造模式

一、引子前几天陪朋友去装机店攒了一台电脑,看着装机工在那里熟练的装配着机器,不禁想起来了培训时讲到的建造模式。作为装机工,他们不用管你用的CPU是Intel还是AMD,也不管你的显卡是2000千大元还是白送的,都能三下五除二的装配在一起——一台PC就诞生了!当然对于客户来说,你也不知道太多关于PC组装的细节。这和建造模式是多么的相像啊!       今天就来探讨一下建造模式 二、定

2005-01-19 21:37:00 2846 3

原创 你是注重实效的程序员吗?

在《程序员修炼之道》这本好书中列出了注重实效的程序员应具备的特征,你能对号入座吗?1 早期的采纳者/快速的改编者    你具有技术和技巧上的直觉,你喜欢试验各种事物。给你一样新东西,你很快就能把握它,并把它与你的知识的其它部分结合在一起。你的自信出自经验。2 好奇    你喜欢提问。那很漂亮——你是怎么做的?你用那个库的时候有什么问题吗?我听说的这个BeOS是什么东东?符号链接是怎么实现的?你是收

2005-01-17 21:21:00 2442 11

原创 深入浅出单例模式

一、引子单例模式是设计模式中使用很频繁的一种模式,在各种开源框架、应用系统中多有应用,在我前面的几篇文章中也结合其它模式使用到了单例模式。这里我们就单例模式进行系统的学习。并对有人提出的“单例模式是邪恶的”这个观点进行了一定的分析。 二、定义与结构单例模式又叫做单态模式或者单件模式。在GOF书中给出的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式中的“单例”

2005-01-13 21:45:00 4694 4

原创 回顾2004年的我

一直想写下自己走过的2004年,可是2005年都到来了有一个周了,还是迟迟没有动笔。2004年对于我来说是很不平凡的一年:在这一年我走出了校园,来到了工作岗位;在这一年我离开了山东,踏上了黑土地;在这一年我离别了女友,开始了苦涩的异地相思!酸甜苦辣交织在一起,仿佛是人生的缩影。今天终于抽出空来,整理整理自己的思绪,涂抹出一条曾经走过的路。 一、我要再考一年!考研成绩出来的瞬间是我今

2005-01-10 22:48:00 2993 11

原创 深入浅出解释器模式

一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。       虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。 二、定义与结构解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语

2005-01-08 21:09:00 4020 3

原创 深入浅出原型模式

一、引子古人云:书非借不能读也。我深谙古人教诲,更何况现在IT书籍更新快、价格贵、质量水平更是参差不齐,实在不忍心看到用自己的血汗钱买的书不到半年就要被淘汰,更不想供养使用金山快译、词霸等现代化工具的翻译们。于是我去书店办了张借书卡,这样便没有了后顾之忧了——书不好我可以换嘛!但是,借书也有不爽的地方,就是看到有用或者比较重要的地方,不能在书旁标记下来。一般我会将这页内容复印下来,这样作为

2005-01-02 15:54:00 3929

原创 深入浅出策略模式

一、引子18日下午3时一刻,沈阳,刚刚下完一场几年罕见的大雪,天气格外的冷,公交车在“车涛汹涌”的公路上举步维艰,我坐在里面不时的看表——回公司的班车就要发车了,我还离等车的地方好远……。都是这可恶的天气打乱了我的计划!看来我要重新盘算下下了公交车的计划了:如果在半点以前能够到达等班车的地方,我就去旁边卖书报的小店里面买份《南方周末》,顺便逼逼严寒;如果可恶的公交到时候还不能拱到的话,我就只好

2004-12-26 14:23:00 3945

原创 深入浅出设计模式之绪论

设计模式一词跟随着95年发行的《Design Pattern , Elements of Reusable Object-Oriented Software》一书流行了起来;一本《Java与模式》更是让更为广泛的中国开发者理解和爱上了设计模式!在板桥里人的一片关于设计模式的文章中曾说过:“就Java语言体系来说,GOF的设计模式是Java基础知识和J2EE框架知识之间一座隐性的"桥"。”给予设

2004-12-23 21:13:00 4415 1

原创 深入浅出享元模式

一、引子让我们先来复习下java中String类型的特性:String类型的对象一旦被创造就不可改变;当两个String对象所包含的内容相同的时候,JVM只创建一个String对象对应这两个不同的对象引用。让我们来证实下着两个特性吧(如果你已经了解,请跳过直接阅读第二部分)。先来验证下第二个特性:public class TestPattern {       public sta

2004-12-21 20:04:00 29696 18

原创 JDBC连接数据库经验集萃

    Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。一、连接各种数据库方式速查表    下面罗列了各种数据库使用JDBC连接的方式,可以作为一个

2004-12-20 13:10:00 4511 1

原创 深入浅出代理模式

关键字:代理模式 java 一、引子我们去科技市场为自己的机器添加点奢侈的配件,很多DIYer都喜欢去找代理商,因为在代理商那里拿到的东西不仅质量有保证,而且价格和售后服务上都会好很多。客户通过代理商得到了自己想要的东西,而且还享受到了代理商额外的服务;而生产厂商通过代理商将自己的产品推广出去,而且可以将一些销售服务的任务交给代理商来完成(当然代理商要和厂商来共同分担风险,分配利润),

2004-12-14 20:41:00 7263 3

原创 使用Assertion来提高你代码的可靠性

以下是一些使用assertion的四种情况及其对应的例子,这些方式可以让java程序的可靠性更高。一、检查控制流; 在if-then-else和swith-case语句中,我们可以在不应该发生的控制支流上加上assert false语句。如果这种情况发生了,assert能够检查出来。例如:x取值只能使1,2,3,我们的程序可以如下表示 switch (x)  { case 1: …;   

2004-12-09 16:15:00 2986 1

原创 深入浅出工厂模式

一、引子       话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?!       而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍存在的现象。幸运的是,这

2004-12-08 15:02:00 59187 46

原创 Validation framework经验谈

1     Validation framework在Struts framework中,ActionForm对象用来包装HTML表格数据(包括请求),并返回返回动态显示给用户的数据。它们必须是完全的JavaBean,并继承.Struts 里面的ActionForm类,同时,用户可以有选择地覆盖两个缺省方法validate()和reset()。这样做的缺点:    1.校验代码冗余,不可重

2004-12-03 16:03:00 3647 3

原创 UML 类图介绍

UML 类图介绍一、UML简介UML(Unified Modeling Language)即统一建模语言,是OMG(Object Management Group)发表的图标式软件设计语言。UML的功能:可视化:使用图表的形式来表现业务关系或者物理关系,可以促进对问题的理解和解决。说明:UML提供了一种通用的、精通的、没有歧义的通信机制进行。建造:UML通过自己的语法规则使得可以通过使用建模工具软

2004-12-02 22:23:00 14494 45

原创 Tomcat初次使用问题手记

2004.8.14   问题描述如下:        由于部门作Web开发,开发使用的web服务器便是Tomcat,虽然早就听过大名,但是一直没有用过。想想做毕设的时候,用的是IBM的WAS,这个免费的东东,应该很容易就搞定了吧。         于是在网上下了个安装版安装在机器上,然后就开始修改TomCat的conf中的server.xml,把部门的系统配置上去。哈哈,很是容易啊!!      

2004-11-29 14:16:00 2326

原创 Weblogic内存分配问题

2004.9.17今天在性能测试过程中学到不少东西,加上前一段时间的积累,特记录如下:一:WebLogic配置问题: 由于WebLogic的配置问题,我们的测试出现了失败情况。原因是为WebLogic分配的内存太少了。通过修改commom/bin/commEnv.cmd文件来增加内存分配。 修改的部分如下::beaif "%PRODUCTION_MODE%" == "true" goto bea_

2004-11-29 13:54:00 2850

JAR文件详解

JAR文件详解,一看就懂,傻瓜书

2007-08-29

空空如也

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

TA关注的人

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