对设计模式垃圾的质疑,因为我们一直在就此进行团队辩论,时间远远超出了我们的预期。
因此,我们使用一个框架Yii2
,该框架为数据库表创建默认模型。在一个示例中,表t_receipt_settings
具有模型TReceiptSettings
。因为我们有一些默认设置,所以进行这些默认设置的一种方法是创建另一个类DefaultReceiptSettings
,该类仅使用不同的构造函数来扩展TReceiptSettings
。示例:
class DefaultReceiptSettings extends TReceiptSettings
{
public function __construct($config = array()) {
$this->print_website_address = 1;
$this->print_email_address = 1;
$this->print_phone_no = 1;
$this->print_cash_reg_name = 1;
parent::__construct($config);
}
}
现在,此方法收集的评论是:
- 这是错误的。您应该在
TReceiptSettings
中创建一个静态方法来为您设置默认值。或 - 这是一种正确的方法。创建具有初始默认值的新类实际上是有利的。在您的代码中其他位置添加新的
DefaultReceiptSettings();
比替代方法要好得多。
这是一个好的解决方案吗?一个可以接受的解决方案?或错误的解决方案?为什么呢?