四色原型建模遇到的问题

    
wilsonp
14-01-15 2 496

最近在学习关于四色原型建模的相关内容,但在实际建模时遇到一些模棱两可的东西,举个实际点的例子比较好描述,比如“创建球队”这个活动,涉及到的业务规则是这样的:
1、每支球队包含至少11名球员,初始只有11名球员
2、每个玩家只能有一个球队
我的理解是这样的:
PPT:Manager(玩家)、Team(球队)、Footballer(球员)
DESC:TeamDesc(球队描述)、FootballerDesc(球员描述)
MI:CreateTeamMI(创建球队MI)
Role:????
这里Role确定不了,如果硬要抽象一个的话,那这里的Role应该就是TeamCreaterRole(球队创建者角色),Manager含有其引用,如下图:



上图中Team是一个聚合根,且是实体,其余的如Footballer、TeamDesc、FootballerDesc等都是VO,这里暂不考虑工厂来创建球队,集中关注四色原型的设计。
还有一些不清楚的问题:
1、FootballerDesc:是否是应该抽取所有球员的公共属性呢?比如都有攻击、防守属性,那唯一同的就只有球员ID了,这样一来Footballer类中就只有一个属性了
2、假如还有一个“球员位置”的属性,不同的位置有不同的关键属性,即每个球员都有10个属性,但根据位置的不同,关键属性的种类也有不同,那这种情况下,就会抽象出一个Seat(球员位置)的类,那这个类和Footballer、Team的关系是怎样的呢?
我的理解是:Team可以持有一个Seat的集合,然后每个Seat对应一个球员,即Team不直接和球员发生关联,这样当有一个“查询所有上场球员”的MI时就可以直接通过这个关联查找到,没有上场的球员可以使用一个特殊的位置“Bench”

[该贴被wilsonp于2014-01-15 18:33修改过]

banq
2014-01-16 08:27

场景太简单,建模关键是抓动词,而不是静态名词实体。
参考:
http://www.jdon.com/44815

anonymous
2018-08-06 12:57

显然遗漏了一些概念,比赛本身才是MI,参与比赛的上场的队员和球队都是Role,球员Role有位置属性,没有上场的只是队员,队员是PPT,所以没位置属性,球员的攻击、防守能力,是因人而异的,因此不是DESC的部分,DESC是对PPT的共性分类,它的属性值不会因为PPT个体的改变而改变,例如商品(PPT)和商品规格(DESC),不是所有的场景都会用到DESC,这个场景我认为可以没有