Где я должен создать новую сущность - на уровне презентации или нет? - PullRequest
0 голосов
/ 17 июня 2011

Поскольку я только изучаю все плоды 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, передав все параметры в это?

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

Контроллер не является уровнем представления. Это C в MVC. Уровень постоянства должен касаться только постоянства, а не создания объекта Model. Код выше в порядке. Некоторые могут создавать объекты в службе, а не в контроллере, но параметры легко доступны в контроллере, поэтому ИМХО это приемлемо.

2 голосов
/ 17 июня 2011

Да, сущность может быть создана на любом слое.

Некоторые люди предпочитают DTO (отдельные объекты с одинаковой структурой), которые затем переводятся в сущности.

Просто избегайте написания Javaкод в JSPS.Создайте объекты в контроллере или оставьте их для какого-либо механизма привязки.

...