2015-09-30 2 views
0

Я не знаю, подходит ли этот вопрос для этого сайта, но я все равно спрошу: Каковы недостатки использования статических геттеров? Для моего сайта я использую 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 для каждого атрибута.

+0

** геттеры/сеттеры являются зол ** http://www.javaworld.com/article/2073723/core-java/why-getter-and-setter-methods-are-evil.html – Linus

ответ

0

Вы также можете использовать магические методы и иметь геттеры и сеттеры в качестве методов объекта таким образом.

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

+0

wow, я полностью забыл о волшебных геттерах и сеттерах ... спасибо !! –

Смежные вопросы