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
{
    ...
}

有些工厂会创建一些设置。有一个预定义的设置类型列表,每种类型都有其自己的行为和规则。我很想使用返回值和接口,但是我不知道怎么做。父界面没有类型提示和返回类型的想法似乎是错误的。

如何做得更好?

Asp123Asp 回答:PHP父接口,用于使用相同方法的具有不同返回类型的接口

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3115964.html

大家都在问