我的问题是何时使用规范模式,何时使用特定的 SQL 查询。
我知道特定模式需要使用具体规范收集整个集合和后过滤器。但是我不明白具体SQL查询前面的优势。
CarColorSpecification cc = new CarColorSpecification(RED);
CarAgeSpecification ca = new CarAgeSpecification(OLDER, 5);
ISpecification finalSpec = cc.And(ca);
List<Car> res;
List<Car> carColl = service.getCars();
foreach(Car c in carColl) {
if(finalSpec.isSatisfiedBy(c)) {
res.add(c);
}
}
在 SQL / Hibernate 中也是如此
FROM Car c WHERE c.color = RED AND c.age > 5
我认为这取决于要处理的数据量。