这是一个好主意吗?与其创建具有两个方法 ( insert
and update
) 和两个验证方法 ( validateInsert
and validateUpdate
) 的类,不如创建三个类:一个称为ProductDB
,另一个ProductInsert
(使用 Insert 和 Validate 方法)和另一个ProductUpdate
(使用与 ProductInsert 相同的方法)。
这是否更具可读性、灵活性和可测试性?
这是一个好主意吗?与其创建具有两个方法 ( insert
and update
) 和两个验证方法 ( validateInsert
and validateUpdate
) 的类,不如创建三个类:一个称为ProductDB
,另一个ProductInsert
(使用 Insert 和 Validate 方法)和另一个ProductUpdate
(使用与 ProductInsert 相同的方法)。
这是否更具可读性、灵活性和可测试性?
PaulG 的回答更倾向于传统的域对象模式,我不赞成这种模式。就个人而言,我的偏好是为每个流程(如您的 ProductInsert 和 ProductUpdate)设置一个单独的类。这类似于在简单的银行示例中看到的,其中 Deposit 是类的实例,而不是 BankAccount 类的方法。当您开始考虑具有更多内容的业务流程时,例如要采取的规则和操作以及操作本身的审计/持久性(例如用于跟踪插入的 ProductInsert 表),您越意识到业务流程应该是一等公民在自己的权利。
这听起来像是一个与语言无关的问题。我将只创建一个类并将其命名为 Product,并在该类中使用适当的方法。想想当实际实例化你的单独对象时会有多混乱(除非你有静态方法)。
还有一个具体的 Product 类将允许您存储特定于对象的信息。
前任:
Product myProduct = new Product()
myProduct.name = "cinnamon toast crunch"
myProduct.price = 3.99
在我看来,单独的类会使您的代码的可读性和可测试性降低很多。