gpt4 book ai didi

java - 最佳实践 : String converting batch in instantiating class or capsulated in every instantiated class

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:23 27 4
gpt4 key购买 nike

一个类Customers实例化许多其他类(例如CustomersFromMysqlCustomersFromPostgeSQL),所有查询数据库都返回客户名称。现在,这些客户名称返回为例如 name = "John Doe",但我的 Customers 类需要的不仅仅是 name,它还需要 nameNoSpace = "JohnDoe"nameInvertedComma = "Doe, John"

我会编写一个辅助类Converter,它具有invertName(name)removeComma(name)等方法。我是否会在查询数据库的每个类(CustomersFromMysqlCustomersFromPostgeSQL)中实例化转换器以返回所有必需的变量,还是会在实例化类Customers中实例化Converter,以便当我返回结果时,我会迭代列表并批量转换它们?

当然两者都可以,但是该怎么做呢?

最佳答案

在这种情况下,您应该记住职责分离。与数据库相关的类应该只处理数据库特定的方面。对检索到的数据执行操作(计算)应视为业务逻辑。因此,如果您的 Customers 类中已经有一些逻辑,那么它将是放置转换例程的完美位置。尽管如此,这实际上取决于你认为你的逻辑属于哪里。

应用一些命名约定也可能有意义。一般来说,您至少可以区分不同类型的类,以防像您在问题中描述的那样:

  1. 数据访问对象(DAO);执行数据库操作(您的 SQL 类)
  2. 数据传输对象 (DTO) 或实体;代表您的业务对象的结构
  3. 业务逻辑;使用DAO检索DTO,根据您的要求执行一些逻辑,再次使用DAO将DTO推回数据库

关于java - 最佳实践 : String converting batch in instantiating class or capsulated in every instantiated class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718859/

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