@oop_ru

Страница 130 из 785
Paul
01.03.2017
12:54:31


Sergey
01.03.2017
12:54:45
сложно

Aleh
01.03.2017
12:57:01
женщины - вид развлечений?)

Paul
01.03.2017
12:57:23
неплохая интерпретация, но нет

Google
Aleksandr
01.03.2017
13:00:39
model view controller

Sergey
01.03.2017
13:00:50
лол

Aleh
01.03.2017
13:01:04
)))

Илья
01.03.2017
13:01:04
ахахах, отлично )

Paul
01.03.2017
13:01:45
А я главное думал, причём тут линда евангелиста

Timur
01.03.2017
13:02:02
Kirill
01.03.2017
13:06:15
А я главное думал, причём тут линда евангелиста
слева линда нормального человека, посередине линда евангелиста?

Евгений
01.03.2017
19:25:36
а причём тут голова Го Сяна?

Sergei
01.03.2017
19:47:17
а причём тут голова Го Сяна?
В очень старые времена голова Го Сяна была символом телекомпании "ВИД". https://ru.m.wikipedia.org/wiki/ВИD

Удивительным образом они до сих пор существуют!

Евгений
01.03.2017
19:48:56
про телекомпанию вид я в курсе

просто доебался )

Sergei
01.03.2017
19:49:26
А, ну я успешно повёлся :)

Google
Kirill
01.03.2017
19:55:58
я эту голову в детстве пи*%ец как боялся ?

Евгений
01.03.2017
19:59:01
я эту голову в детстве пи*%ец как боялся ?
ты видимо просто оригинал не видел

http://ic.pics.livejournal.com/goanoid/19183669/25786/25786_original.jpg

Антон
01.03.2017
22:48:55
О началось https://www.youtube.com/watch?v=qqWC3_cQHAc
Ребят, из этого видео не понял почему геттеры это плохо? Можете объяснить или подсказать где можно ещё почитать или посмотреть разъяснения по ему вопросу?

Evgeniy
01.03.2017
22:53:36
типо они открывают внутренее состояние объекта

наверно поэтому

нарушают инкапсуляцию

и тд

у каждого свой ооп с блэкдэком и нимфоманками

Sergei
01.03.2017
22:57:42
Ребят, из этого видео не понял почему геттеры это плохо? Можете объяснить или подсказать где можно ещё почитать или посмотреть разъяснения по ему вопросу?
По-простому говоря - если НЕ использовать getter/setter, то придется логику работы реализовать прямо в классе, что хорошо: ее потом легко найти, понять что происходит, исправить/модифицировать. Если же ИСПОЛЬЗОВАТЬ getter/setter - логика работы окажется где-то за пределами класса, и потом сложно контролировать где и что происходит.

f4rt~
01.03.2017
23:00:42
а как тогда с приватными свойствами быть?

Sergei
01.03.2017
23:00:43
getter предполагает, что класс делится какой-то нужной только ему внутренней информацией. следовательно какой-то другой код вне класса будет что-то делать с этой внутренней информацией, "размазывая" логику поведения по коду.

Да, но в таком случае мы получим же god class?
god class получится если в нем запаковано слишком много данных (==слишком много ожидаемого поведения)

da horsie
01.03.2017
23:02:13
а как тогда с приватными свойствами быть?
а что с ними? в целом чем меньше свойств тем меньше мест, где может укрыться состояние. меньше состояния - меньше сложность. меньше сложность - проще поддерживать

f4rt~
01.03.2017
23:03:25
а как же банальные установить или получить значения, а так же окнтроль за тем, какие именно данные содержатся в свойствах объекта и тп

Антон
01.03.2017
23:03:35
getter предполагает, что класс делится какой-то нужной только ему внутренней информацией. следовательно какой-то другой код вне класса будет что-то делать с этой внутренней информацией, "размазывая" логику поведения по коду.
Ок, у меня есть класс Character и у него есть свойство life, мне нужно отобразить на HUD'е текущее значение этого свойства для игрока. Как я должен это сделать не имея геттера? =)

Sergei
01.03.2017
23:03:36
а зачем?

