0

コマンドがあるとしますCreateUser

class CreateUser
{
    public string $email;
    public string $password;
    public string $firstName;
    public string $lastName;
    public LocalDate $dateOfBirth;
    public ?string $location;
}

Userモデルがこのコマンドをコンストラクターのパラメーターとして受け入れても問題ありませんか?

つまり、これを使用する代わりに:

class User
{
    public function __construct(
        string $email,
        string $password,
        string $firstName,
        string $lastName,
        LocalDate $dateOfBirth,
        ?string $location
    ) {
       ...

コマンド ハンドラーにコマンド データをモデルにマップさせると、モデル コンストラクターにコマンドをパラメーターとして受け入れさせ、必要なデータを抽出させることができます。

class User
{
    public function __construct(CreateUser $command)
    {
        ...
}

これは正しいアプローチですか、それとも欠点はありますか?

4

1 に答える 1