[领域]Party/PartyRole/Classification及其它...

缘起:

       Partechblog以及与“在别处”的讨论。

 

Classification pk Generalization

 

让我们回到旧的历史场景,蒙古人打进北京,建立元大都,汉族人对元政权嗤之以鼻,称其为“鞑子”;若干年后,满族人入关,定都北京,汉族人仍然不服,嚷着“反清复明”。关于这个历史场景,《中国哲学简史》上有着精彩的点评:“”

因此,当时的某一个人,因为对其的评价角度不同,使得他产生了裂变。我们用UML图表现出来,大约应该是这个样子。

1 不同的角度看待同一事物,即对事物的多重分类 (Multiple Classification).

注:在UML2.0中,称泛化箭头旁边的“文化”和“种族”,为泛化集(Generalization Set)

 

分类指定一个对象和它的类型之间的关系(Classification refers to the relationship between an object and its type.

 

这跟我们原来想像的继承关系有很大的差距,在大多数人的印象中,继承就应该是单支的,也就是说,一个对象最后终会属于一个类,现在出现的多重分类,破坏了大家的这种印象。很多人因次,放弃了这种方案的实现。

 

面对这个分析模型,我们真的要放弃吗?答案当然是否定的。

 

我们来看问题的本质:对给定的一个Person 类的实现,怎么让他同时具有华夏和蒙古族两种分类?我们需要转换思路,把图1中,所有的Class都看成是Interface,然后,写一个新的类,来实现所有的这些接口。

2 一个真正的对象,实现并对外暴露了众多的接口,封装了复杂的内部逻辑。

 

这非常类似于com对象的实现。(感兴趣的朋友,可以查看COM规范中的IUnknown 接口之 QueryInterface方式的实现要求)

ThingType vs. Thing

在与需求人员交流后,我们又被告知,对一个人,需要添加新的分类标准:收入类别。按照一个人的月收入情况,可以分为 1000以下”,“10003000”,“30016000”。。。

因此,最终用户实际想看到的分类结果,可能是这个样子:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值