【发布时间】:2014-05-03 17:48:16
【问题描述】:
我在应用工厂模式时遇到了一些问题。
我有一个班级,我通常称之为Product($modelNumber, $wheelCount)。但是在我正在重构的遗留代码的一部分中,我没有 $modelNumber,只有 $productID,其中 {$modelNumber, $productID} 之间的链接在数据库中(或者在我的情况下,我可以对其进行硬编码,因为我目前只有少数产品)。
我需要能够使用$productId 创建我的课程,但是如何?
使用过程方法,我将拥有一个执行查找的函数,然后将该函数放在一个文件中,并将该文件包含在我需要进行查找的任何位置。因此这样做:
$modelNumber = modelLookup($productId)
Product($modelNumber, $wheelCount);
但是我该如何使用面向对象的方式呢?
注意:我在这里发布了更详细的情况:https://softwareengineering.stackexchange.com/q/233518/119333,这是概念上建议工厂模式(以及其他模式,如接口和函数指针传递)的地方,但我在尝试实现它们时碰壁了php。这似乎是一个简单的问题,但我认为有几种方法可以做到这一点,我对如何做有点迷茫。所以我需要一些帮助。
【问题讨论】:
标签: php oop factory-pattern single-responsibility-principle