【发布时间】:2012-02-07 18:17:10
【问题描述】:
虽然我理解抽象类是什么,但在实践中我并没有太多使用抽象类:一种指示子类必须实现哪些方法的方法。
我刚刚通过 Doxygen 放置了一个 Kohana 项目,并且可以看到整个类层次结构。我看到,在链的顶端我们有一个工厂:
abstract class Kohana_Model {
public static function factory($name){
// Add the model prefix
$class = 'Model_'.$name;
return new $class;
}
}
直接在下面继承,我们有一个空的抽象类:
abstract class Model extends Kohana_Model {}
...在这之下,继承了三个类:Kohana_Model_Database、Kohana_ORM和Model_Foobar。
有人能解释一下编程的原因吗?在链中如此高的位置有一个空抽象类的目的是什么? (而且,有吗?)
当 Model 和 Kohana_Model 之间没有(显然?)其他分支或继承时,为什么不让 Kohana_Model_Database、Kohana_ORM 和 Model_Foobar 直接从 Kohana_Model 继承?
【问题讨论】:
-
我以前从未使用过 Kohana,但它似乎是所有模型类都将扩展的基类。这个链接应该能让你深入了解他们的 API kohanaframework.org/3.0/guide/api
标签: php oop kohana kohana-3 kohana-orm