首页 > 解决方案 > 在构造函数中多次使用相同的接口

问题描述

我已经创建了接口 IValidator 和几个实现这个接口的类,如图所示。我有管理用户帐户的类 UserAccountManager - 创建新帐户,更改个人资料详细信息,更改密码等......问题是我需要在某些情况下验证用户输入(更改密码,注册......)并且我需要多个验证器为了它。我不认为这种设计是好的,因为构造函数中有多个验证器。有没有更好的方法?

在此处输入图像描述

标签: oopdesign-patterns

解决方案


验证器通常实现为单个类,但具有可以动态配置的多个规则。PHP 示例:

 Validator::make($data, [
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);

从您的示例中,我可以看到所有三个规则(电子邮件、姓名、密码)都与某种用户输入身份验证有关。因此,您只能使用一个验证器,负责验证用户登录。


推荐阅读