一个应用系统经常需要某一个对象在不同的上下文中具有不同行为的情形,最常见的例子是客户和供应商的问题。例子:某制鞋企业有很多为它们提供真皮的合作公司,在处理采购订单时,这些合作公司是它的供应商,但这些合作商同时从该制鞋企业采购皮鞋,所以在处理销售订单时,这些公司又变成了它的客户。许多建模人员在处理这类问题的时候,经常轻率地做出判断,当用户需求不能满足时,他们才发现这样的判断是不正确的。正如MartinFowler所言,作为一个分析模式,我在这里主要关心在何种情况下需要使用什么样的模型,而并不是太关心具体的实现如何。本文中出现的Java代码虽然来自TaoBC库,但是出于示例的目的,都进行了简化。读
1