28.04.2015, 11:34
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
и получить утечки памяти?
|
Откуда там утечки?
Да, конечно же, я имел в виду свойства.
Цитата:
|
Да какая разница доступно свойство или нет, private и protected - это удобные слои абстракции, а не "защита от злобных хакеров", поэтому нет смысла заморачиваться с "безопасностью".
|
Бывает, что свойство должно изменяться только при определенных обстоятельствах, и, будучи открытым, станет рычагом для поломки кода, что как-то некрасиво.
Последний раз редактировалось Erolast, 28.04.2015 в 11:36.
|
|
28.04.2015, 11:40
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Erolast
|
Откуда там утечки?
|
если явно не вызывать деструктор, который будет удалять данные об экземпляре объекта из WeakMap, то они будут там лежать/накапливаться
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
28.04.2015, 11:42
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
если явно не вызывать деструктор, который будет удалять данные об экземпляре объекта из WeakMap, то они будут там лежать
|
Почему? Это ж как раз фишка WeakMap, что ссылки в его ключах не учитываются при сборке мусора.
|
|
28.04.2015, 13:01
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Бывает, что свойство должно изменяться только при определенных обстоятельствах, и, будучи открытым, станет рычагом для поломки кода, что как-то некрасиво.
|
Для такого кейза правильнее использовать get / set методы.
|
|
28.04.2015, 13:48
|
Профессор
|
|
Регистрация: 24.04.2015
Сообщений: 183
|
|
брин ребят не несите хурню, суть приватных полей класса - ИЗБЕЖАТЬ КОФЛИКТ ИМЕН и ИНКАПСУЛЯЦИЯ. обе цели у меня реализованы. точка.
викмапы какие то придумывают блин kobezzza, обуздай пасанов близ а то у меня время нет)
|
|
28.04.2015, 14:04
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Erolast
|
Почему? Это ж как раз фишка WeakMap, что ссылки в его ключах не учитываются при сборке мусора.
|
похоже на то
Я не пользовался WeakMap/WeakSet т.к. не вижу в них необходимости =)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
28.04.2015, 14:27
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
викмапы какие то придумывают блин kobezzza, обуздай пасанов близ а то у меня время нет)
|
Цитата:
|
Я не пользовался WeakMap/WeakSet т.к. не вижу в них необходимости =)
|
Зря ты так, офигенная вещь, допустим в качестве ключа у нас объект соединения пользователя (ну т.е. на серваке), клиент отрубился и если на его объект соединения нет других ссылок, то он автоматом грохнется из WeakMap.
Или другой пример: в качестве ключа выступает DOM нода, а в значении мы храним свою полезную инфу, и когда ноду грохнут, то она автоматом грохнется из WeakMap, т.е. это более правильный подход чем расширения ноды своими свойствами, т.к. нет проблемы конфликта имён.
Разумеется также есть Map / Set, которые в отличии от Weak аналогов итерабельны (причём с сохранением порядка вставки), но там память сама уже не чистится.
|
|
28.04.2015, 23:30
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
Зря ты так, офигенная вещь, допустим в качестве ключа у нас объект соединения пользователя (ну т.е. на серваке), клиент отрубился и если на его объект соединения нет других ссылок, то он автоматом грохнется из WeakMap.
Или другой пример: в качестве ключа выступает DOM нода, а в значении мы храним свою полезную инфу, и когда ноду грохнут, то она автоматом грохнется из WeakMap, т.е. это более правильный подход чем расширения ноды своими свойствами, т.к. нет проблемы конфликта имён.
Разумеется также есть Map / Set, которые в отличии от Weak аналогов итерабельны (причём с сохранением порядка вставки), но там память сама уже не чистится.
|
Еще викмапы и просто мапы удобно юзать чтобы делать двустороннее связывание между двумя разными моделями.
Например есть какая нибудь либа и нужно проэксопртировать модель того что она там нагененирила куда нибудь (отпарвить на бэк) или наоборот с бэка пришло и нужно синхронизировать новую модель и модель либы, я не представляю как тут жить без мапов разных
__________________
Научу себя плохому
|
|
29.04.2015, 14:19
|
Профессор
|
|
Регистрация: 24.04.2015
Сообщений: 183
|
|
Сообщение от l-liava-l
|
Еще викмапы и просто мапы удобно юзать чтобы делать двустороннее связывание между двумя разными моделями.
|
Они для этого и предназначены, умник. Чтобы всякие кеширования делать и.т.п.
п.с. какая вообще логическая связь между мапами и созданием приватных полей класса обьяснит кто нибудь? создается впечатление что тут форум новичков одних. ахинею несете, стыдно.
|
|
|
|