Реальные объекты и MVC - PullRequest
       6

Реальные объекты и MVC

0 голосов
/ 09 ноября 2011

До тех пор я всегда кодировал объект следующим образом:

// initialization
$husband = new User('Bob');
$wife = new User('Sarah');

// action
$husband->dance();
$wife->read();

// get
echo "The husband is ".$husband->getAge()." years old";

Но с CodeIgniter (и MVC), кажется, лучше думать так:

// load model
$this->load->model('user');

// action
$this->user->dance('Bob');
$this->user->read('Sarah');

// get
echo $this->user->getAge('Bob');

Но как в этом случае бороться с "реальными объектами"? Например объект "Боб" и объект "Сара"? Может быть, я что-то упускаю, но мне кажется, что Model (второй пример)! = Object (первый пример). Разве это понятие объектов несовместимо?

У меня есть представление каталога, контроллер каталога и модель каталога. Должен ли я также иметь каталог "objects"?

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Если вы все еще хотите использовать CI, вы можете сделать это:

// load the class. I think there was a second parameter to avoid instantiation, not sure though. Either way, this will at least load the class
$this->load->model('user',false);

$husband = new User('Bob');
$wife = new User('Sarah');

// action
$husband->dance();
$wife->read();

Это все еще MVC. Некрасивая часть загрузки классов присутствует, потому что CI не имеет автозагрузки классов при ссылках, поэтому вы должны сделать это вручную. Может быть, вы можете каким-то образом интегрировать Универсальный загрузчик классов .

1 голос
/ 09 ноября 2011

Codeigniter основан на Singleton Pattern .

В разработке программного обеспечения шаблон синглтона является шаблоном проектирования, используемым для реализации математической концепции синглета, путем ограничения экземпляра класса одним объектом . Это полезно, когда ровно один объект необходим для координации действий в системе. Эта концепция иногда обобщается на системы, которые работают более эффективно, когда существует только один объект, или которые ограничивают создание экземпляра определенным числом объектов.

...