• 四色原型概念辨析


    四色原型概念辨析

     

    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

  • 相关阅读:
    GridView 激发了未处理的事件“RowEditing”
    C#中字符串转换成枚举类型的方法
    UltraEdit 应用程序发生错误0xc0000417
    配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法
    数据绑定中的一个问题"pages enableEventValidation="true""
    jquery json 格式教程
    Delphi的泛型学习
    Delphi取Ajax网页内容
    Delphi 中经常使用的正则表达式
    Delphi中的动态数组总结
  • 原文地址:https://www.cnblogs.com/ego/p/1563709.html
Copyright © 2020-2023  润新知