关于领域模型的错误处理问题

10-11-26 lyk831216
Hi banq:

当我建立领域模型的时候,我对错误处理方案比较疑惑,先建立一个用例吧:

用户注册:我建立了一个UserService类,并写如下方法:

void Register(string name){

//验证用户名是否合法

//验证用户名是否已经存在

//new User(name);

//设置未激活,生成激活码

//发送激活邮件

我现在疑惑是在,我验证用户名,验证用户名是否存在,我需要throw一些错误,但我觉得throw 不友好,只要一出错就throw了,Action里面要去Try catch,而且这些错误我需要在web页面上去绑定到指定的Input,我需要一个Hash去存储它,我不希望用户去做多次尝试,而每次尝试只返回一个错误信息。业务层是不是可以通过out ErrorInfo这样的参数,去返回所有的错误列表。

还有一个问题是:Rich Domain Model设计下,ChangePassword这样一个业务,应该属于Domain Object吧,但我同样,改变后要发送邮件,我目前是在UserService里面加了方法,ChangePassword().问题来了,我觉得这个地方ChangePassword方法既存在于Domain Object,又存在Service,Web开发人员在Action里面很疑惑,他通过Session得到了Domain Object对象,里面就有了ChangedPassword,为什么不能调用,而要去通过Service调用

    

1
猜你喜欢