一般的数据管理系统中是否有“真正的对象”?

本文探讨了在实际开发过程中,面向对象编程理念的应用情况。作者通过分析BBS系统的实例,对比面向对象与面向过程的区别,并对现有系统设计中对象的角色和行为提出了疑问。
这里先说一下在本文中“真正的对象”的定义。对象在本文中指:有属性,有行为(方法)的对象。

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

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

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

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值