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

本文通过历史场景探讨了分类与泛化的区别,并在UML图中展示。讨论了PartyRole的分离,以及在数据模型中如何表示Role和Relationship,提出了不同表示法。文章强调了在领域模型中Type的使用和意义,以及Party与PartyRole的多对多关系。最后,给出了数据模型中相关实体的定义。

缘起:

       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”。。。

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

Git 中出现的 `pathspec` 错误通常表明 Git 无法找到与指定路径匹配的文件或目录。这类错误可能由多种原因引起,包括路径拼写错误、文件未被添加到版本控制中、路径包含特殊字符或路径长度超出限制等。 以下是几种常见的解决方法: 1. **检查路径拼写和格式** 确保路径中的每个字符都正确无误,尤其是大小写和特殊字符。Windows 文件系统通常不区分大小写,而 Git 在某些情况下可能会区分大小写。此外,路径中包含空格或特殊字符时,需要使用引号将路径包裹起来,例如: ```bash git add "classification/.vs/classification/CopilotIndices/17.14.1091.29919/CodeChunks.db-shm" ``` 2. **确认文件存在且已被 Git 跟踪** 如果文件尚未被 Git 跟踪,可以使用 `git add` 命令将其添加到暂存区。如果文件已经被 Git 跟踪,但仍然报错,可以尝试使用 `git ls-files` 命令查看该文件是否在 Git 的索引中: ```bash git ls-files | grep "CodeChunks.db-shm" ``` 3. **处理路径长度限制** 在 Windows 系统上,Git 默认的路径长度限制为 260 个字符。如果路径过长,可以通过以下命令启用长路径支持: ```bash git config --global core.longpaths true ``` 4. **清理 Git 缓存并重新初始化** 有时,Git 的索引文件可能会损坏,导致路径无法正确解析。可以尝试删除索引文件并重新初始化: ```bash rm .git/index git reset git add . git commit -m "Reinitialized git index" ``` 5. **关闭占用文件的进程** 如果文件正在被其他程序占用,Git 可能无法访问它。可以尝试关闭相关程序或使用任务管理器终止占用文件的进程。 6. **检查 Git 版本和配置** 确保使用的是最新版本的 Git,并检查是否有不兼容的配置选项。可以通过以下命令更新 Git: ```bash git --version ``` ### 示例代码 以下是一个简单的脚本,用于检查并处理 Git 中的 `pathspec` 错误: ```bash #!/bin/bash # 检查路径是否存在 if [ -f "classification/.vs/classification/CopilotIndices/17.14.1091.29919/CodeChunks.db-shm" ]; then echo "文件存在,尝试添加到 Git..." git add "classification/.vs/classification/CopilotIndices/17.14.1091.29919/CodeChunks.db-shm" if [ $? -eq 0 ]; then echo "文件成功添加到 Git。" else echo "无法添加文件,请检查路径是否正确或文件是否被占用。" fi else echo "文件不存在,请检查路径是否正确。" fi ``` ### 相关问题 1. Git 中如何解决路径长度超过限制的问题? 2. 如何检查 Git 是否跟踪某个文件? 3. Git 中的 `pathspec` 错误通常由哪些原因引起? 4. 如何在 Git 中启用长路径支持? 5. Git 中文件被其他程序占用时如何处理? 如果上述方法仍无法解决问题,建议提供更详细的错误信息和上下文,以便进一步排查。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值