Вопросы с тегом «encapsulation»

В ООП - механизм ограничения доступа к некоторым компонентам объекта или принцип проектирования, поощряющий отделение от деталей реализации.


12
Почему «приватные» методы Python на самом деле не приватны?
Python дает нам возможность создавать «частные» методы и переменные в классе, предваряя двойные подчеркивания к имени, например: __myPrivateMethod(). Как же тогда это объяснить? >>> class MyClass: ... def myPublicMethod(self): ... print 'public method' ... def __myPrivateMethod(self): ... print 'this is private!!' ... >>> obj = MyClass() >>> obj.myPublicMethod() public method …

30
Когда вы должны использовать «друг» в C ++?
Я читал часто задаваемые вопросы по C ++ и мне было интересно узнать об этом friendобъявлении. Лично я никогда не использовал это, однако я заинтересован в изучении языка. Что является хорошим примером использования friend? Немного дольше читая FAQ, мне нравится идея << >>перегрузки и добавления операторов в друзья этих классов. …
354 c++  oop  encapsulation  friend 


4
Понимание разницы между __getattr__ и __getattribute__
Я пытаюсь понять разницу между ними, __getattr__и __getattribute__, тем не менее, мне это не удается. Ответ на вопрос переполнения стека Разница между __getattr__VS__getattribute__ говорит: __getattribute__вызывается перед просмотром фактических атрибутов объекта, и поэтому может быть сложно реализовать правильно. Вы можете очень легко попасть в бесконечные рекурсии. Я понятия не имею, что …

22
Абстракция VS Скрытие информации VS Инкапсуляция
Можете ли вы сказать мне, в чем разница между абстракцией и сокрытием информации при разработке программного обеспечения? Я смущен. Абстракция скрывает детали реализации, а информация скрывает абстрагирует все детали чего-либо. Обновление: я нашел хороший ответ для этих трех понятий. Смотрите отдельный ответ ниже для нескольких цитат, взятых оттуда .

9
Должен ли я вернуть коллекцию или поток?
Предположим, у меня есть метод, который возвращает представление только для чтения в список участников: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Далее предположим, что все, что делает клиент, это …

9
Java: видимость подпакета?
У меня есть два пакета в моем проекте: odp.projи odp.proj.test. Есть определенные методы, которые я хочу видеть только для классов в этих двух пакетах. Как я могу это сделать? РЕДАКТИРОВАТЬ: Если в Java нет концепции подпакета, есть ли способ обойти это? У меня есть определенные методы, которые я хочу использовать …

21
Должна ли инъекция зависимостей происходить за счет инкапсуляции?
Если я правильно понимаю, типичным механизмом внедрения зависимостей является внедрение либо через конструктор класса, либо через публичное свойство (член) класса. Это раскрывает внедряемую зависимость и нарушает принцип инкапсуляции ООП. Правильно ли я определил этот компромисс? Как вы справляетесь с этой проблемой? См. Также мой ответ на мой вопрос ниже.

7
Использование шаблона стратегии и шаблона команд
Оба шаблона проектирования инкапсулируют алгоритм и отделяют детали реализации от вызывающих классов. Единственное различие, которое я могу различить, заключается в том, что шаблон стратегии принимает параметры для выполнения, а шаблон команды - нет. Мне кажется, что шаблон команды требует, чтобы вся информация для выполнения была доступна при его создании, и …

25
Хороший способ инкапсулировать Integer.parseInt ()
У меня есть проект, в котором мы часто используем Integer.parseInt()для преобразования String в int. Когда что-то пойдет не так (например, Stringэто не число, а буква aили что-то еще), этот метод вызовет исключение. Однако, если мне приходится обрабатывать исключения в моем коде повсюду, это очень быстро начинает выглядеть очень уродливо. Я …

16
Разница между инкапсуляцией и абстракцией
У меня сегодня было интервью. У меня был вопрос от ООП о разнице между инкапсуляцией и абстракцией ? Я ответил ей, что мне известно, что инкапсуляция в основном предназначена для связывания элементов данных и функций-членов в единый блок, называемый Class . В то время как абстракция в основном скрывает сложность …

2
Каковы различия между частным ключевым словом и частными полями в TypeScript?
В TypeScript 3.8+, каковы различия между использованием privateключевого слова для пометки члена как частного: class PrivateKeywordClass { private value = 1; } И используя #частные поля, предлагаемые для JavaScript : class PrivateFieldClass { #value = 1; } Должен ли я предпочесть один другому?
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.