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

17
Почему закрытые поля недостаточно защищены?
privateПолезна ли видимость полей / свойств / атрибутов класса? В ООП рано или поздно вы создадите подкласс класса, и в этом случае полезно понять и иметь возможность полностью изменить реализацию. Одна из первых вещей, которые я делаю, когда делаю подкласс класса, - это изменение набора privateметодов на protected. Тем не …

15
Зачем нам нужны частные переменные?
Зачем нам нужны закрытые переменные в классах? В каждой книге по программированию, которую я прочитал, говорится, что это частная переменная, именно так вы ее определяете, но на этом остановимся. Формулировка этих объяснений всегда казалась мне такой, будто у нас действительно кризис доверия к нашей профессии. Объяснения всегда звучали так, как …

15
TDD Red-Green-Refactor и если / как проверить методы, которые становятся частными
Насколько я понимаю, большинство людей, похоже, согласны с тем, что частные методы следует тестировать не напрямую, а с помощью любых открытых методов, которые их вызывают. Я вижу их точку зрения, но у меня возникают некоторые проблемы с этим, когда я пытаюсь следовать «трем законам TDD» и использовать цикл «красный - …

10
Использование сторонних библиотек - всегда использовать обертку?
Большинство проектов, в которых я участвую, используют несколько компонентов с открытым исходным кодом. Как общий принцип, всегда ли полезно избегать привязки всех компонентов кода к сторонним библиотекам и вместо этого проходить через инкапсулирующую оболочку, чтобы избежать проблем с изменениями? В качестве примера, большинство наших проектов PHP напрямую используют log4php в …

13
Почему «нижним» уровням приложений лучше не знать о «более высоких» уровнях?
В типичном (хорошо спроектированном) веб-приложении MVC база данных не знает о коде модели, код модели не знает о коде контроллера, а код контроллера не знает о коде представления. (Я полагаю, что вы могли бы даже начать с аппаратного обеспечения или даже дальше, и схема могла бы быть такой же.) Идя …

8
Что должно быть разрешено внутри геттеров?
Я попал в интересный интернет-спор о методах получения и установки и инкапсуляции. Кто-то сказал, что все, что они должны сделать - это присваивание (установщики) или доступ к переменным (получатели), чтобы сохранить их «чистыми» и обеспечить инкапсуляцию. Прав ли я, что это полностью разрушило бы цель иметь в первую очередь геттеры …

5
Зачем нам нужны перечисления в динамически типизированных языках?
Я читал некоторый код здесь и увидел, что enum используется для хранения имен тегов html. Почему мы когда-либо должны это делать? Какую выгоду я получу от этой стратегии? Я знаю, насколько полезны перечисления в скомпилированных или статически типизированных языках, но когда я вижу перечисления в динамически типизированных языках, мне становится …

10
Вы обычно отправляете объекты или их переменные-члены в функции?
Что является общепринятой практикой между этими двумя случаями: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } или function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } Другими словами, лучше ли передавать объекты целиком или только те поля, которые вам нужны?

6
Должен ли я поместить функции, которые используются только в одной другой функции, в эту функцию?
Конкретно я пишу на JavaScript. Допустим, моя основная функция - это функция A. Если функция A делает несколько вызовов функции B, но функция B больше нигде не используется, то я должен просто поместить функцию B в функцию A? Это хорошая практика? Или я все еще должен поместить функцию B в …

6
Почему Java установил доступ к пакетам по умолчанию?
Я задаю этот вопрос, потому что я полагаю, что они сделали это по очень веской причине, и что большинство людей не используют его должным образом, в любом случае, исходя из моего опыта работы в промышленности. Но если моя теория верна, то я не уверен, почему они включили модификатор частного доступа …

4
Что это значит, когда кто-то говорит «Инкапсулировать то, что меняется»?
Один из принципов ООП, с которыми я столкнулся, это: - Инкапсулируйте то, что меняется. Я понимаю, что буквальное значение фразы, то есть скрыть, что меняется. Тем не менее, я не знаю, как именно это будет способствовать улучшению дизайна. Может кто-нибудь объяснить это на хорошем примере?

4
Почему Java не использует инкапсуляцию с некоторыми классами?
Мой вопрос связан с System.inи System.outклассами (там может быть и другими , как те , в библиотеке Standard). Почему это? Разве это не плохая практика в ООП? Разве это не должно быть использовано как: System.getIn()и System.getOut()? У меня всегда был этот вопрос, и я надеюсь, что смогу найти хороший ответ …


7
Если переменная имеет getter и setter, должна ли она быть публичной?
У меня есть класс с переменной, которая является частной, и у класса есть получатель и установщик для этой переменной. Почему бы не сделать эту переменную общедоступной? Я думаю, что вам нужно использовать только геттеры и сеттеры, если вам нужно выполнить какую-либо операцию, кроме set или get. Пример: void my_class::set_variable(int x){ …

5
Какая польза от объединения, агрегации и состава?
Я прошел через множество теорий о том, что такое инкапсуляция и три метода ее реализации, а именно: ассоциация, агрегация и композиция. То, что я нашел, это : Инкапсуляция Инкапсуляция - это техника, делающая поля в классе приватными и обеспечивающая доступ к полям с помощью открытых методов. Если поле объявлено как …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.