它与名称完全相同.COM客户端可以要求系统使用简单标识符(CoCreateInstance)创建COM对象.该标识符具有整个机器的范围.程序员编写的不同代码块彼此不了解并为不同的公司工作.
名字的问题在于人们很擅长选择好名字.一个程序员选择与另一个程序员完全相同的名字的可能性,距离3000英里和5年前很高.像"记录","数据库"等名称将是流行的选择.在这个网站上也很明显,很多用户都是"Jason"或"Mike".他们不介意,他们在审查自己的个人资料时知道自己的名字.语境.当他们向我发送一封只包含他们用户名的电子邮件时,我找不到它们,不可能找到它们,跟进一个带有通用主题字符串的问题.
获取名称冲突和COM创建错误的对象是灾难性的.程序停止工作,因为它得到一个完全错误的对象.找出原因很难,错误信息很糟糕.实际上解决这个问题是不可能的.打电话给程序员B,并以最友好的方式问他"选择一个不同的名字,有人已经选择了你的名字"不起作用.自动响应是"呼叫程序员A".
使用GUID而不是名称时,这不是问题.它们是全球唯一ID.发生碰撞的几率天文数字很小.