DDD领域驱动设计批评文集
做强化自测题获得“软件方法建模师”称号
《软件方法》各章合集
例如,用EA在BDD(块定义图)上画了一个关联:
此时,“手机”和“SIM卡”中都没有出现references栏。
右击“手机”,选“Compartment Visibility”,也没有看到可以勾选的references选项。
此时由于图上可以看到关联关系,信息倒也没有缺失,但是,把“SIM卡”从图上删除,也没有出现references栏。
此处,需要通过IBD(内部块图)同步一下:
右击“手机”,选择“Internal Block Diagram”,创建“手机”的IBD:
然后,右击IBD的空白处,选择“Synchronize Structural Elements”
此时,IBD中出现了“SIM卡”,切回到BDD,references分栏也出现了:
从IBD图也可以添加references。把“SIM卡”从Project Browser拖到IBD上,“Drop as”选择“Property”:
然后,在属性框把属性名“Property1”改为“辅卡”:
此时,切回BDD,“辅卡”出现在Properties分栏,而且EA没有在“手机”和“SIM卡”之间创建新的关联线。
切回IBD,选中“辅卡”,在属性框的Property栏勾选“Reference”:
切回BDD,“辅卡”出现在References分栏,但 “手机”和“SIM卡”之间仍然没有新的关联线。
因此,EA中按照第一种操作,应该是更妥当的做法。
**********
理想的使用场景可能应该是下面这样,不过目前EA没有做到:
在图上创建关联,此时图上已有关联线,references不应该显示该关联。如果从图上删掉引用关联的类,references中出现从图上删掉的引用关联。
IBD上添加了新的引用,也应该同步回BDD,建立新的关联线。