我使用戰略模式,這意味着使用接口和一些類,實現它。在使用Factory模式之後,它會創建一個具有接口類型的實例。如何使用OOP實現通用驗證?
每個班都有方法validate()
。它類似於:
public function validate($file)
{
$allowedFileTypes = config('app.allowedFileTypes');
$maxFileSize = config('app.maxFileSize');
$validator = Validator::make(
array('file' => $file),
array('file' => array(
'required',
'mimes:' . $allowedFileTypes . '|max:' . $maxFileSize)));
if ($validator->fails()) {
//
}
}
}
這是在接口中描述的方法,並且此方法放置在每個類中都有輕微更改。所以我嘗試使用DRY principle
並取消類的驗證碼。但我不知道在哪種形式下做到這一點:
- 作爲抽象驗證類?
- 作爲服務於注射
- 或一類,可以繼承
[This](https://github.com/Respect/Validation)是值得檢查的相關項目。 – Marty
問題不在於如何編寫驗證,問題在於OOP和SOLID體系結構 – OPV
我知道,因此它只是「相關的」。對於您在項目背後提出的問題,您可能還有更多的知識更具體。 – Marty