打字猴:1.70048382e+09
1700483820 userList.add(new User(“杨八”,30));
1700483821
1700483822 userList.add(new User(“侯九”,35));
1700483823
1700483824 userList.add(new User(“布十”,40));
1700483825
1700483826 //定义一个用户查询类
1700483827
1700483828 IUserProvider userProvider=new UserProvider(userList);
1700483829
1700483830 //打印出年龄大于20岁的用户
1700483831
1700483832 System.out.println(”===年龄大于20岁的用户===”);
1700483833
1700483834 //定义一个规格书
1700483835
1700483836 IUserSpecification userSpec=new UserByAgeThan(20);
1700483837
1700483838 for(User u:userProvider.findUser(userSpec)){
1700483839
1700483840 System.out.println(u);
1700483841
1700483842 }
1700483843
1700483844 }
1700483845
1700483846 }
1700483847
1700483848 在场景类中定义了一个规格书,然后把规格书提交给UserProvider就可以查找到自己需要的用户了,运行结果相同,不再赘述。
1700483849
1700483850 大家想想看,如果现在需求变更了,比如需要一个年龄小于基准年龄的用户,该怎么修改?增加一个小于基准年龄的规格书,实现IUserSpecification接口,然后在新的业务中调用即可,别的什么都不需要修改。再比如需要一个类似SQL中like语句的处理逻辑,这个也不难如代码清单37-12所示。
1700483851
1700483852 代码清单37-12 Like规格书
1700483853
1700483854 public class UserByNameLike implements IUserSpecification{
1700483855
1700483856 //like的标记
1700483857
1700483858 private final static String LIKE_FLAG=”%”;
1700483859
1700483860 //基准的like字符串
1700483861
1700483862 private String likeStr;
1700483863
1700483864 //构造函数传递基准姓名
1700483865
1700483866 public UserByNameLike(String_likeStr){
1700483867
1700483868 this.likeStr=_likeStr;
1700483869
[ 上一页 ]  [ :1.70048382e+09 ]  [ 下一页 ]