oop - 在构造函数中多次使用相同的接口
问题描述
我已经创建了接口 IValidator 和几个实现这个接口的类,如图所示。我有管理用户帐户的类 UserAccountManager - 创建新帐户,更改个人资料详细信息,更改密码等......问题是我需要在某些情况下验证用户输入(更改密码,注册......)并且我需要多个验证器为了它。我不认为这种设计是好的,因为构造函数中有多个验证器。有没有更好的方法?
解决方案
验证器通常实现为单个类,但具有可以动态配置的多个规则。PHP 示例:
Validator::make($data, [
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
从您的示例中,我可以看到所有三个规则(电子邮件、姓名、密码)都与某种用户输入身份验证有关。因此,您只能使用一个验证器,负责验证用户登录。
推荐阅读
- codeigniter - 阻止主页以 2 个不同的 url 打开
- vue.js - 调度 VUE 的 VUEX 响应
- android-recyclerview - 如何在回收站视图中准确显示自定义对话框?
- express - 在后端使用“站点地图”模块为站点地图制作路线后,下一步该怎么做才能在前端发现?
- mongodb - MongoDB - $geoNear 和 includeLocs 在同一文档中有多个匹配项
- ios - Xcode 和 swift 加载默认相机视图
- reactjs - MenuBar 中 menuItem 的 React Animation 不起作用
- javascript - 如何使 HTML 按钮连接到 HTML5 Canvas 的 Javascript 函数以使 Spaceship Fire
- spring-boot - Cloud Run:部署 spring docker 镜像导致错误;无法启动并监听 PORT 环境变量定义的端口
- jwt - 保护 webapi 的 Identityserver4 不起作用