角色和状态的区别

jeri 2023-9-10 13:09

设备关联角色,设备也有子类(车辆/设备),按书中的解释,设备是一个抽象类,角色类名像是带了状态名的类,如在使用的设备/在维护的设备,设备和这几个角色是关联关系,而且是0.1的关系,潘老师的观点是泛化关系还是关联关系?

UMLChina潘加宇

是关联。事物-事物之间可以泛化,角色-角色之间可以泛化(而且顶级的超类就叫“角色”)。角色的目的就是用关联取代泛化(或缩小泛化波及范围)来获得灵活性,类似于GoF中的模板方法变成策略。

角色和状态还是好区分的,角色相当于普通属性,关联到的类就是属性的类型,角色就是属性的名称(名词)。

“类的属性”要说得通。张三(类:人)的配偶(角色)是林志玲(类:人)

状态(形容词)刚好相反,是“状态的类”,“有配偶”(状态)的“张三”(人),而且,状态往往是冗余的。


weixinpanjiayu2