最佳实践:在实例化类中批量转换字符串或在每个实例化类中封装字符串

  • 本文关键字:实例化 字符串 封装 转换 最佳 java
  • 更新时间 :
  • 英文 :


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

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

当然两种方法都可以,但是怎么做呢?

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

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

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

最新更新