四色原型概念辨析

四色原型概念辨析

 

Jay

 

注意,这篇文章对DESC和PPT的理解可能存在错误,请参考对照《四色原型札记(一)》中对DESC和PPT的解释。2010年3月28日凌晨。

 

 

1.    DescriptionPPT辨析

1.1.DESCPPT基础概念

Description表示“描述”,更具体的说,它是“分类目录条目”描述。它一是一组反复使用的值。

PPTParty-Place-Thing)用于扮演不同角色的组织、人、地点、事务。PPT是指一个具体的,可以作为单个个体(每个单个个体之间有唯一标识符)被识别、区分出来的对象。

 

在《UML和模式应用》一书中举了一个有趣的例子(第9章,109页,“为什么使用描述类”),从这个例子中可以看出DESC的根源:

假设一种商品有100件,每一件商品都单独(注意,是单独)记录了它的ID、名称、价格等信息,这些信息是每件商品独有的(尽量每件商品的名称和价格都是一样的),在系统中就表示为每件商品是一个单独的实例,在数据库中就表示为每件商品是一条单独的记录。这些商品都保存在库存中(库存可以看作实例的集合,也是一个存储商品的数据表)。现在每售出一件商品,我们都会从库存中移除它,在系统中表示为从库存集合中释放一个实例,在数据库中就表示为从数据表中删除一条记录。那么最后当商品全部售完后,我们所有的对此商品的记录都被抹掉了,没有人知道这件商品的名称和价格。

上述问题表明,对象需要其它事物来记录其描述(也可以称为规格说明),DESC的价值也有在于:从现实角度来看,我们需要描述来记录事物的信息;从计算器角度看,描述可以减少冗余。

 

UML和模式应用》同进归纳了一些使用DESC的情景:

1.          需要有关商品或服务的描述,独立于任何商品或服务的现有实例。

2.          删除期所描述事物的实例后,会导致信息丢失,而这些信息是需要维护的(以后会使用到)。

3.          减少冗余或重复信息。

 

有趣的是,《UML和模式应用》中建议给Product增加描述类ProductDesc,这是把Product类当做PPT,把ProductDesc类当做DESC。但在通常情况下,我们都喜欢把ProductDesc命名为Product(记录商品的信息),而把真正的Product命名为Stock(库存商品,记录一件具体的、有唯一ID的商品),那么就是把Product类当做DESC,把Stock当做PPT了。

 

综上所述,DESC的本质就是从PPT中提炼出来、为PPT服务,方便PPT的维护,并减少PPT冗余的值对象。

1.2.DESCPPT的关系

1.2.1.    DESC是供PPT使用的值对象

DESC是一组可以被反复使用的值,也就是说,它是值对象(Value Object)。

例如有一个Line(线段)对象,而线段是由一组Point(坐标点)组成的。一个Point可以被多个Line反复使用,例如一个Point的坐标是(x=10y=20),当线段A经过这个坐标时,就会使用这个Point,而线段B经过同一个坐标时,使用的也是这个Point,那么我们可以把Point看作一组能够被反复使用的值,这些值只要赋予了初值,那么无论它被哪个对象使用,它的值都保持不变。

应用四色原型进行分析,Line就是一个PPT,而Point就是DESCPoint就是一组能够被多个Line反复使用的值。

 

  
DESC
可以是分级的树形结构。

例如硬盘除了可以从品牌和容量两个方面描述之外,还可以从类型方面描述而类型就是一个分级的树形结构。硬盘的类型可以分为移动硬盘和非移动硬盘,非移动硬盘又进一步可以分为IDE硬盘和SCIS硬盘,这就是一个单根树结构。

对硬盘对象来说,硬盘类型是一组可以被反复使用的值, 

综上所述,
DESC就是一个值对象,供PPT反复使用,并且DESC的值是固定的,PPT在使用中不会更改DESC的值。

1.2.2.    DESCPPT某一部份特性的抽象

PPT是由DESC组成的(当然除了DESC还有其它PPT自己的简单属性,但这些属性基本上可以视为PPT的“匿名”DESC),DESC就是PPT属性的归纳和抽象。

例如在点餐系统中,每个餐馆都有一份菜单,而“宫保鸡丁”和“清炒菜心”这些菜谱几乎每个餐馆的菜单上都有,那么我们就会把菜谱抽象出来,供多个菜单使用。

如果使用四色原型进行分析,菜单就是一个PPT,而多个菜单里面反复出现的“宫保鸡丁”和“清炒菜心”就可以提炼为DESC

类似的场景还有货品与品牌。货品是一个
PPT,而品牌就是供货品反复使用的DESC,它里面有厂家名称等数据,这些数据货品仅仅是使用,并不会修改它。而且其中的“批号”因为是简单类型(一个字符串),所以直接作为货品的一个属性,但它也可以抽象为一个DESC,所以批号字段就是货品的“匿名”DESC
2.
   
PPTROLE辨析

ROLE就是角色,它是PPT参与MI的一种方式。ROLE只有依附于PPTMI才有意义。

但难点是,PPT也允许直接参与MIPPT直接关联MI),那么什么时候让ROLE“搭桥”,而什么时候直接让PPT参与MI

 

posted @ 2009-09-10 00:19  深圳大漠  阅读(1307)  评论(1编辑  收藏  举报