1700484409
//基准对象
1700484410
1700484411
private Object obj;
1700484412
1700484413
public BizSpecification(Object_obj){
1700484414
1700484415
this.obj=_obj;
1700484416
1700484417
}
1700484418
1700484419
@Override
1700484420
1700484421
public boolean isSatisfiedBy(Object candidate){
1700484422
1700484423
//根据基准对象和候选对象,进行业务判断,返回boolean
1700484424
1700484425
return false;
1700484426
1700484427
}
1700484428
1700484429
}
1700484430
1700484431
然后就是看怎么使用了,场景类如代码清单37-28所示。
1700484432
1700484433
代码清单37-28 场景类
1700484434
1700484435
public class Client{
1700484436
1700484437
public static void main(String[]args){
1700484438
1700484439
//待分析的对象
1700484440
1700484441
ArrayList<Object>list=new ArrayList<Object>();
1700484442
1700484443
//定义两个业务规格书
1700484444
1700484445
ISpecification spec1=new BizSpecification(new Object());
1700484446
1700484447
ISpecification spec2=new BizSpecification(new Object());
1700484448
1700484449
//规则的调用
1700484450
1700484451
for(Object obj:list){
1700484452
1700484453
if(spec1.and(spec2).isSatisfiedBy(obj)){//and操作
1700484454
1700484455
System.out.println(obj);
1700484456
1700484457
}
1700484458
[
上一页 ]
[ :1.700484409e+09 ]
[
下一页 ]