这是我的数据映射模式(简化)的类结构示例。请注意,save 和 find 方法在技术上是在具体类中实现的,但还没有做任何事情。有什么替代方法可以避免这种情况?我目前使用的一个选项是实现接口的抽象 DataMapperAbstract 类,为每个方法抛出异常,然后所有具体的数据映射器只需要实现它们使用的函数 - 它只是闻起来很糟糕。就个人而言,我曾想过为每个方法(DataMapper_FindInterface、DataMapper_SaveInterface、DataMapper_DeleteInterface 等)创建一个单独的接口,但似乎有点臭。
interface DataMapperInterface
{
public function find($params);
public function save($object);
public function delete($object);
}
class DataMapper_User implements DataMapperInterface
{
public function find($params)
{
//Execute code to retrieve data from data source
return someDataRetrievalMethod($params);
}
public function save($object)
{
throw new Exception('Method not yet implemented.');
}
public function delete($object)
{
throw new Exception('Method not yet implemented.');
}
}