DDD (доменно-управляемый дизайн) - могут ли варианты использования возвращать экземпляры сущностей? - PullRequest
0 голосов
/ 18 марта 2020

Могут ли варианты использования вернуть экземпляры сущности?

Поэтому я спрашиваю, поэтому не вижу другой альтернативы.

Я переписываю приложение MVC для DDD + Clean Architecture .

Например:

function createUserUseCase (name: string): User {
    // Instantiate `User` Aggregate Root.
    const user = new User.create(name)

    // Store new user using the repository.
    UserRepository.store(user)

    return user
}
class UserController {
    public async post (request: Request, response: Response): Promise<Response> {
        // Return `User` instance.
        return await response.json(createUserUseCase(request.body.name))
    }
}

1 Ответ

0 голосов
/ 24 марта 2020

Я думаю, что самое большое нарушение здесь в том, что вы возвращаете модель домена. Похоже, у вас есть утечки. Что касается DDD принципов, ваш домен не может быть открыт снаружи.

Полагаю, вам следует создать некоторую модель DTO, которая сможет предоставлять только необходимые данные из совокупности пользователей.

Кроме того, я также предлагаю реализовать здесь шаблон CQRS, чтобы различать guish между чтением и записью ...

...