文档章节

Collecting Parameter模式

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 412
阅读 18
收藏 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
0
NetXMS 2.1-M1 发布,系统监控工具

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

达尔文
2016/10/10
2.3K
0
理解并取证:以太通道的动态协商机制的工作原理

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

kingsir827
2015/12/23
0
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
297
1
liinux/crawler4j

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

liinux
2016/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
27分钟前
0
0
AVA中CAS-ABA的问题解决方案AtomicStampedReference

了解CAS(Compare-And-Swap) CAS即对比交换,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS。 JAVA中CAS的实现 JAVA中的cas主要使用的是...

码代码的小司机
29分钟前
1
0
Android JNI开发系列(十三) JNI异常处理

JNI 异常处理 JNI异常与JAVA处理异常的区别 JAVA 有异常处理机制,而JNI没有 如果JAVA中异常没有捕获,后面的代码不会执行,JNI会执行 JAVA编译时的异常,是在方法显示的声明了某一个异常,编...

蔡小鹏
42分钟前
2
0
简单介绍Java 的JAR包、EAR包、WAR包区别

WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。 War是...

Linux就该这么学
今天
1
0
Qt那些事0.0.7

在帮助文档(Overview - QML and C++ Integration)中随缘遇到一张图,是关于C++对象与QML整合介绍的,值得标记下来,虽然大部分功能也有所涉猎,但是还是留个记号,万一哪天我失忆了还想写Q...

Ev4n
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部