Oop 存储或计算复杂模型的总计
全部, 我正在开发一个应用程序,使用Zend框架来管理建筑工程的投标 投标将是一组相当复杂的模型,其架构类似于下面的代码片段 我的问题是。。。我应该将投标的总价值存储为投标模型的一部分,还是应该在每次需要时进行计算?投标总价为所有组成部分的总和(如设备/劳动力/材料/日常开支等)Oop 存储或计算复杂模型的总计,oop,zend-framework,frameworks,data-modeling,Oop,Zend Framework,Frameworks,Data Modeling,全部, 我正在开发一个应用程序,使用Zend框架来管理建筑工程的投标 投标将是一组相当复杂的模型,其架构类似于下面的代码片段 我的问题是。。。我应该将投标的总价值存储为投标模型的一部分,还是应该在每次需要时进行计算?投标总价为所有组成部分的总和(如设备/劳动力/材料/日常开支等) 我不知道zend的具体情况,但一般来说,我建议将计算作为初始策略。仅当出于性能原因需要时才存储它。理由: 在这两种情况下都需要编写计算函数 如果存储(缓存)它,则需要一种检测投标结构更改的策略&更新缓存的值。这是额外的
我不知道zend的具体情况,但一般来说,我建议将计算作为初始策略。仅当出于性能原因需要时才存储它。理由:
getTotal()
]后面,这样,如果您决定以后缓存,则调用客户端就不必更改
(当然,上面还有一些警告。如果结构是不可变的,那么您可以安全地缓存,而无需进行更新检测)。这对我来说已经足够好了。除非遇到性能问题,否则我会选择计算机。
object(Application_Model_Tender)#75 (4) {
["_id":protected] => int(1)
["_name":protected] => string(33) "Tender Name"
["_due":protected] => string(10) "2010-12-01"
["_labour":protected] => array(2) {
[0] => object(Application_Model_Gang)#81 (3) {
["_id":protected] => int(1)
["_name":protected] => string(25) "First Gang Name"
["_gangMembers":protected] => array(2) {
[0] => object(Application_Model_GangMember)#93 (5) {
["_id":protected] => NULL
["_name":protected] => string(11) "Labour Type"
["_workingPattern":protected] => string(7) "Default"
["_cost":protected] => float(546)
["_qty":protected] => int(3)
}
[1] => object(Application_Model_GangMember)#91 (5) {
["_id":protected] => NULL
["_name":protected] => string(11) "Labour Type"
["_workingPattern":protected] => string(8) "Custom 1"
["_cost":protected] => float(777)
["_qty":protected] => int(1)
}
}
}
[1] => object(Application_Model_Gang)#90 (3) {
["_id":protected] => int(2)
["_name":protected] => string(15) "Second Gang Name"
["_gangMembers":protected] => array(1) {
[0] => object(Application_Model_GangMember)#92 (5) {
["_id":protected] => NULL
["_name":protected] => string(11) "Labour Type"
["_workingPattern":protected] => string(8) "Custom 1"
["_cost":protected] => float(777)
["_qty":protected] => int(2)
}
}
}
}
}