ベストプラクティス/推奨事項がここにありますか? XMLElementを操作する関数を提供するクラスがあるとします。コードの重複を避けるためにパラメータの妥当性検査を行うべき場所
class Foo
{
private $data;
public function setData(\SimpleXMLElement $data): void
{
$this->data = $data;
}
public function getElement():string
{
return $this->data->element;
}
}
クラスはそうのような他のクラスで使用されます。
class Bar
{
public function fooBar(string $data)
{
$xml = new \SimpleXMLElement($data);
$foo = new Foo();
$foo->setData($xml);
echo $foo->getElement();
}
}
setData()
とfooBar()
の両方がそれらのパラメータを検証するべきか?
fooBar()
がそのパラメータを検証しても問題ありませんか?
または、foobar()
を呼び出す関数がそのパラメータを検証する必要がありますか?
したがって、Userクラスは完全にEmailAddressクラスに依存して検証を行いますか? – dev0
有効な 'EmailAddress'エンティティしか作成できないという考えがあります。無効なものを作成しようとすると、例外がスローされます。これまでのところ、電子メールアドレスの検証は** User **エンティティの責任ではありません**。外部ドメイン*と問題ドメイン*です。 –