为插入和保存创建单独的类

时间:2012-04-17 18:14:54

标签: language-agnostic

这是个好主意吗?不是使用两个方法(insertupdate)和两个验证方法(validateInsertvalidateUpdate)创建一个类,而是创建三个类:一个名为ProductDB ,另一个ProductInsert(使用方法Insert和Validate)和另一个ProductUpdate(使用相同的ProductInsert方法)。

这是否更具可读性,灵活性和可测试性?

2 个答案:

答案 0 :(得分:1)

PaulG的回答更倾向于传统的域对象模式,我并不赞成。就个人而言,我的偏好是为每个进程设置一个单独的类(如ProductInsert和ProductUpdate)。这类似于人们在简单的银行示例中看到的,其中Deposit是类的实例而不是BankAccount类的方法。当您开始考虑具有更多内容的业务流程时,例如要采取的规则和操作以及操作本身的审计/持久性(比如用于跟踪插入的ProductInsert表),您越了解业务流程应该是一等公民就其本身而言。

答案 1 :(得分:0)

这听起来像一个与语言无关的问题。我只想创建一个类并将其命名为Product,并在类中使用适当的方法。想想实际实例化单独对象时会出现什么样的混乱(除非你有静态方法)。

还有一个具体的Product类将允许您存储特定于对象的信息。

例如:

Product myProduct = new Product()

myProduct.name = "cinnamon toast crunch"

myProduct.price = 3.99

在我看来,单独的类会使你的代码不那么易读和可测试。