当前位置: 首页 > 知识库问答 >
问题:

映射器中的API调用被认为是不好的做法吗?

佘飞鸣
2023-03-14

使用DTO作为API模型是很常见的。通常,您需要在之后将这些DTO映射到其他模型。我将用下面的例子让它变得非常简单:

class RequestDto {
  private String companyId;
  // more fields ..
  // getter, setter etc..
}

class SomeModel {
  private Company company;
  // more fields ..
  // getter, setter etc..
}
class RequestMapper {
  public SomeModel mapRequestToSomeModel(RequestDto request){
    Company company = fetchCompanyFromApi(request.getCompanyId()); // makes a request to another service
    
    SomeModel someModel = new SomeModel();
    someModel.setCompany(company);
    // map more fields..

    return someModel;
  }
}

共有1个答案

郭思淼
2023-03-14

在我看来有点臭。我(个人)对映射器的期望是非常非常便宜,特别是如果其他映射器很琐碎的话。不涉及数据库或API调用。我更希望创建某种转换服务,它执行相同的步骤,但调用不同。

对于名为get…的函数,经常会出现类似的问题,在这些函数中,我永远不会期望有昂贵的操作。

 类似资料:
  • 我有一个问题,关于什么是正确的做法,使用SwingU实用程序的调用稍后方法。 所以首先,我想确认我理解正确。 据我所知,对GUI的更改必须在EDT上完成,因为Swing组件不是线程安全的。invokeLater方法将Runnable作为参数,该Runnable中包含的任何内容都将在EDT上运行。因此,对Swing组件的任何调用都被放入一种队列中,在EDT上一次执行一个。 有了这些,我的问题是:使用

  • 问题内容: 我正在开发一个网页,在那里我为类似国际象棋的游戏布置一块面板,以及几个棋盘托盘。所有操作都使用HTML(使用jQuery在游戏进行时进行动态更新)完成。在某个地方,我想到在页面中使用元素的绝对定位被认为是不好的做法,并且最好使用相对定位。 经过相对定位的困扰了很长时间之后,我意识到板元件的绝对定位要容易得多,而且要正确得多。 有谁知道相对定位优于绝对定位的原因吗?在决定采用哪种方法时,

  • 问题内容: 在Java中,为什么从构造函数中调用方法被认为是不好的做法?如果该方法计算量大,是否特别糟糕? 问题答案: 首先,通常在构造函数中调用方法没有问题。这些问题特别涉及调用构造函数的类的可重写方法以及将对象的引用传递给其他对象的方法(包括构造函数)的特殊情况。 避免重载方法和“泄漏” 的原因可能很复杂,但它们基本上都与防止使用未完全初始化的对象有关。 避免调用可覆盖的方法 避免在构造函数中

  • 问题内容: 为什么每个人都告诉我编写这样的代码是一种不好的做法? 我省略花括号的最大论据是,有时花括号可能是花括号的两倍。例如,以下代码为C#中的标签绘制发光效果。 您还可以获得链接usings在一起的额外好处,而不必缩进一百万次。 花括号的最常见参数涉及维护编程,以及在原始if语句及其预期结果之间插入代码会引起的问题: 问题: 想要使用该语言提供的更紧凑的语法是错误的吗?设计这些语言的人很聪明,

  • 问题内容: 我有一个类的以下代码,它工作正常: 但是,我认为在该方法中实现OnClickListener是一种不好的做法。为什么会有这种不好的做法,还有什么更好的选择? 问题答案: 最好在ViewHolder中处理单击逻辑的原因是,它允许更明确的单击侦听器。如Commonsware书中所述: 很久以来,ListView行中的可单击小部件(如RatingBar)一直与行本身的单击事件发生冲突。获取可

  • 问题内容: 我在这里阅读了问题:将新值分配给方法参数是否有问题?。但是我不清楚是否做类似的事情: 要么: 这基本上只是为了避免声明一个新的局部变量,这值得吗?这被视为不好的做法吗? 问题答案: 这是一个坏习惯。您将很难找到牺牲可读性值得的方案。对于不了解Java的“按价值传递”策略的人来说,这尤其令人困惑,可悲的是很多人。