对象的困惑

08-10-26 UBOSJQ
最近接触oo有些困惑

在设计系统的时候,很多对象的数据都持久化在数据库中的,比如对银行帐户抽象一个类,在db中一般也有一个帐户的表存储持久化数据;
在根据帐户ID对该帐户进行操作时,需要实例化该帐户对象,

问下:
在系统中可能多个服务都需要操作这个帐户,是实例化一个还是多个对象?

sigarron
2008-10-26 15:09
我觉得应该是实例化一个。不然的话就会出现概念上的“多个账户”
一般来说,一个实例化的对象应该对应一个现实中存在的一个实际事物,
这么说来就好理解了,

wsgc01
2008-10-26 16:59
因为现在大多数据库都是关系型的,当用面向对象的思维来设计数据库确实会有点问题
所以可以使用类似hibernate一类的框架来自动维护和管理持久层

你说的这个问题,应该是在该账户登陆的时候就实例化,然后之后的增删改查都是针对已近登陆的这个账户

banq
2008-10-27 13:27
>在系统中可能多个服务都需要操作这个帐户,是实例化一个还是多个对象?

取决于这些服务的特点,如果服务处理过程中有状态,那么就每个服务一个对象,排排坐分果果;如果没有状态,而且都是读操作,那么只要一个实例就可以。在这样情况下,很像我说的jivejdon论坛中论坛状态操作一样,目前论坛和其状态都是单例。见:http://www.jdon.com/article/34773.html