Так думаю, что у меня есть такого рода событий домена:Доменные События - наследование или использование перечислений
class BookChangedName...
class BookType1ChangedName extends BookChangedName...
class BookType2ChangedName extends BookChangedName...
в том, что лучше или:
class BookChangedName{
enum bookType = BOOK_TYPE_1;
}
Поскольку они говорят, что использовать наследование только если есть другое поведение между классами, я предполагаю, что я бы пошел с примером перечисления (case # 2) - поскольку Domain Events - это просто простые DTO.
Но опять же, в моем домене это разные типы событий имеют различное значение (разные пути обработки). Таким образом, в случае, я использую пример # 1 я бы в конечном итоге с большим количеством:
if(event instanceof BookType1ChangedName){
//do smth in domain
}
else if(event instanceof BookType2ChangedName){
//do smth in domain
}
, а также я не мог быть столь же явно, как:
when(BookType1ChangedName event){...
я должен был бы сделать какой-то предварительно -переработка как:
@EventHandler(matcher_pattern = event->event.bookType==BOOK_TYPE_1)
when(BookChangedNameevent){...
Если ваши типы книг являются разными агрегатами, может быть с одним родителем, если вы используете наследование, вы можете использовать одно и то же событие и иметь обработчики в базовом классе. –