Мы разрабатываем приложение с чистой/гексагональной архитектурой, но мы новичем в этом. Поэтому у нас есть некоторые вопросы.Сторонний поставщик мыла и чистая архитектура
Сценарий:
- Мы имеем обслуживание внешнего SOAP, который дает нам некоторую «Entity» информацию и связанный с ними «Документом»
- Для каждого объекта сусла приложения:
- магазина все документы Entity на CMS (содержимое и некоторые атрибуты Entity-атрибутов)
- магазин Сущность на DDBB с сохраненной ссылкой на документ
Давайте посмотрим, наше первоначальное решение на Java-подобный подход:
Entity и Документа
class Entity {
private String id;
// other attributes ...
private Document xml;
private Document pdf;
// some business logic
}
class Document {
private long id;
//other attributes
InputStream getStream() {...}
}
FRepositori абстракции в домене слоя
class EntityRepositori {
Entity create(Entity entity);
...
}
DocumentRepositori абстракции в домене слоя
class DocumentRepositori {
Document create(Document document)
...
}
ExternalService абстракция на уровне приложений для службы SOAP
class ExternalService {
List<Entity> getEntities();
...
}
реализация Использования на прикладном уровне
class IncorporateEntityUseCase {
IncorporateFUserCase(EntityRepositori, DocumentRepositori, ExternalService){...}
void incorporate() {
List<Entity> entities = externalService.getEntities();
for (Entity entity : entities) {
Document xml = dRepository.create(entity.getXmnl());
Document pdf = dRepository.create(entity.getPdf());
entity.setXml(xml);
entity.setPdf(pdf);
entityRepository.create(entity);
}
}
}
Вопросы
- О ExternalService, это правильно определить его абстракцию с помощью Entity и Document или должен ли он возвращать некоторый объект ValueObject, который реализация UseCase будет преобразовываться в объекты?
- О документе, мы должны создать его как совокупный корень и исключить ссылки на объекты документа из Entity?
Знаете, переменные с одной буквой в коде уже являются большими, нет-нет. Я бы использовал правильные контекстуальные имена в описании проблемы вместо неопределенных «F» и «D».Как написано, я вижу мало шансов на то, что кто-то действительно знает, что у вас в мозгу, что вы еще не подписались на текст. – Gimby
Извините @ Gimby! Вы правы – Leo