Мне нужно создать разные сообщения об ошибках для разных интерфейсов (клиентов). Теперь я не знаю, сколько клиентов будет там. Я хочу правильно спроектировать этот сценарий. Я создал прототип, как показано ниже. Это правильный способ сделать? Пожалуйста, помогите мне выбрать правильный шаблон дизайна для этого сценария.
Интерфейс
IClientErrorResponseBuilder {
getFailureResponse()
}
Первый клиент
FirstClientErrorResponseBuilder implements IClientErrorResponseBuilder {
getFailureResponse(e: Exception) {
return {
code: e.code,
message: e.message,
}
}
}
Второй клиент
SecondClientErrorResponseBuilder implements IClientErrorResponseBuilder {
getFailureResponse(e: Exception ) {
return {
code: e.code,
message: e.message,
reason: "SOME REASON",
}
}
}
с контроллеров
import IClientErrorResponseBuilder;
// When instantiated, it will resolve dependency for ErrorResponseBuilder
class FirstController {
private errorBuilder;
constructor(errorBuilder: IClientErrorResponseBuilder) {
this.errorBuilder = errorBuilder;
}
public handler() {
try {
// do the stuffs
}catch(e) {
// If error
this.errorBuilder.getFailureResponse(e);
}
}
}
// Когда создается экземпляр, он разрешает зависимость для ErrorResponseBuilder
class SecondController {
private errorBuilder;
constructor(errorBuilder: IClientErrorResponseBuilder) {
this.errorBuilder = errorBuilder;
}
public handler() {
try {
// do the stuffs
}catch(e) {
// If error
this.errorBuilder.getFailureResponse(e);
}
}
}