account中password是否应该存在

10-11-01 SpeedVan
在不断阅读jivejdon和思考时,发现一个很不舒服的问题。就是password和操作password方法。

在我思考中,用户名和密码只是作为用户在领域中的复原,并不是领域中的任何实体的属性,而确定领域实体的身份是唯一标识id。

我就是“我”,不是可能凭空出的,所以身份在进入领域前是已经确定的,既然在进入领域前就确定了,那领域里面也就不存在登录的意义了,既然不存在,也就不应该存在password的。

或者换个角度想,改变密码不应该对领域对象“我”产生任何影响。

虽然在“我”可以包含帐号与密码,但这是与领域没有任何关系的,我觉得应该去掉。

举个例子:银行

把银行里面看作一个领域,当“我”走进去的一瞬间是已经登录了,也就是说不管领域是什么,我的身份应该保持不变的。或者这样理解,银行没有任何入口的,是封闭的。当我登录时,在领域里就会出现一个“我”,而这时“我”就开始银行的一系列的交互。而在其中的任何业务都没有登录帐号和密码的任何信息。

所以本人觉得系统的帐号和密码不应该是领域实体的任何属性,他们之间应该是通过唯一标识来关联——输入帐号密码找出id,在领域中出现唯一标识为id的实体。而修改密码是作为系统级别的修改,不属于业务逻辑范畴的。

合起来了,就像把passport和user合体了,变成account,这没问题么?

[该贴被SpeedVan于2010-11-01 14:06修改过]

banq
2010-11-01 15:26
2010年11月01日 13:58 "SpeedVan"的内容
发现一个很不舒服的问题。就是password和操作password方法 ...

分析得很好,应该对account进行一下重构,Account中字段太多,超过5个原始类型就应该重构了。

如果SpeedVan有兴趣,欢迎加入jivejdon 开发,如果愿意给我短消息,我给你开通SVN。呵呵

猜你喜欢