【发布时间】:2011-10-11 09:21:10
【问题描述】:
我偶然发现了一个有趣的问题/错误,我最终解决了这个问题,但解决方案不是我所期望或希望的。
设置很简单。有一个抽象静态类Factory,它引用了一个单例(Registry)以及两个静态属性model和表格。
有许多静态类构建/继承自这个抽象类,它们都有一个 init() 方法,在该方法中设置 model 和 表属性。当然,由于 model 和 table 是静态的,它们只能有一个值,该值对于抽象 Factory 类的所有子类都相同.这是问题/错误。
但是,我的目标是让每个子类都有自己的 model 和 table,所以我不得不声明 model 和 table 在每个子类中作为静态属性。这似乎有点麻烦(而且不是很干),但在我看来,这是唯一的解决方案,如果我想要(1)类继承自抽象 Factory 类和(2)保持静止。
我的假设是正确的还是我遗漏了另一种方法?
【问题讨论】:
-
我不完全确定您指的是关于单例设计模式的讨论。诚然,单例确实有利有弊,但手头的问题是关于静态类的特定用例,它继承自抽象静态类,同时共享一组相同的属性。感谢您的链接。
标签: php inheritance static factory abstract