我正在尝试找出在 PHP 中使用规范模式的最佳方法,其中规范可以(可选地)转换为 PHP。
我正在探索一些新的方向,并测试它们的工作情况。代码和想法在我的脑海中仍然很不清楚。
最小的接口是这样的:
interface IRepository {
public function get(ISpecification $specification);
}
interface ISpecification {
public function isSatisfiedBy($candidate);
}
如果存储库隐藏了 sql 数据库,则规范需要转换为 sql。添加 ->toSQL() 方法似乎是临时的。转换规范的类也是一种选择,但最终生成 sql 似乎需要很多开销。
想法赞赏。