这是partech的blog的内容,我想我对这个问题应该算是小有研究,拿出来供大家参考。
首先要说明的是PartyRole和Party到底都是什么?PartyRole,简而言之,就是角色(可能是人的角色,也可能是物的角色。人的角色如:父亲,儿子,丈夫,员工,物的角色如:抵押品,车辆,固定资产。。。)。 在早期的OOAD中(特别是使用了传统的名词概念法),这些都是显而易见的领域对象。而且,在大多数人的印象中,这些确实也被做为领域类(和实体类)存在的。
这样做的隐含的问题就是:软件描述的环境跟实际的业务环境不符,为什么这么说呢:举一共简单的例子:我是我老爹的儿子,我是我儿子的老爹,我是我老婆的老公,我是cheeloo soft公司的员工,在同一时段,我(这个人)居然拥有了4个角色,这也就意味着,我要在系统中填写4遍个人信息(或者,让系统管理员替我填写,累死他,哈哈。).
于是,精通OO的人们,进行了细粒度的划分,抽取出来一共存储特定人员信息的人员实体,该实体与人员的职务或角色无关,比这个被抽出来的“人员 Person”,更抽象的就是Party。Party是(person 和organization的深层抽象).
信息的冗余带来的坏处,我就不多说了,反正在过去&