假设有两个类,一个是用户类,其中包含用户信息;另一个是支付交易类。场景很简单,如果用户年龄>65岁,创建A类支付交易;否则,创建 B 类支付交易。
做这件事有很多种方法:
- 创建一个既不属于用户也不属于事务的方法,只需调用 CreateTransaction。此方法中说明了逻辑:
func CreateTransaction(user, transaction) {
if user.GetAge() > 65:
transaction.CreateA()
else:
transaction.CreateB()
}
- 另一个选项是为用户类创建方法:
class User {
...
func CreateTransaction(transaction) {
if user.GetAge() > 65:
transaction.CreateA()
else:
transaction.CreateB()
}
}
然后有一个 CreateTransactionController 方法调用该函数,如:
func CreateTransactinController(user, transaction) {
user.CreateTransaction()
}
我的问题是,选项 1 是否被视为过程编程,因为逻辑实际上不属于任何对象?(或贫血模式?) 1 和 2 之间的区别是否只是放置逻辑的不同位置?
谢谢!