直接上代码如下图:
首先需求:订单order对应一个经纪人agent,有订单的经纪人才能够服务客户customer。要求是高、中等级的客户对应服务的经纪人优先级是高>中>初等级的经纪人,而低等级的客户服务的经纪人优先级是初>中>高。
代码实现:通过订单获取所有对应的经纪人,然后把经纪人根据等级分组。然后判断客户等级,如果是高、中意向,先筛选出高等级经纪人的订单,如果有直接返回,如果没有在筛选出中等级经纪人订单,如果有直接返回,如果还没有说明订单全是初级经纪人订单,最后直接返回。低等级客户实现相反。
代码实现后,提示代码重复!我也知道重复,但是感觉实在没有办法抽取出来。
第一次优化有一行代码重复还是明显的,所以先抽取看看,结果如下图:
优化后还是提示代码重复,那就只能大改了,把判断里面全部抽取出来,重构如下图:
终于idea不提示重复了,但是我们还可以在优化优化,经纪人提前分组不是一定必要的,只有在需要的时候才去获取对应等级的经纪人,最终优化如下图:
这样就减少了集合遍历的次数,实现了一定的优化!
Java程序员日常学习笔记,如理解有误欢迎各位交流讨论!
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved