打字猴:1.7004836e+09
1700483600
1700483601 userList.add(new User(“牛二”,8));
1700483602
1700483603 userList.add(new User(“张三”,10));
1700483604
1700483605 userList.add(new User(“李四”,15));
1700483606
1700483607 userList.add(new User(“王五”,18));
1700483608
1700483609 userList.add(new User(“赵六”,20));
1700483610
1700483611 userList.add(new User(“马七”,25));
1700483612
1700483613 userList.add(new User(“杨八”,30));
1700483614
1700483615 userList.add(new User(“侯九”,35));
1700483616
1700483617 userList.add(new User(“布十”,40));
1700483618
1700483619 //定义一个用户查询类
1700483620
1700483621 IUserProvider userProvider=new UserProvider(userList);
1700483622
1700483623 //打印出年龄大于20岁的用户
1700483624
1700483625 System.out.println(”===年龄大于20岁的用户===”);
1700483626
1700483627 for(User u:userProvider.findUserByAgeThan(20)){
1700483628
1700483629 System.out.println(u);
1700483630
1700483631 }
1700483632
1700483633 }
1700483634
1700483635 }
1700483636
1700483637 运行结果如下所示:
1700483638
1700483639 ===年龄大于20岁的用户===
1700483640
1700483641 用户名:马七年龄:25
1700483642
1700483643 用户名:杨八年龄:30
1700483644
1700483645 用户名:侯九年龄:35
1700483646
1700483647 用户名:布十年龄:40
1700483648
1700483649 结果非常正确,但是这样的一个框架基本上是不能适应业务变化的,为什么呢?业务变化虽然无规则,但是可以预测,比如我们这个查询,今天要查找年龄大于20岁的用户,明天要查找年龄小于30岁的用户,后天要查找姓名中包含“国庆”两个字的用户,想想看IUserProvider接口是不是要一直修改下去?接口是契约,而且我们一直提倡面向接口编程,但是在这里接口竟然都可以修改,是不是发现设计有很大问题了!
[ 上一页 ]  [ :1.7004836e+09 ]  [ 下一页 ]