[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Геттеры и сеттеры
Страницы: 1, 2, 3, 4, 5
chee
Думаю избавиться от них вообще, так как в большинстве случаев их не использую. Избавиться я хочу от сеттеров и геттеров в сущностях, а именно в атрибутах сущностей. Я сужу по своему опыту и коду который меня окружает в повседневной работе. Потому могу ошибаться и не видеть реальной картины.

Хотелось бы у бывал, кто разбирается в ООП (а не твин и его преспешники) и кто повседневно использует ООП системы, спросить, если в вашей практике случаи когда геттеры и сеттеры спасали положение и без них бы все печальнее было? Если будут примеры кода, то вообще замечательно.

PS: Я не собираюсь спорить о геттерах и сеттерах, я всего лишь собираю информацию для принятия решения.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 24.10.2015 - 18:20)
(а не твин и его преспешники)

У меня нет приспешников.

А ты давай не бузи. Сказано в канонах - никаких публичных свойств, так и держи хвост по ветру. Что за вероотступничество?!!! mad.gif

А вдруг кто захочет... и всё. Пипец инкапсуляции. Ненаучно.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Цитата (twin @ 24.10.2015 - 23:03)
Сказано в канонах - никаких публичных свойств, так и держи хвост по ветру. Что за вероотступничество?!!!

Это не про меня, я не фанат ООП. Просто умею, могу, практикую. И я же писал, тебе не писать, надо было сделать блок по id.

Цитата (twin @ 24.10.2015 - 23:03)

У меня нет приспешников.

Есть, и ты это знаешь. Возможно это не приспешники, а просто ты у них такой авторитет.



_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Цитата (chee @ 25.10.2015 - 00:57)
Возможно это не приспешники, а просто ты у них такой авторитет.

Сорри за оффтоп... Но на "бога Кузю" Николай пока еще "не тянет" wink.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
inpost
chee
Скажу как не любитель ООП - несколько раз сталкивался с проблемой, когда необходимо было найти причину изменения параметров в огромных скриптах. Или изменить алгоритм не переписывая код в разных местах. Тогда и думал - и почему не делал через оболочки...

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
waldicom
Не пойму, ты хочешь удрать сеттеры/геттеры и сделать все атрибуты классов глобальными?

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
chee
waldicom, у сущностей есть атрибуты (свойства), я хочу их сделать публичными... и работать через них, то есть устанавливать и брать данные прямиком через свойства.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
waldicom
Интересный подход.
Ты хочешь сократить код, лень писать или для чего строить себе проблемы на ровном месте (в нормальных IDE все это можно сгенерировать парой кликов)? Хотя если пользователем классов являешься только и только ты, то можно конечно все сделать глобальным.

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
chee
waldicom, я не хочу спорить о подходе, правильный он или нет, мне нужны примеры подтверждающие что в этом подходе как минимум на ПРАКТИКЕ есть серьезные недостатки. Я ожидаю реальных примеров, который например твои слова полностью подтвердят. Я не отрицаю ТЕОРИТИЧЕСКУЮ полезность геттеров и сеттеров, но на моей практике они бесполезны, я хочу узнать как же у других.

Цитата (waldicom @ 25.10.2015 - 01:45)
в нормальных IDE все это можно сгенерировать парой кликов

это да, но зачем генерировать если, возможно, это бессмысленно?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
dron4ik
Ты вынес мне мозг... А реально, на кой хер нам сеттеры и геттеры если по факту мы даем все тоже самое что и при прямом доступе к свойству...
Ну понятно если нужно класс наследовать, или же есть необходимость перегрузки (пишу параллельно на java), но если класс финальный, ну зачем?)))

_____________
Ex3m.com.ua — Активный образ жизни
twin
Цитата (chee @ 24.10.2015 - 20:57)
Это не про меня, я не фанат ООП. Просто умею, могу, практикую

Чё это ты позиции сдаешь? Фанат, фанат. Еще какой фанат. Вон даже Yii говнокодингом обозвал за статику biggrin.gif
Свернутый текст
По секрету скажу, еще и Laravel нужно анафиме предать за это


Так что ты того... Нечего тут. Сказано сеттеры, значит сеттеры. Иначе целибат нарушается. Не смей! mad.gif
Цитата (dron4ik @ 24.10.2015 - 23:03)
А реально, на кой хер нам сеттеры и геттеры если по факту мы даем все тоже самое что и при прямом доступе к свойству..
В 99% случаев это делается для однообразия кода. Чтобы снаружи было "красиво". По сути разницы практически нет. Вот и до chee стало доходить, что безмерный фанатизм на пользу не идет. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Michael
Цитата (chee @ 24.10.2015 - 20:20)
Хотелось бы у бывал, кто разбирается в ООП (а не твин и его преспешники) и кто повседневно использует ООП системы, спросить, если в вашей практике случаи когда геттеры и сеттеры спасали положение и без них бы все печальнее было?

ну а как с такими например объектами как ActiveRecord без сеттеров/геттеров?

_____________
There never was a struggle in the soul of a good man that was not hard
chee
Цитата (Michael @ 25.10.2015 - 11:26)
ну а как с такими например объектами как ActiveRecord без сеттеров/геттеров?

Ну смотри у нас на работе в системе AR используется, геттеры и сеттеры там не используются как и магические методы __get или __set, то есть атрибуты сущностей как и всякого рода зависимости установлены в публичные свойства без сеттеров, и в принципе за 3 года работы, у меня не было претензий по поводу этой схемы. Но проблема в том, что, например мы вообще не кешируем что-либо и не занимаемся переделкой кода под это, а том возможно геттеры и сеттеры нужны, но я точно не уверен, потому и спрашиваю.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
chee, насчет геттеров-сеттеров по сравнению с прямым доступом внесу свои "5 копеек". Я не буду вдаваться в теорию, типа как "положено так-то и так-то".
По моему мнению, геттеры-сеттеры полезны в тех случаях, когда одновременно с изменением свойства надо выполнить действие.
Допустим, выставили свойство, после изменения которого надо сделать повторный коннект (к БД, к порту...). Без сеттера нужно будет помнить, что сначала выставляешь свойство, затем вызываешь функцию. А с сеттером это не нужно, т.к. ты заложишь это внутри сеттера.
Что касается геттера. Допустим, получаемая величина зависит от кучи других и может часто меняться. Тогда ты должен или при изменении тех других параметров менять этот параметр (наверняка где-то забудешь это сделать), или просто в геттере вычислить, что происходит в данный момент.

Ну и ясен перец, что если ничего такого не требуется, то они, т.е. сеттеры-геттеры, не нужны.

Короче говоря, надо говорить не про "ООП в кубическом вакууме", а о конкретных ситуациях: вот тут они нужные, а там - не нужны.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
chee
Цитата (twin @ 25.10.2015 - 06:05)
Чё это ты позиции сдаешь? Фанат, фанат. Еще какой фанат. Вон даже Yii говнокодингом обозвал за статику

То что я в открытую высказываю свою позицию по качеству кода какого-либо продукта не делает меня фанатом какой-либо технологии.

Цитата (twin @ 25.10.2015 - 06:05)
В 99% случаев это делается для однообразия кода. Чтобы снаружи было "красиво". По сути разницы практически нет. Вот и до chee стало доходить, что безмерный фанатизм на пользу не идет.

Дело в том, что я всегда недолюбливал сеттеры и геттеры, НО все таки они нужны в некоторых частях системы, например в вендорных библиотеках. И да, у меня всего лишь появилась идея избавиться от сеттеров/геттеров, возможно она ошибочна, потому я хочу узнать о опыте других программистов.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.