私は抽象クラスを実際には多く使っていませんが、私はそれが何であるか理解しています。どのメソッドを実装する必要があるのかをサブクラスに指示する方法です。コナナ3の空の抽象クラスの目的は何ですか?
私はちょうど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 {}
を...そして、その下に、そこにある私は、チェーンの先頭に私たちは工場を持っている、ことを確認します3つの継承クラス:Kohana_Model_Database
,Kohana_ORM
およびModel_Foobar
。
誰かがこれについてのプログラミングの理由を説明してください - これはチェーンでこの高い空の抽象クラスを持つ目的は何ですか?
なぜ、Kohana_Model_Database、Kohana_ORM、およびModel_FoobarをKohana_Modelから直接継承していないのですか?ModelとKohana_Modelの間で他の分岐や継承が発生していないようです(明らかに?)。
以前はKohanaを使ったことがありませんでしたが、すべてのモデルクラスが拡張されるベースクラスに見えます。このリンクは、API http://kohanaframework.org/3.0/guide/apiにいくつかの洞察を与えるはずです – Markus