0

因为我刚刚学习 Java 的所有成果以及我想找出一件在我脑海中飞来飞去的东西。下面的代码是两个不同类中的两种方法的快速示例。第一个显然是某个页面的控制器,另一个是服务的一部分。

@RequestMapping("/something)
public void doSomething() {
    ...

    SomeEntity example = new SomeEntity();
    example.setAccount(account);
    example.setSmthElse(else);
    example.setDate(new Date());
    example.setSomething(something);

    someService.saveSomeEntity(example);
}

... 

public void saveSomeEntity(SomeEntity object) {
    someEntityDAO.save(object);
}

所以我的问题是,新实体的创建SomeEntity和属性的设置应该在上面的表示层部分中完成,还是应该saveSomeEntity通过将所有参数传递给它来以某种方式在方法中完成?

4

2 回答 2

3

控制器不是表示层。它是 MVC 中的 C。持久层应该只关注持久性,而不是模型对象的创建。上面的代码没问题。有些人会在服务中创建对象,而不是在控制器中,但参数在控制器中很容易获得,因此恕我直言,这是可以接受的。

于 2011-06-17T14:25:03.327 回答
2

是的,可以在任何层创建实体。

有些人更喜欢 DTO(具有相同结构的单独对象),然后将其转换为实体。

只是避免在 jsps 中编写 java 代码。实例化控制器中的对象,或者将其留给某种绑定机制。

于 2011-06-17T14:24:36.867 回答