![]() |
Локальные переменные?
Часто в чужом коде вижу такие конструкции.
Код:
public class A { |
Вполне возможно, что в "...." метода method() что-то происходит с переменной field, но изменять её для всего объекта нежелательно. Поэтому её копируют в result, портят и возвращают куда надо.
|
Coutty, так в этом и дело, что её не копируют - это же ссылочный тип.
вот например из исходников libgdx Код:
public class Group extends Actor implements Cullable { |
Цитата GordonG:
Зачем так делать? Это как-то оптимизирует код? » В данном случае прямой доступ к полю закрыт, и осуществляется только через предопределенные автором класса методы, что позволяет уменьшить вероятность возникновения ошибок как при разработке класса (и подклассов) так и при использовании экземпляров класса. Если вы забыли - это называется инкапсуляция, один из основополагающих принципов ООП. Позволю себе привести цитату: Сводите к минимуму доступность классов и членов
Единственный чрезвычайно важный фактор, отличающий хорошо спроектированный модуль от неудачного,- степень сокрытия его внутренних данных и иных деталей реализации от других модулей. Хорошо спроектированный модуль скрывает все детали реализации, четко разделяя свой АРI и реализацию. Модули взаимодействуют друг с другом только через свои API, и ни один из них не знает, какая обработка происходит внутри другого модуля. Эта концепция, называемая сокрытием информации (information hiding) или инкапсуляцией (encapsulatiori), представляет собой один из фундаментальных принципов разработки программного обеспечения... Источник: Java Эффективное программирование. Джошуа Блох. |
Время: 01:54. |
Время: 01:54.
© OSzone.net 2001-