程序设计不是这么简单

  “使用面向对象的编程语言(例如java)进行程序开发,就是以面向对象的思想进行编程”。这是我听到的最傻的话。

  Java是面向对象的语言,但它写出的程序并非都是面向对象的。我就见过将业务实现细节一股脑地扔到Swing的Component中的程序。也见过为了所谓的“代码复用”,提出了几个不伦不类的共通class的项目。更有甚者,数据库操作的代码随处可见。这样的程序,只怕就连面向过程的编程语言也不会暴露的如此坦白吧。

  那都是前几年的程序了。现在的程序结构大都讲究分层。几乎每个程序结构都会整出几个层来。表现层、控制层、业务逻辑层、数据持久层等。有了这些层,使得程序的结构更加清晰,每层的任务更加明确,实现细节也都封装到了class中。然而这样就面向对象了吗?这些层中的对象是真正的对象吗?

Continue Reading »

Tags: 程序设计
08-07-03 | 默认分类 | Permalink | No Comments | 190 views

Firefox 3 不下都不行

  万众瞩目的 Firefox 3 从昨天开始可以下载了,用“铺天盖地”四个字来形容她的宣传一点都不为过。大多数的广告还是她的fans自发进行的。没办法,走到哪儿都是人家的广告,真是想不下都不行呀!下载还整了个证书啥地。

firefox3

英文版 Firefox 3
中文版 Firefox 3

Tags: Firefox3
08-06-19 | 互联网 | Permalink | 3 Comments | 1,110 views

java动态代理实现数据库事务拦截器

  很多开源框架中都实现了拦截器功能,比如Spring、WebWork、Struts2等。利用拦截器,可以在对类方法进行调用的前后加入共通的操作,比如在调用方法的前后打印log等,使业务代码更加单纯。

  拦截器是利用java的动态代理技术来实现的。接下来我们就看一个例子,这个例子利用java动态代理,对所有insert、update、delete为前缀的方法进行事务处理。

Continue Reading »

Tags: Interceptor
08-06-15 | JAVA技术 | Permalink | No Comments | 526 views

用rome解析rss

  之前一直在用RSSLib4J解析rss,不过RSSLib4J似乎不能解析rss v0.92,在初期化时就会报错。这可不是什么好消息,因为WordPress的rss就是v0.92的。

  rome是为RSS聚合而开发的开源包,它可以支持0.91、0.92、0.93、0.94、1.0、2.0,可以说rss的版本基本上都支持了。它的使用也非常简单,看下面的例子:

Continue Reading »

Tags: rome, rss
08-06-14 | JAVA技术 | Permalink | No Comments | 528 views

奇怪的问题

  最近的工作中发现了一个奇怪的问题,情况如下:

  A.jsp页面中有一个frameset,frame的src指向了B.jsp。B.jsp中用window.open弹出一个窗口,关闭该窗口后,按下提交按钮,将整个页面(包含A.jsp)提交到C.jsp。C.jsp中利用history.back返回前页面时,B.jsp的缓存丢失。

  说起来似乎挺复杂,请看下图。
Continue Reading »

Tags: javascript
08-06-07 | JAVA技术 | Permalink | No Comments | 587 views

用感动告诉全世界

  2008对中国和中国人民来说注定是不平凡的一年。雪灾、拉萨打砸抢烧事件、CNN辱华事件、巴黎圣火事件、还有这次令人无比震惊和感动的四川特大地震。

  5月12日2点30分左右,我同往常一样在办公室里工作,突然感觉到脚下晃动,接着感觉到头有点晕,于是抬起头来一看,办公室里所有人都象我一样,东张西望,大家并不知道发生了什么。接着听到门外一阵急速的脚步声,大家才意识到,地震了,于是很多人也开始向门外跑去。

  我工作在距离四川将近2000公里的杭州,在一座21层大厦的20楼。虽然距离如此之远,但仍然感觉到大楼有明显的晃动,可想而知,这次的地震相当严重。

Continue Reading »

Tags: china
08-05-17 | 默认分类 | Permalink | 2 Comments | 1,003 views
 
Copyright © 2007 MXJAVA. All rights reserved.