一个困惑的关于域建模的若干个问题.txt

来自「Martin Fowler的贫血模型带来域建模的困惑」· 文本 代码 · 共 26 行

TXT
26
字号

一个User类:

public class User{
private int ID;
private String name;
private String password;
private int GroupID;
....
public void setPassword(String password){
...
}
public void changePassword(String password){
...
}
....
}




[b]问题1:[/b]新增一个用户,从域模型角度去看其实就是new User(),而修改用户密码就setPassword();而从另一个角度看,修改密码却可以看成User类的一个行为,可以为User类设计一个方法changePassword(),新增用户可以用一个createUser(User user)来实现。那么具体的实现在实际项目中怎样进行取舍选择?
[b]问题2:[/b]如果使用createUser(User user)这种方式实现,那么createUser的方法应该不能放到User类中了,毕竟对象不能自己create自己,可是实体bean似乎就是这样的方式实现create??为什么??
[b]问题3:[/b]既然User类不能create自己,那么创建一个UserManager类,包含createUser方法,这种情况下,User类的changePassword方法是否也放到UserManager类中?
[b]问题4:[/b]如果使用new User方式来创建用户,那么删除用户的操作用什么方式进行?
[b]问题5[/b]:怎么理解实体bean?他是域对象建模的结果么?那么怎么理解实体bean的create,remove?自己可以create,remove自己?

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?