Managers

Son clases que se encargan de gestionar toda la lógica de negocio, es aquí donde se implementan las acciones principales que determinan el comportamiento de la aplicación. Si la aplicación tiene como finalidad hacer inventarios y necesite actualizar algún producto, la acción no se ejecutará directamente sobre el modelo, para ello primero tendrá que acceder primero al coordinator encargado de hacer esta tarea de actualizar el producto.

La capa de infraestructura sólo podrá acceder a la capa de aplicación por medio de los Managers e Informers.

Código Ejemplo

Python

class RegistrationCoordinator:
    def __init__(self,
                occurrence_repository: OccurrenceRepository,
                ) -> None:
        self.occurrence_repository = occurrence_repository

    def register(self, occurrence_dict) -> None:
        occurrence = Occurrence(**occurrence_dict)
        self.occurrence_repository.add(occurrence)

JavaScript

export class ModelCoordinator {
    constructor(
        private modelRepository: ModelRepository,
    ) { }

    addNewModel(model: Model): Observable<Model> {
        return this.modelRepository.add(model);
    }