/**
* Model
* @var App_Wizard
*/
private $wizard;
/**
* Create AppWizard object
* @return App_Wizard
*/
protected function wizard(){
if (!$this->wizard){
$this->wizard = new App_Wizard($this);
}
return $this->wizard;
}
Модель-контроллер
Код:
Имхо так намного проще обращаться к модели, в разных контроллерах меняется только тип создаваемого объекта и все.
Singleton
Вообще, раз не используют - значит не надо. На самом деле, потребность в синглтонах в проектах обычно не высока.
Вы только что повторно изобрели
Вообще, раз не используют - значит не надо. На самом деле, потребность в синглтонах в проектах обычно не высока.
Нэйминг конечно жесть. )
вообще обычно такую штуку делают static, а экземпляр получают через static-метод типа Model::factory('App_Wizard').. в кохане, например, так
Объясните плх суть синглтона и примеры\необходимость использования...
Ну например класс для работы с БД можно спокойно вынести в Singleton. При этом не просто класс-обертка для mysql_query, а анализатор запросов, организатор замеров скорости и т.д. (как у меня используется). В таком случае желательно, чтобы класс был в единственном экземпляре.
Объект, хранящий настройки системы. Чтобы в любой момент времени в непрерывном потоке всегда были актуальные данные из настроек.
Собственно, всё то, что должно быть в единственном экземпляре (в логическом смысле в рамках программы), то и делается синглтоном.
Главное не переусердствовать. Это на первый взгляд кажется что много чего должно быть в единственном экземпляре. А потом проблем огрести.
// хотя после перехода на Яву мозги исправились - стал использовать его адекватно, точнее вообще практически не использовать