Вопрос : OOP, типы, вопрос о accessor/mutator (новичок)

Hi, я fiddling с PHP на леты, но только как раз после того как я начат для того чтобы схватить тип development.

So OOP… Я пишу мою первую серию типов и использую нагрузки функций accessor и mutator (потому что явно «будет сделанной вещью "). Вопрос быстро скачет для того чтобы запомнить, я должен использовать 2 функции для accessor и mutator или могу я совместить 2? e.g.

function SetGetThing ($stin=FALSE) {
если (! $stin) {
возвращенное $this->thing;

} еще {
$this->thing = $stin;

Seems

}} к мне почти halve число функций (не упоминать текста phpdoc) в моих типах. Но… он нарушит некоторый более высокий закон OOP и злит богов? :)

Cheers!
class=

Ответ : OOP, типы, вопрос о accessor/mutator (новичок)

Оно могло быть worth указать вне здесь, причина для получает/установленные функции. Я нахожу что будут часто много недоразумения в этой области и люди жалуются о всем то «ненужный печатать на машинке».

В много типов будут родственные детали данных где значение одного свойства может зависеть значения других. Просто примером была бы дата - число дней 31 за исключением февраля, апреля, июня, SEPT. и NOV. Поэтому последняя вещь, котор вы хотите кто-нибудь ВНЕ делать типа

$myClass->days = 31;

на любые «короткие» месяцы. Оно ОДОБРЕН на длинние месяцы. Путем использование accessor setDays вы можете предотвратить это

setDays функции ($d) {
     если ($d > && 30 $this->month =…., то февраль, апрель .etc)
          умрите («ошибка на линии». __LINE. «в сценарии». __FILE. «- дата из ряда»);

     $this->days = $d;
}


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

Осмотрите «установите» методы как фильтр утверждения для всех ваших данных и сделайте конечно что все свойства объявлены или защитил или приватно (защищена «норма» для 90% из всего Кодего)
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us