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

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

658
Почему «приватные» методы Python на самом деле не приватны?

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

354
Когда вы должны использовать «друг» в C ++?

Я читал часто задаваемые вопросы по C ++ и мне было интересно узнать об этом friendобъявлении. Лично я никогда не использовал это, однако я заинтересован в изучении языка. Что является хорошим примером использования friend? Немного дольше читая FAQ, мне нравится идея << >>перегрузки и...

206
Понимание разницы между __getattr__ и __getattribute__

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

167
Абстракция VS Скрытие информации VS Инкапсуляция

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

150
Java: видимость подпакета?

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

128
Должна ли инъекция зависимостей происходить за счет инкапсуляции?

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

121
Использование шаблона стратегии и шаблона команд

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

93
Хороший способ инкапсулировать Integer.parseInt ()

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

87
Разница между инкапсуляцией и абстракцией

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

27
Каковы различия между частным ключевым словом и частными полями в TypeScript?

В TypeScript 3.8+, каковы различия между использованием privateключевого слова для пометки члена как частного: class PrivateKeywordClass { private value = 1; } И используя #частные поля, предлагаемые для JavaScript : class PrivateFieldClass { #value = 1; } Должен ли я предпочесть один...