0

好的,所以我完美地CustomerMapper映射了我的Customer域对象,但是今天我正处于一个使用我的Customer对象的域对象中的一些业务逻辑中间,我意识到我需要有某种

if( $customer->getNumActiveOrders() > self::MAX_NUM_ORDERS )

目前我的Customer对象没有属性,所以只有在调用该方法$numActiveOrders时,我才必须获取该客户的活动订单数。getNumActiveOrders()

困惑是如何在我的Customer域对象中没有任何数据库逻辑的情况下执行此操作?也许在创建时将 DAO 注入我的Customer对象并让它阻止数据库逻辑泄漏到我的域对象中?我真的不喜欢在我的域对象中拥有任何与数据库相关的想法,所以我不确定那个。

也许我应该$numActiveOrders在我的对象中有一个属性,并在我的 DataMapper 获取客户时设置它?我认为我不会太需要这个值,在整个应用程序中可能需要 3 次(如果偶数),所以我不想每次创建一个额外的查询Customer

人们如何在不将数据库逻辑泄漏到域对象中的情况下有效地完成此类任务?

谢谢。

4

0 回答 0