《分析模式》笔记之责任模式与合同模式

原创 2006年06月13日 10:36:00

(同步自http://www.blogjava.net/AndersLin/archive/2006/06/11/51986.html

将两个模式放在一起是因为无论是role还是product:
不仅仅是体现了OO的SRC原则,当一部分逻辑够复杂时,就分离出去成为新层次。
而且在于,我认为在一些情况下,责任模式是合同模式的一个特例。

第一个是责任模式。
也许更应该陈作party模式。在这个章节中,详细讨论了party,hierachy,以及与party相关联的概念,包括address,责任。
在party模式中,一个party的责任是由他所在hierarchy和role构成的。
同时责任又被具体化为操作范围:由一些term(借用了合同一章中的term)或者一系列term组成的。
如同观测和测量模式一样,这些term也分定性的和定量的。不过martin没有深入讨论责任的子类型化。
最后一系列的责任映射到Role,正如我们习惯和熟悉了的那样:
一个role包含了相关的一系列操作范围,从外部看,我们看到了一个完整的概念。

第二个是合同模式(包括合同,派生合同等3个章节)
讨论了:合同和产品关系(产品模型是如何被建立的),场景模型建立意图,合同(产品)的子类型化问题以及合同的外观问题。
合同的概念包括:场景,产品和团体。
场景的概念相当于rule engine中的fact,是一系列事实的集合。
产品模式来自于:The product/contract split should be used whenever the customer sees a single deal that is broken int servral deals by the trader.

我以为这个contract和product的关系,与party和role的关系很类似。
表面上看前者是include的关系,而后者不是,更多的,role修饰了party。
然而他们还是有些类似:
1. 首先product和role都可以独立于contract和party之外独立发展(废话一句:))
2. product本身是抽象的,并非代表一个现实世界的实物(还是废话一句)。。
考虑金融市场下的,一个金融产品来说,金融产品是虚拟的,它本身就是一个合同,包含了一系列的操作范围--责任。
注意在这个情况下:一个product包含了一系列的操作范围--责任,从外部看,也呈现了一个完整的概念。而这与role的结构是很像的。

虽然contract和product很自然的看成是include的关系,然而由于product本身是个完整的概念,
使得我们可以反过来看,product修饰了contract。
一个保单包含了不同的party,而保单中的保险产品修饰了保单--描述了不同party的责任关系。

(在强迫自己把两个本来"不大关系"的东东看成一致后:))
party中的责任模型中role相对静态,即role建立后其操作范围基本不变了。
而contract中的prodcut则是一个动态的概念:
即虽然product在定义层面已经规定了大量的责任关系(操作范围),当这些product被包含到contract中,通常会被参数化(子类型化),
当然也有没有被参数化的情况,可以看作一个特列。

设计模式读书笔记:Chain of Responsibility(责任链)

意图: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。...

标准的责任链模式(读书笔记)

package china.of.responsibility.pattern; public abstract class Handler {     protected Handler s...

责任链模式(学习笔记)

责任链模式     这不就是一个踢皮球模式么?! 适用场景:          链式处理结构。          什么是链式处理结构?          我记得看新闻,经常有群众想要解决一个...

责任链模式(Chain of Responsibility)----行为笔记

责任链模式(Chain of Responsibility)----行为笔记 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,并沿着这条责任链传递请求,...
  • xxb2008
  • xxb2008
  • 2012年09月14日 00:34
  • 336

设计模式——责任链(ChainOfResponsibility)学习笔记

经验:一定要写才能学得会。

责任链模式小demo

  • 2015年01月05日 22:57
  • 12KB
  • 下载

责任链模式学习

  • 2014年11月19日 00:47
  • 2KB
  • 下载

Tomcat源码分析(四)--容器处理链接之责任链模式

目标:在这篇文章希望搞明白connector.getContainer().invoke(request, response);调用容器的invoke后是怎么传递到 servlet或者jsp的? ...

责任链模式Demo

  • 2015年12月05日 16:43
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《分析模式》笔记之责任模式与合同模式
举报原因:
原因补充:

(最多只允许输入30个字)