メソッドシグネチャを変更する必要がある場合、OOPおよびSOLIDの原則に準拠したPHPで子クラスのメソッドをオーバーロードする方法。これにはいくつかのデザインパターンがありますか?メソッドシグネチャを変更する必要があるときに、OOPおよびSOLIDの原則を遵守して、PHPで子クラスのメソッドをオーバーロードする方法
<?php
class Client extends People
{
protected function fillData(ClientDTO $clientDTO)
{
parent::fillData($clientDTO);
...
}
}
class People
{
protected function fillData(PeopleDTO $peopleDTO)
{
...
}
}
class ClientDTO extends PeopleDTO
{
protected $orders;
}
class PeopleDTO
{
protected $name;
}
?>
である必要があります。メソッドのシグネチャが変更された場合、その子は親のメソッドをオーバーロードしていません。それは新しい方法を作り出しています。 – sorayadragon
短い答え:あなたが望むのは、特殊なサブタイプではなく、別のクラスです。 –
ここのパターンは[抽象的な工場パターン](https://en.wikipedia.org/wiki/Abstract_factory_pattern)になります。 )、これはおそらく(おそらく)あなたが達成したいと思うものに対する過剰なものです。それはより大きなパターンであり、把握するのは難しいです。これにより、同じインターフェース(つまり、抽象クラス)を共有する異なるクラスのクラスを扱うことができます。あなたがパターンを尋ねたときにコメントするだけです。 – hakre