Я не использовал абстрактные классы на практике, хотя я понимаю, что это такое: способ продиктовать подклассам, какие методы должны быть реализованы.Какова цель пустых абстрактных классов в Kohana 3?
Я просто передал проект Kohana через Doxygen и могу видеть иерархию классов в целом. Я вижу, что в верхней части цепи у нас есть завод:
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
.
Может кто-нибудь объяснить объяснение программирования для этого - для чего цель состоит в том, чтобы иметь пустой абстрактный класс в цепочке? (и, вообще?)
Почему нет Kohana_Model_Database, Kohana_ORM и Model_Foobar наследуется непосредственно из Kohana_Model, когда есть (видимо?) нет другого разветвления или наследования между моделью и Kohana_Model?
Я раньше не использовал Kohana, но он кажется базовому классу, что все классы моделей будут расширяться. Эта ссылка должна дать вам некоторое представление об их API http://kohanaframework.org/3.0/guide/api – Markus