php - 同一方法中具有不同返回类型的接口的 PHP 父接口
问题描述
让我们从一些幼稚的代码开始:
class SettingFactory
{
public function create($val, $type): Setting
{
switch($type) {
case 'bool':
return new CanDoSmthSetting();
case 'multipleChoice':
return new SomeOtherTypeSetting();
}
}
}
interface Setting
{
public function get();
public function set();
public function serialize();
}
interface BoolSetting extends Setting
{
public function get(): bool;
public function set(bool $value): void;
}
interface MultipleChoiceSetting extends Setting
{
public function get(): array;
public function set(array $values): void;
}
class CanDoSmthSetting implements BoolSetting
{
...
}
class SomeOtherTypeSetting implements MultipleChoiceSetting
{
...
}
有一些工厂创建了一些设置。有预定义的设置类型列表,每种类型都有自己的行为和规则。我很想使用返回值和接口,但是我不知道怎么做。没有类型提示和返回类型的父接口的想法似乎是错误的。
怎样才能做得更好?
解决方案
推荐阅读
- mysql - 通过 SQL 连接表检索两个相关表的最大值
- java - 当用户在 android DatePickerDialog 中选择日期时添加 3 个月
- .net-core - Azure DevOps dotnet 测试失败并出现 ##[error]Error: The process 'C:\Program Files\dotnet\dotnet.exe' failed with exit code 1
- java - 在 Eclipse 运行时配置的环境变量中使用路径变量?
- mysql - MySQL中的字符串处理 - 计算自日期以来的天数
- javascript - 如何正确设置 React 路由器查询字符串?
- azure - Azure 时序 (TSI) 初始注意事项和最佳做法
- python - 重新索引用 NaN 替换值
- react-native - 无法运行反应本机run-android
- python - 是否有任何工具可以为每个 python 文件运行特定的包,而不是创建多个虚拟环境