Как называется подход в ООП?

  • Автор темы Светлана PHP
  • Дата начала

Светлана PHP

Guest
Как называется подход в ООП?

Любой класс в ООП содержит переменные, доступ к которым организуется посредством методов типа Get@ Set@, где @ - имя переменной внутри класса.

Вопрос: как называется подобный подход... или это постфакт в ООП?
 

Vasya

Guest
В англоязычной литературе это вроде так и называется "getter/setter pattern". И применяется когда надо производить дополнительные операции при записи/чтении переменной. А когда не надо -- так и не применяется. :)
 

_RVK_

Новичок
производить дополнительные операции при записи/чтении переменной. А когда не надо -- так и не применяется
Не совсем верно. Вообще все свойства класса должны быть private/protected и работать с ними нужно через соответствующие методы. Я лично использую для этого функцию __call. Делается это для того, что бы если в будующих версиях класса, тебе вдруг нужно будет что-то делать при установке свойства, ты легко мог это сделать не меняя интерфейса класса.
 

neko

tеam neko
> Вообще все свойства класса должны быть private/protected и
> работать с ними нужно через соответствующие методы

зач0т
 

Vasya

Guest
... если в будующих версиях класса, тебе вдруг нужно будет ...
Ключевая фраза.
Совершенно неизвестно ЧТО вдруг может понадобиться в будущих версиях класса. Если же это известно, то почему бы не сделать это в текущей версии? Скажем, если известно, что понадобится
что-то делать при установке свойства
тогда лучше применить getter/setter уже в текущей версии. :)
С другой стороны, есть классы, для которых совершенно точно известно, что они не потребуют никаких действий при доступе к свойствам. И, в этом случае, применения getter/setter будет излишним.
 

_RVK_

Новичок
Vasya
Прочитай еще раз мое сообщение, распечатай и повесь на стену перед глазами.
И забудь о таком понятии в прграммировании как "точно известно". Если ты вдруг ошибешься, тебе придется переписывать весь код, который работает с этим классом.
 

Frol

Новичок
Вообще все свойства класса должны быть private/protected и работать с ними нужно через соответствующие методы.
полностью согласен с товарищем neko.
мне тоже очень понравилось.
 

neko

tеam neko
преимущественно в том, что тебе свойства что-то должны
 

_RVK_

Новичок
в чем именно я не прав? я никогда не работаю с свойствами класса напрямую. Я в этом не прав?
 

_RVK_

Новичок
Фрол, я буду тебе очень признателен если ты аргументировано опровергнешь то чему учат с первого курса университета.
 

Frol

Новичок
извини, но эта история до университета не дотягивает.
 

Screjet

Новичок
хм.. а зачем же придумали определение public?..
неужто исключительно для студентов? :)
Делается это для того, что бы если в будующих версиях класса, тебе вдруг нужно будет что-то делать при установке свойства, ты легко мог это сделать не меняя интерфейса класса.
Хороший код тот, который документирует сам себя. И разработка быстрее и модифицировать проще.
 

fixxxer

К.О.
Партнер клуба
В теории RVK прав. На практике же - PHP - интерпретатор, так что проблем с модификацией кода нет, а оверхед от get/set'а весьма приличный. Да и реализовано оно в PHP через ж*пу.
 

Frol

Новичок
мне нравится такой стиль разговора:
- это правильно!
- почему?
- так, как я это использую!
- и?
- а докажи что это не правильно!

_RVK_
записывай.
мне на твое мнение положить.
 
Сверху