Геттеры и сеттеры сильно злоупотребляют
Я видел миллионы людей, утверждающих, что публичные поля являются злом, поэтому они делают их приватными и предоставляют для всех них геттеры и сеттеры. Я считаю, что это почти идентично открытию полей, может быть немного по-другому, если вы используете потоки (но, как правило, это не так) или если ваши средства доступа имеют бизнес-логику / логику представления (по крайней мере, что-то «странное»).
Я не за открытые поля, а против создания геттера / установщика (или свойства) для каждого из них, а затем утверждаю, что это инкапсуляция или сокрытие информации ... ха!
ОБНОВЛЕНИЕ:
Этот ответ вызвал некоторые противоречия в его комментариях, поэтому я попытаюсь прояснить его немного (я Я оставлю оригинал нетронутым, поскольку за это проголосовали многие люди.
Прежде всего: любой, кто использует открытые поля, заслуживает тюрьмы.
Теперь, создавая приватные поля и затем используя IDE для , автоматически генерируем геттеры и сеттеры для каждого из их - это почти так же плохо , как и использование открытых полей.
Многие думают:
private fields + public accessors == encapsulation
Я говорю (автоматически или нет), что генерация пары геттер / сеттер для ваших полей эффективно идет вразрез с так называемой инкапсуляцией, которую вы пытаетесь достичь .
Наконец, позвольте мне процитировать дядю Боба в этой теме (взято из главы 6 «Чистого кода»):
Есть причина, по которой мы держим наши переменные закрытыми , Мы не хотим, чтобы кто-то еще зависел от них. Мы хотим свободы менять свой тип или реализацию по прихоти или импульсу. Почему же тогда так много программистов автоматически добавляют геттеры и сеттеры к своим объектам, выставляя свои закрытые поля , как если бы они были открытыми?
otool
-L
файл ldd
файл Если эти команды не предоставляют что вы хотите, в Mac OS X вы можете выгрузить все команды загрузки с помощью otool
-l
file . В Linux вы можете выгрузить все содержимое динамического раздела с помощью readelf
-d
file .
попробуйте ldd в терминале. Это предоставит вам список динамических библиотек, которые нужны двоичному файлу.
Вы также можете попробовать MacDependency ( http://macdependency.googlecode.com ), который предоставляет замену пользовательского интерфейса для otool в MacOS X. Он показывает полные деревья зависимостей и также экспортируемые символы.