【发布时间】:2014-06-30 05:12:57
【问题描述】:
对我来说,命名是软件工程中的一个关键概念。出于这个原因,我是设计模式的忠实粉丝,因为它为我(我认为是)常见的模式/对象提供了合适的名称。
在创建旨在将一个对象转换为另一个对象的对象时,反之亦然,我通常使用名称“map”:
IDictionary<long, User> _userIdMap = new // ...
public class UserMapper
{
UserModel ToModel(UserViewModelModel viewModelModel) { ... }
UserViewModelModel ToViewModelModel(UserModel model) { ... }
}
但是最近我加入了一个项目,其中这种性质的对象被称为变形金刚,我明白为什么它们也可以这样称呼。
我的理解是,当存在明确的双向一对一关系时,术语“映射”是合适的:如果 ObjectB 可以“映射”到 ObjectA,则 ObjectA 可以“映射”到 ObjectB。如果这种关系是单向的,那么(我的理解是)它并不是经典计算机科学术语中的真正“地图”。
映射器、转换器、转换器或将一个对象更改为另一个对象的其他(此处未提及)名称之间是否存在标准的传统区别,如果有,命名时应考虑哪些描述或经验法则这些对象?
【问题讨论】:
-
我同意你的解释。也许你想看看范畴论?
标签: oop map transformation naming conventions