我偶然发现了一个我最终解决的有趣问题/错误,但解决方案并非我所期望或希望的解决方案。
设置很简单。有一个抽象的静态类工厂,它引用了一个单例(注册表)以及两个静态属性,模型和表
有许多静态类构建于/继承此抽象类,它们都有 init()方法,在这种方法中,它们设置模型和表属性。当然,由于模型和表是静态的,它们只能有一个值对于抽象工厂类的所有子类都是相同的。这是问题/错误。
但是,我的目标是让每个子课都有自己的模型和表,所以我被迫宣布模型和 table 作为静态属性。这看起来有点麻烦(而且不是很干),但在我看来,如果我想让(1)从抽象工厂类继承的类和(2),这是唯一的解决方案。保持不变。
我的假设是正确的还是我缺少另一种方法?
答案 0 :(得分:1)
目标是在不同的静态子类中为$model
和$table
设置不同的值?
假设是这种情况,我没有看到如果没有在每个子类中明确地定义它们,你怎么可能实现这一点。
我认为这不麻烦。我认为这是一种很好的做法 - 通过保持它所属的功能。