Я не знаю, подходит ли этот вопрос для этого сайта, но я все равно спрошу: Каковы недостатки использования статических геттеров? Для моего сайта я использую CodeIgniter, и я закодировал функцию «finder» в MY_Model.php. Отдельные модели используют эту модель как родительскую и просто зеркальную базу данных. Я бы использовал метод finder для получения объекта модели, а затем с помощью статического getter, также объявленного в MY_Model.php - получить атрибуты. Как так:Даунсайд статических геттеров/сеттеров
<?php
$article = Article::find(array(
'id' => $someId,
));
echo Article::get($article, 'title');
или, например, если я должен отредактировать запись, я просто не могу это сделать так:
<?php
$article = Article::find(array(
'id' => $someId,
));
Article::set($article, 'title', $theTitle)
->set($article, 'text', $theText);
if (!$article->update()) {
return false;
}
return true;
Первый реальный недостаток я знаю, что он полностью идет против «Тонкий контроллер, модель Fat Model», так как я только объявлял переменные в модели, зеркалируя поля таблицы плюс некоторые отдельные функции. Но он полностью стирает необходимость писать функции getter и setter для каждого атрибута.
** геттеры/сеттеры являются зол ** http://www.javaworld.com/article/2073723/core-java/why-getter-and-setter-methods-are-evil.html – Linus