文档章节

Collecting Parameter模式

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 412
阅读 17
收藏 0
点赞 0
评论 0

  作为一种不太常被提及的设计模式,Collecting Parameter并太为人所熟知。我对这一模式的认识最初来自《JUnit In Action》一书2.4节对TestResult的介绍。JUnit中的TestResult就是Collecting Parameter模式的应用。简单来讲,当我们需要收集一连串多个方法的返回值时,我们需要在这些方法中传入一个对象,用以收集返回的结果。目前在oobbs系统的DomainEvent机制的设计中我又遇到了这一模式的一个典型应用场景。当一个DomainObject触发一个事件时,相应的监听器会监听到这个事件然后做出相应的处理。DomainObject有时需要得到处理的结果,这时我们可以让监听器的处理方法以返回值的形式返回处理结果,但从事件处理的机制来看这有些怪异,因为一般意义上,监听器的处理方法是没有返回值的,如果事件源有需要改变的地方监听器会在传过来的event对象得到事件源的引用,进而可以对其直接操作。但是很多时候,DomainEvent的监听器需要返回的是DomainObject业务方法在计算过程中需要的中间值(local variable),DomainObject并没有相应的field. 更重要的一个原因是:有时候,一个domain event很有可能会被两个以上的listener接连处理,有时候,后续的listener可能需要知道前一个listener处理的结果,在此情况下,Collecting Parameter显得更加必要。

本文转载自:http://blog.csdn.net/bluishglc/article/details/5984601

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
12cR2_AWR相关参数设置

Oracle 12cR2 性能优化文档。 https://docs.oracle.com/database/122/TDPPT/oracle-database-performance-method.htm#TDPPT007 Gathering Database Statistics Using the Automatic Workloa......

roidba ⋅ 2017/10/25 ⋅ 0

NetXMS 2.1-M1 发布,系统监控工具

NetXMS 2.1-M1 发布了。 NetXMS 是一个新的,发展迅速的系统监控工具, 在GPL2许可下发布。它可用于监测整个IT基础设施,从支持SNMP的硬件(如交换机和路由器)到您的服务器或者是应用程序。...

达尔文 ⋅ 2016/10/10 ⋅ 0

理解并取证:以太通道的动态协商机制的工作原理

理解并取证:以太通道的动态协商机制的工作原理                      取自博主《思科CCNP交换技术详解与实验指南》试读版 3.1理解以太通道的理论部分 3.1.1提出以太通...

kingsir827 ⋅ 2015/12/23 ⋅ 0

使用 certbot-auto 安装let s encrypt 证书报错

使用 certbot-auto 安装let s encrypt 证书报错 错误信息: pip prints the following errors: ===================================================== Collecting argparse==1.4.0 (from -......

任重而道元 ⋅ 2017/03/08 ⋅ 1

liinux/crawler4j

#--------------------------------------------------------------------------------- #说明:源码地址 #https://github.com/yasserg/crawler4j #此项目目的仅为学习此源代码。 #学习样例代......

liinux ⋅ 2016/08/18 ⋅ 0

ZABBIX 2.0.7正式版发布,分布式系统监控

监控系统Zabbix发布2.0系列的正式版2.0.7.经过1个RC版。2013-07-31,之前的正式版2013-04-22的2.0.6.修正了大量Bug,增强了Oracle后端性能,增加了包括中文在内语言翻译。1.8系列1.8.17.开发版...

fei ⋅ 2013/07/31 ⋅ 0

shell编程(二)

博主名: 李常明 博文地址: http://keep88.blog.51cto.com 此笔记出自老男孩书籍: 跟老男孩学linux运维 shell编程实战 shell变量知识进阶与实践 1、shell中的特殊位置参数变量: 例如: 1)...

咖啡猫Mr ⋅ 2017/05/31 ⋅ 0

SHELL学习笔录

前段时间学了学shell,做了些笔记,希望对好学者有所帮助,如下: 1.echo "hello" 输出hello,自动打印换行符 echo "hello c" 然echo不打印换行符 echo * 显示所有文件,不包括隐藏文件 echo...

一起daydayup ⋅ 2012/08/03 ⋅ 1

关于DB2 复制 Schema(模式)

各位数据库的大牛 目前我遇到了一个 复制DB2 Schema的问题 我这里有一个ITMUSER 的模式 下面有比较多的表 我现在想在当前数据库下重新拷贝一个模式,名字不一样而已 我使用了ADMINCOPYSCHEMA...

Zofda ⋅ 2012/07/26 ⋅ 0

python第三库安装方法记录

一、Python包管理工具 Python包管理工具,可以很方便的安装第三方模块 1. setuptools 下载地址:https://pypi.python.org/pypi/setuptools/ setuptools-24.0.3.tar.gz的下载地址: https://...

koumm ⋅ 2016/07/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api.DATA ls_appl_object TYPE gos_s_obj.DA...

JerryWang_SAP ⋅ 29分钟前 ⋅ 0

Cube的构建过程

Cube 的构建方式有两种:全量构建和增量构建。两者的构建过程完全一样,区别在于构建时读取的数据源是全集还是子集。 Cube的构建步骤: 1.创建临时的 Hive 平表(从 Hive 读取数据)。 2.计算...

无精疯 ⋅ 34分钟前 ⋅ 0

云计算的选择悖论如何对待?

导读 人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云...

问题终结者 ⋅ 37分钟前 ⋅ 0

637. Average of Levels in Binary Tree - LeetCode

Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这个树,把map里面填值,遍历结束后,再遍历这个map,把每...

yysue ⋅ 52分钟前 ⋅ 0

IDEA配置和使用

版本控制 svn IDEA版本控制工具不能使用 VCS-->Enable Version Control Integration File-->Settings-->Plugins 搜索Subversion,勾选SVN和Git插件 删除.idea文件夹重新生成项目 安装SVN客户......

bithup ⋅ 今天 ⋅ 0

Hive函数

1.函数explode (一转多) create table hive_wc(sentence string); load data local inpath '/home/hadoop/data/hive-wc.txt' into table hive_wc; 结果: hive > select * from hive_wc; ......

GordonNemo ⋅ 今天 ⋅ 0

PE格式第三讲扩展,VA,RVA,FA的概念

作者:IBinary 出处:http://www.cnblogs.com/iBinary/ 版权所有,欢迎保留原文链接进行转载:) 一丶VA概念 VA (virtual Address) 虚拟地址的意思 ,比如随便打开一个PE,找下它的虚拟地址 这边...

simpower ⋅ 今天 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 今天 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 今天 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部