
“别名”不是两个相似对象,而是多个名称或入口实际指向同一个对象。通讯录里“老陈”和一串手机号若对应同一个联系人,改其中显示的地址,另一处看到的也是新地址;两个标签并没有复制出两个人。
它重要,是因为名称不同容易让人误以为状态也彼此独立。在程序、数据库和协作文件中,通过一个别名修改共享对象,其他入口会同时受影响;若误把别名当副本,就会出现“我只改了这一份”的错觉。反过来,把本应同一的对象误建成两份,又会造成更新不一致。
别名与同义词不同:同义词讨论词义相近,别名强调指称同一;也与等价性不同,两个对象可以在某个问题上等价,却仍是两个对象。判断别名,关键不是名字像不像,而是追问:这些入口最终连接的身份和状态是否同一。
了解 Geoffrey Chen 的更多信息
订阅后即可通过电子邮件收到最新文章。