Просмотр полной версии : модификатор доступа internal
Appleman
29.06.2018, 00:44
Скажите, кто-нибудь пользуется сабжем и в каких ситуациях? У меня пока активно используются все остальные модификаторы, кроме internal.
RedHead90
29.06.2018, 01:01
Appleman, ну если у тебя не было ситуаций, когда эта фича пригодилась бы, то и не парься. А если такая ситуация возникнет, то используй, раз уж она есть. В AS3 вообще свои пространства имен можно создавать. Во флексе, кажется, это активно использовалось. Но лично мне кажется, что вся эта муть только добавляет запутанности. В хаксе вон всего два варианта видимости - public и protected и ничего, никто не жалуется.
Да просто не все то, что ты объявляешь как паблик, используется как паблик. Что-то наверняка используется только внутри пакета, ты просто не задумывался об этом. Вопрос, скорее, чистоты кода, чем строгой необходимости. Можно ведь и все приваты объявить пабликами (многие так и делают, переходя с кода в кадрах на классы). Вообще это категория больше для библиотек, то есть какого-то специфического набора классов, выполняющих одну общую задачу, нередко имеющего "фасад", обеспечивающий взаимодействие пакета с "внешним" миром, и несколько классов-утилит, которые работают себе в шахте и наружу нос не кажут. Ты просто отбираешь у них мобильники, чтобы никакой умник не смог вмешаться в работу библиотеки. Как бы приват, но для чужаков, а для своих вроде как необходимый паблик.
В хаксе вон всего два варианта видимости - public и protected и ничего, никто не жалуется.
Так только кажется, отсутсвие private часто создает проблемы
ZergMaster
29.06.2018, 12:33
в хаксе нету private? А как же инкапсуляция?... (
В хаксе вон всего два варианта видимости - public и protected
в хаксе нету private?
...
это никак не мешает что-то инкапсулировать.
ZergMaster
29.06.2018, 13:16
ну как не мешает... защита от глупых наследников - тоже инкапсуляция. ) Ну да. согласен, перебиться можно, конечно.
защита от глупых наследников - тоже инкапсуляция. )
Как это интерпретировать?
А вообще предлагаю закончить, для того чтобы мы друг друга понимали, вам бы поработать с Haxe, к слову, даже если был бы private модификатор, то это все равно можно было бы обойти.
ZergMaster
29.06.2018, 13:36
ну да, я на Haxe не работал, потому это просто досужие разговоры. Просто предположил, что там, как и обычно, область видимости protected - это свойства и методы, доступные для класса и для всех его наследников. private же для наследников недоступны. Вот и получается, что private инкапсулирует область видимости от вообще всех классов, включая наследников, в отличии от protected.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.