这里先说一下在本文中“真正的对象”的定义。对象在本文中指:有属性,有行为(方法)的对象。
一般在面向对象的描述中,对象被描述为有属性有行为的
我在用JAVA语言写程序。但我觉得大多数时候对象总被置之一边。我所写的大部分都是在写如何处理请求。处理过程,返回结果。这是明显的面向过程。要说最
能体现我在用面向对象的语言的就是偶尔使用一下继承,使用一下多态,来完成复杂一点的过程。仅此而已。面向对象的设计被抛到一边。
在一般的数据管理系统中(我所见过的)都是以数据库为中心。然后对数据库表进行增删改查操作。就是所谓的CRUD。在这样的系统中。几乎所有的操作都是围绕数据展开。比如一个BBS。最简单的就是设计一个板块表,一个用户表,一个帖子表,一个回帖表。这样看来系统中应存在四种对象:板块,帖子,回帖,用户。而这些对象有属性。但有行为吗?帖子,有什么行为呢?更新?自己更新自己?自己保存自己?这些在现实中看来都好像不是帖子本身应具有的行为。
再从编码来看。一般的编码应该需要一个DAO来执行数据库操作。但这个DAO是一个”真正的对象“吗。不尽然。因为DAO本身没有什么属性可言的。当然了。因为它是无状态的。它是用来进行数据库操作的。虽然被称为数据访问
对象。但其实并不是真正意义上的对象。只是一个过程。对。只是一个在与数据库交互时不可避免的一个过程。
而系统中是否真的有真正的对象。是个问题。 现在有了Hibernate,有了Spring。各个层次分工更加明确。在实体类中是没有行为的。成了纯粹的数据对象。人们通过写那些写了上百遍的业务代码去实现功能。每天都在作增删改查。。不厌其烦。。。每天写的代码都类似。。不能说不是个问题。。。可能只是个人感觉。。
再说说刚刚BBS的例子。要真要说这个例子中有对象。我觉得应该是用户。用户该有行为。也有属性。用户可以操作其他对象。比如:
public class User{
private String userName;
//..其他属性
public void 更新自己的帖子(帖子对象){
//..作更新
}
}
这就是本系统的唯一对象了吗?
各位看官。你们的系统都是怎么设计的?
posted on 2008-10-05 00:56
phyeas 阅读(342)
评论(0) 编辑 收藏