我有一个抽象的数据映射器类:
<?php
abstract class ADataMapper
{
abstract public function addNew($dataObj);
abstract public function update($dataObj);
abstract public function find($primaryKey);
abstract public function delete($dataObj);
}
?>
在ADataMapper
的子类中,我需要通过不是主键的列找到一行,特别是:'filename'。
最好是实施像findByFilename($filename)
这样的方法,还是有另一种更简单的替代方法?我觉得我只是增加了不必要的复杂性。
答案 0 :(得分:1)
您可以在find()
内添加支票。如果参数是字符串,则调用私有findByFileName()
,否则调用findById()
答案 1 :(得分:1)
通常我选择getBySpecificKeyX
方法(所以getById()
/ getByParentId()
类似的家庭),以及一个通用search()
方法,它采用多个搜索项的构造/数组动态查询。这是个人选择。