Thing クラスがあり、Zend_Validate_Abstract を拡張する MySpecificDateValidation クラスによって提供される特定の日付検証を使用する必要があるとします。
Thing クラスでは、依存性注入について考えていて、次のコードはどうかと考えていました。
public function SetDateBegin($dateBegin) {
$dateValidator = new MySpecificDateValidation();
if ($dateValidator->isValid($dateBegin)) {
$this->dateBegin = $dateBegin;
} else {
throw new Exception /*...*/;
}
}
次のようにリファクタリングする必要があります。
public function SetDateBegin($dateBegin, MySpecificDateValidation $dateValidator) {
if ($dateValidator->isValid($dateBegin)) {
$this->dateBegin = $dateBegin;
} else {
throw new Exception /*...*/;
}
}
または、一緒に暮らすことができるいくつかの依存関係のようなものがありますか?