У меня есть класс Response
, который содержит HTTP-ответ с кодом состояния HTTP, например, 200 или 404, и несколько других вещей, таких как имя вида и объект домена. Но давайте сосредоточимся на коде состояния. Я мог бы использовать один класс и передать статус в качестве параметра:Одиночный класс с несколькими значениями параметров конструктора или многими классами?
public class Response {
private int status;
public Response(int status) {
this.status = status;
}
}
// in a handler method:
return new Response(HttpStatus.OK);
Другой путь будет создать новый класс для каждого кода состояния (41 кодов состояния в HTTP 1.1). Как это:
public class Ok extends Response {
public Ok() {
super(HttpStatus.OK);
}
}
// in a handler method:
return new Ok();
public class Created extends Response {
public Created() {
super(HttpStatus.CREATED);
}
}
// in a handler method:
return new Created();
В действительности будет, как правило, больше параметров, как имя вида и объект домена, как этот new Response(HttpStatus.OK, "customer", customer)
соответствующего new Ok("customer", customer)
.
Имеет ли каждый код состояния разную уникальную обработку, или все они выполняют одну и ту же вещь, кроме # их разных? Если классы не приносят ничего нового в таблицу, не используйте их. –
Статус отправляется клиенту, но для серверной части они очень похожи, с небольшим исключением для кодов ошибок, которые обрабатываются немного иначе, чем базовый API сервлета, но это не входит в компетенцию класса (es), показанных выше. – deamon
@David - Это будет хороший ответ, а не комментарий. – Alohci