|
1 / 1 / 0
Регистрация: 01.05.2015
Сообщений: 84
|
||||||||||||||||
Что такое Инкапсуляция?23.09.2016, 17:24. Показов 6146. Ответов 22
Приятной пятницы всем.
Начну с примера. Пусть есть у нас некий класс "A", одно из полей которого это List экземпляров другого класса "B". В классе "B" тоже одно из полей это List экземпляров ещё одного класса "C". Вот такая вот матрёшка, или точнее дерево. Подобная ситуация встречается сплошь и рядом. Вот пример кода если со слов непонятно.
В принципе можно сделать все листы private и написать для них Get-функции. Переписав класс A вот в таком виде.
При этом можно ли говорить об инкапсуляции в классах типа "B" и "C"? Если рассматривать инкапсуляцию как скрытие внутренностей от пользователя, которому дают только класс A то тут пожалуй всё хорошо. Но вот внтури то класса "A" нет даже намёка на инкапсуляцию классов "B" и "C". Конечно можно и для них сделать Get функции. Но тогда программа ещё сильнее раздуется на пустом месте. И снова спрашивается, а стоит ли так всё усложнять? Впринципе в данном случае решением проблемы была бы возможность List'ам (как-то) выставить атрибут - "читать можно а изменять извне класса нельзя". Тогда можно обойтись и без Get-функций. Но стоит только вспомнить о том, что пользователю вобщемто хотелось бы не только что-то счиывать из внутренностей этой матрешки, но и что-то туда записывать... Как в голове рождаются монструозные конструкции из гигансткого кол-ва Set-функций. И снова спрашивается - а до какой степени стоит заморачиваться об инкапсуляции?
0
|
||||||||||||||||
| 23.09.2016, 17:24 | |
|
Ответы с готовыми решениями:
22
Что такое наследование, инкапсуляция и полиморфизм Что такое метод equals() и что такое класс Object
|
|
|
|||||
| 23.09.2016, 23:59 | |||||
![]() Добавлено через 1 минуту
0
|
|||||
|
|
||
| 24.09.2016, 00:00 | ||
|
А ещё лучше выбирать свойства вместо полей. Представьте затраты на рефакторинг, если вы сделаете поле, а потом внезапно в проекте потребуются свойства Сразу опишете свойство - будете иметь бОльшую гибкость.
0
|
||
|
1 / 1 / 0
Регистрация: 01.05.2015
Сообщений: 84
|
|
| 24.09.2016, 00:07 [ТС] | |
|
Спасибо всем на сегодня за мнения, советы и замечания. Мне надо переварить на выходных появившееся идеи.
Но ваши идеи по поводу примера екселя (в общих чертах, исходник екселя не стоит сюда постить) жду с интересом.
0
|
|
| 24.09.2016, 00:07 | |
|
Что такое инкапсуляция? Delphi - что такое инкапсуляция Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? Что такое IIS и что такое PWS? Почему одно без другого не работает? Что такое напряжение и что такое сила тока с позиции заряженных частиц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|