Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1101497
  • 博文数量: 1310
  • 博客积分: 3980
  • 博客等级: 中校
  • 技术积分: 8005
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-09 22:05
文章分类

全部博文(1310)

文章存档

2011年(1)

2008年(1309)

我的朋友

分类:

2008-11-09 15:53:41

这里先说一下在本文中“真正的对象”的定义。对象在本文中指:有属性,有行为(方法)的对象。

一般在面向对象的描述中,对象被描述为有属性有行为的
   我在用JAVA语言写程序。但我觉得大多数时候对象总被置之一边。我所写的大部分都是在写如何处理请求。处理过程,返回结果。这是明显的面向过程。要说最 能体现我在用面向对象的语言的就是偶尔使用一下继承,使用一下多态,来完成复杂一点的过程。仅此而已。面向对象的设计被抛到一边。

   在一般的数据管理系统中(我所见过的)都是以数据库为中心。然后对数据库表进行增删改查操作。就是所谓的CRUD。在这样的系统中。几乎所有的操作都是围绕数据展开。比如一个BBS。最简单的就是设计一个板块表,一个用户表,一个帖子表,一个回帖表。这样看来系统中应存在四种对象:板块,帖子,回帖,用户。而这些对象有属性。但有行为吗?帖子,有什么行为呢?更新?自己更新自己?自己保存自己?这些在现实中看来都好像不是帖子本身应具有的行为。

   再从编码来看。一般的编码应该需要一个DAO来执行数据库操作。但这个DAO是一个”真正的对象“吗。不尽然。因为DAO本身没有什么属性可言的。当然了。因为它是无状态的。它是用来进行数据库操作的。虽然被称为数据访问对象。但其实并不是真正意义上的对象。只是一个过程。对。只是一个在与数据库交互时不可避免的一个过程。

  而系统中是否真的有真正的对象。是个问题。 现在有了Hibernate,有了Spring。各个层次分工更加明确。在实体类中是没有行为的。成了纯粹的数据对象。人们通过写那些写了上百遍的业务代码去实现功能。每天都在作增删改查。。不厌其烦。。。每天写的代码都类似。。不能说不是个问题。。。可能只是个人感觉。。
 
  再说说刚刚BBS的例子。要真要说这个例子中有对象。我觉得应该是用户。用户该有行为。也有属性。用户可以操作其他对象。比如:
public class User{
    
private String userName;
    
//..其他属性
    
    
public void 更新自己的帖子(帖子对象){
       
//..作更新
    }
}

这就是本系统的唯一对象了吗?
各位看官。你们的系统都是怎么设计的?



phyeas 2008-10-05 00:56 发表评论
阅读(1323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~