zoukankan      html  css  js  c++  java
  • 提炼函数案例 一次循环中完成多个任务

    提炼函数案例 一次循环中完成多个任务

    参考

    修改代码的艺术 6.1 新生方法

    原始代码

    需求:只对没有发布过的entry进行发布日期并且添加到列表中。

    public class TransactionGate{
    	public void postEntries(List entries){
    		for(Iterator it = entries.iterator(); it.hasNext();){
    			Entry entry = (Entry) it.next();
    			entry.postDate();
    		}
    		transactionBundle.getListManager().add(entriesToAdd);
    	}
    }
    

    方式一

    public class TransactionGate{
    	/*
    	我们将2个操作混在一起了:一个是日期发送,另一个是重复项检查。
    	*/
    	public void postEntries(List entries){
    		List entriesToAdd = new LinkedList();
    		for(Iterator it = entries.iterator(); it.hasNext();){
    			Entry entry = (Entry) it.next();
    			if(!transactionBundle.getListManager().hasEntry(entry){
    				entry.postDate();
    				entriesToAdd.add(entry);
    			}
    		}
    		transactionBundle.getListManager().add(entriesToAdd);
    	}
    }
    

    方式二

    public class TransactionGate{
    	public List uniqueEntries(List entries){
    		List result = new LinkedList();
    		for(Iterator it = entries.iterator(); it.hasNext();){
    			Entry entry = (Entry) it.next();
    			if(!transactionBundle.getListManager().hasEntry(entry){
    				result.add(entry);
    			}
    		}
    		return result;
    	}
        /*
            当再出现一些针对非重复项的操作的时候,我们可以创建独立的方法来处理这些新的操作。
        */
        public void postEntries(List entries){
            List entriesToAdd = uniqueEntries(entries);
            for(Iterator it = entries.iterator(); it.hasNext();){
                Entry entry = (Entry) it.next();
                entry.postDate();
            }
            transactionBundle.getListManager().add(entriesToAdd);
        }
    }
    
  • 相关阅读:
    第二章IntelliJ IDEA 安装目录的核心文件讲解
    第一章首次运行 IntelliJ IDEA 示例
    struts json ajax整理
    关于struts2文件下载
    mybatis深入资料
    MyBatis获取插入记录的自增长字段值
    好久没有更新博客了,今天更新了几篇
    枚举Enum 的常用方法
    angular js中ng-model时间格式化
    input框输入完回车即可查询事件
  • 原文地址:https://www.cnblogs.com/mozq/p/12248106.html
Copyright © 2011-2022 走看看