color uml and dci 的问题

11-04-15 dArtist
                   

前段时间看了下color uml 和 dci 发现 四色原型可以直接通过dci来实现 觉得非常不错。

在网上看了几个dci的例子——主要是转账那个,然后自己开始琢磨1个使用技能子系统的实现(我是做游戏的...)

通过trait 实现了 部分类之后 发现了1个比较严重的基础问题:是ppt在参加mi中扮演role 还是ppt扮演role参加mi。

这里考虑的一个例子是:

ppt: Character

role: SkillUser SkillTarget Skill

desc: SkillInfo

mi: UseSkill

我在useskill的实例中 应该保存的是 role 还是 ppt

在转账的例子中transfer的实例中保存了 Account(ppt) 而不是 TransferMoneySource(role) 和 TransferMoneySink(role)

我总觉得理解起来怪怪的 还望各位指教

[该贴被dArtist于2011-04-15 13:43修改过]

                   

4
banq
2011-04-15 14:16

2011年04月15日 13:41 "@dArtist"的内容
是ppt在参加mi中扮演role 还是ppt扮演role参加mi ...

都不应该是,PPT是PPT,表达在什么地方什么事情,而Role是角色,两个意思分明很清楚。

转账案例有一个特殊地方是Account,Account在一些系统是ROle,而在一些系统是PPT,不能按照通常意义来理解。

dArtist
2011-04-15 14:34

2011年04月15日 14:16 "@banq"的内容
2011年04月15日 13:41 "@dArtist"的言论

是ppt在参加mi中扮演role 还是ppt扮演role参加mi ...

都不应该是,PPT是PPT,表达在什么地方什么事情,而Role是角色,两个意思分明很清楚 ...

我想表述的意思是在四色原型中ppt应该是通过一个role间接的进入mi

但这个间接性发生的时机应该是什么样的,也就是说对于mi来说 他能处理的是ppt

还是role

就好像我现在的UseSkill

new UseSkill(Skill skill, Character user, Character target).execute();

new UseSkill(Skill skill, SkillUser user, SkillTarget target).execute();

这2者区别在于第1个mi他获知了ppt 在execute的时候把 ppt 赋予了1个role

即 context.act(user,SkillUser.class);

而第2个mi则是只获知了role 进而直接进行操作。

对于我说的转帐来说 就是第1种

[该贴被dArtist于2011-04-15 14:53修改过]

banq
2011-04-17 10:24

在我看来,ppt不是每次都需要的,我对四色原型的归纳是:什么人role在什么地方ppt做什么事mi

有时情况简单,就是:什么人role做什么事mi

dArtist
2011-04-18 09:43

2011年04月17日 10:24 "@banq"的内容
在我看来,ppt不是每次都需要的,我对四色原型的归纳是:什么人role在什么地方ppt做什么事mi

有时情况简单,就是:什么人role做什么事mi ...

banq大 我的理解和你的好像有偏差,我记得color uml中有1张DNC的图

里面很清楚的表现出了所有的PPT都不是直接与MI产生联系的

就好像你说的 什么人 其实是ppt 而不是role 什么地方是ppt但不能直接在mi(活动中使用) 而应该变成相应的 活动场所(role)

所以最后的的四色原型(可能)是这样的:

现在有1个活动(mi),

某某某(ppt)将作为本次活动的参与者(role),

本次活动的地点(role)将选在某地(ppt),

本次活动的活动物品(role)有某物...(ppt).

上面是我的理解,可以很清楚的看出带某字的都是ppt,带活动的前缀的都是role,而活动就是mi,而desc其实就是对ppt的划分.

但是现在的重要问题是如果我以接口的形式实现role的话,在每个mi中保存接口信息是非常无用的,因为很多情况下都可能要查询历史记录,而查询则需要具体的类型信息,现在我就对此比较困惑,不知哪位能提供1个比较好的解决方案。

5Go 1 2 3 4 ... 5 下一页