为避免副作用:我不想在我的方法中更改参数对象属性值。我更喜欢创建一个新的来代表结果并返回它。
避免副作用仅在多线程环境中非常重要,但仍然是一个很好的实践。f(X)=Y ,能够比较两个对象是很好的,一个 u 作为参数接收,一个 u 作为结果给出。
这意味着,我需要将我的 IN 参数对象中的所有属性映射到我创建的 OUT 新实例对象。这将使一些代码像:
groundCertResult.setExpirationDate(pGroundCertificate.getExpirationDate());
groundCertResult.setValidationDate(pGroundCertificate.getValidationDate());
groundCertResult.setId(pGroundCertificate.getId());
它可以在我的方法中产生很多行:$
我也可以不用映射那么多值,只需添加一行
//use findByID without mapping that much
final GroundCertificate groundCertResult =
groundCertificateDao.findById(pGroundCertificate.getId());
但这最终会导致访问数据库和更多处理。
做一些使用反射的通用方法,将一个对象映射到另一个对象?在性能方面,这将是昂贵的。
你会选择什么?视项目需求而定。考虑到可维护性、可扩展性...