我在我正在开发的 PHP 应用程序中使用数据映射器模式并且有一个问题。目前,您请求一个具有特定 ID 的 Site 对象,映射器将查找该行,创建一个对象并返回它。但是,如果您对同一个站点再次执行此操作,您最终会得到两个具有相同数据的不同对象。例如。:
$mapper = new Site_Mapper();
$a = $mapper->get(1);
$b = $mapper->get(1);
$a == $b // true
$a === $b // false
所以,我的问题是,我应该:
- 将实例化的 Site 对象存储在映射器中,这样我就可以在创建新对象之前检查它们是否已经存在(如果有多个相同类型的映射器可能会出现问题)
- 执行与 #1 相同的操作,但确保每个映射器只有一个实例
- 与 #1 一样,但使用静态属性,因此多个实例不是问题
- 不要担心,因为它 可能不是问题