首页 > 编程开发 > 程序设计不是这么简单

程序设计不是这么简单

2008年7月3日  30 views

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

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

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

  例如web程序的登录功能,首先有个为用户提供友好交互界面的Jsp,还有一个用来取得用户在jsp页面上输入的用户名和密码的action,service用来处理登录的业务。最后再来个Dao操作数据库……

  这样的程序结构我们见的太多了,看上去每一层都各司其职,工作的井然有序。然而,每一层所谓的“对象”并非真正意义上的对象。Action用来界面和后台交互,Service则根据界面的要求包装了其业务逻辑。以界面为中心进行设计的程序,我们称之为“智能UI”。每层的对象可以称之为“万能对象”。因为它们不单纯,它们可以根据界面的要求,不断地扩展自身的功能,直到包罗万象。

  这样的程序太容易写了,只要界面设计人员把界面设计出来,按照以上套路往上一套,项目就完工了。然而,这样的程序的对象之间高度偶合,任何一个变动都会导致程序的修改。相同的代码可能出现在不同的 Service中,有些被提到了Service的Super Class中,有些提到了共通class中(又是该死的共通)。“开闭原则”说的是对加功能开放,对修改关闭。也就是说,可以轻松地将新功能追加到程序中而不用修改现有的程序。按照上面的程序设计,不要说“开闭原则”,就连最为基础的面向对象都没有真正体现出来。

  软件就是为了模拟现实。例如将某项交易用程序来实现。程序设计时,应该围绕交易这个业务展开而不是交易所用的票具(程序界面)。

  未完

编程开发 ,

转载请注明 转载自:MXJAVA Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
  1. 目前还没有任何评论.
  1. 目前还没有任何 trackbacks 和 pingbacks.