gpt4 book ai didi

oop - 在 OOP 语言中命名对象时, "map"和 "transform"有什么区别?

转载 作者:行者123 更新时间:2023-12-04 17:01:03 25 4
gpt4 key购买 nike

对我来说,命名是软件工程中的一个关键概念。出于这个原因,我是设计模式的忠实拥护者,因为它为我(我认为是)为常见的模式/对象提供了合适的名称。

当创建目的是将一个对象转换为另一个对象(反之亦然)的对象时,我通常使用名称“map”:

IDictionary<long, User> _userIdMap = new // ...

public class UserMapper
{
UserModel ToModel(UserViewModelModel viewModelModel) { ... }
UserViewModelModel ToViewModelModel(UserModel model) { ... }
}

然而最近我加入了一个项目,其中这种性质的对象被称为变形金刚,我明白为什么它们也可以被称为这个。

据我了解,当存在明确的双向一对一关系时,术语“映射”是合适的:如果 ObjectB 可以“映射”到 ObjectA,则 ObjectA 可以“映射”到 ObjectB。如果这种关系是单向的,那么(我的理解是)它并不是经典计算机科学术语中的真正“ map ”。

在映射器、更改器(mutator)、转换器或其他(此处未提及)对象名称之间是否存在标准的、传统的区别,这些名称将一个对象更改为另一个对象,如果是,在命名时应考虑哪些描述或经验法则这些对象?

最佳答案

在计算机科学中,“映射”用于将已知值/实体关联到另一个已知值/实体,例如在您的问题中,ObjectA 可以映射到 ObjectB。

“转换”用于使用函数将任何可接受的值转换/转换为另一个值,例如计算 x^2 的“转换”; x 可以是任何值。

因此,作为“经验法则”,如果一组有限对象/值具有明确的关系,则应使用映射,而如果处理非对象/值,则应使用转换-有限 一组值/实体,其中应使用函数计算值。

关于oop - 在 OOP 语言中命名对象时, "map"和 "transform"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com