Ок, у меня есть класс Character и у него есть свойство life, мне нужно отобразить на HUD'е текущее значение этого свойства для игрока. Как я должен это сделать не имея геттера? =)
один из вариантов (в реальных играх применяемый) - можно изнутри класса послать сообщение SendEvent(HealthLevelChanged(untId, healthValue));

Антон
01.03.2017
23:05:11
а зачем?
Такая механика игры - игрок должен знать текущее состояние персонажа, которым он управляет. Или вы не играли в шутеры? -(

Google
f4rt~
01.03.2017
23:05:13
я читал про lazy load, там вроде как хватили геттеры/сеттеры, тк как требуемые ресурсы для загрузки данных будут задействованы во время получения значения

da horsie
01.03.2017
23:05:18
а как же банальные установить или получить значения, а так же окнтроль за тем, какие именно данные содержатся в свойствах объекта и тп
когда ты устанавливаешь/читаешь свойства, ты это делаешь зачем? как правило - чтобы объектом управлять - дергать за ниточки как марионетку. идея в том, что объект должен быть "живой", сам принимать решения, сам содержать свою логику.

da horsie
01.03.2017
23:08:21
Evgeniy
01.03.2017
23:09:04
тогда получается логика отрисовки будет в Charter

у человека

и Charter станет отвечать не только за персонажа но и за его отрисовку

da horsie
01.03.2017
23:10:02
и Charter станет отвечать не только за персонажа но и за его отрисовку
сделай через дабл диспатч или как оно там называется

f4rt~
01.03.2017
23:10:20
Но ведь это все тоже относительно да? нельзя же сказать что использование геттеров/сеттеров == всегда бэд практис?

Evgeniy
01.03.2017
23:10:44
это не у меня проблема)) просто понимаю ситуацию человека)

da horsie
01.03.2017
23:10:53
void drawLife(CharacterLifeDrawer drawer)

class HUDDrawer implements CharacterLifeDrawer

character.drawLife(new HUDDrawer())

Evgeniy
01.03.2017
23:12:09
так просто HudDrawer не создать ему надо знать где именно это отрисовывается

da horsie
01.03.2017
23:12:25
ну, там не совсем сеттеры

Admin
ERROR: S client not available

da horsie
01.03.2017
23:12:44
но похоже

Google
f4rt~
01.03.2017
23:13:10
их же в принципе можно заменить на эдакие фасады как в ларке?

Evgeniy
01.03.2017
23:13:24
фасады это вообще зло)

da horsie
01.03.2017
23:13:30
так просто HudDrawer не создать ему надо знать где именно это отрисовывается
ну и хорошо. пусть внешняя логика знает, когда отрисовывать. но экспозить кишки персонажа для этого не надо

f4rt~
01.03.2017
23:13:30
ну вот(

Evgeniy
01.03.2017
23:13:33
отдельный вид зла) в большинстве случаев

f4rt~
01.03.2017
23:13:40
мне срочно нужно много что переосмыслить(

Evgeniy
01.03.2017
23:13:46
если у тебя код настолько сложный что тебе надо делать фасады

то возможно лучше стоит делать норм код )

это все имхо нету правильного и не правильного

есть команда и проект и принятые там правила или стандарты

Антон
01.03.2017
23:14:30
f4rt~
01.03.2017
23:15:12
у меня просто так получилось что явные методы для доступа к данным и мне по сути все равно что юзать было

фасады или геттеры/сеттеры

Антон
01.03.2017
23:16:49
Еще вопрос по видео - почему setreadable это не сеттер? Потому что они меняет состояние физического файла, а не объекта? Так?

f4rt~
01.03.2017
23:17:24
а напомните хоткей в phpstorm что бы сгенерировать геттеры/сеттеры для класса

Aleksandr
01.03.2017
23:17:39
ctrl_insert по-моему

Evgeniy
01.03.2017
23:20:06
alt

alt+ins

в классе

или alt+enter на свойстве

Google
f4rt~
01.03.2017
23:21:24
спасибо большое?

Evgeniy
01.03.2017
23:21:45
это не только в phpstorm

по дефолту

f4rt~
01.03.2017
23:22:09
а я другие ide не трогал ? ну разве что от gcc ?

Evgeniy
01.03.2017
23:22:20
а как переключится из окна project в редактор?)))

например нажми alt + 1 и попробуй, потом ввест что то в редактор)

Страница 130 из 785