Ответ 1
(Un), к счастью, нет прямого эквивалента Java в Java. Тем не менее, модификаторы уровня доступа Java могут вам помочь. В частности, частные или частные пакеты (защищенный пакет AKA или "по умолчанию" ) могут помочь.
имеет небольшую архитектурную проблему.
В С++ у нас есть понятие "друзья", где такие классы друзей могут обращаться к закрытым членам.
Итак, я создаю приложение Java и пытаюсь придерживаться архитектуры MVC. У меня есть класс контроллера, который управляет связью графа между 'map_objects.' Я хотел бы скрыть эту функцию в DTO 'map_objects', который actall устанавливает эти соединения, используя этот класс контроллера.
(т.е. даже если класс контроллера реализует необходимые функции настройки соединений, "пользователи" могут по-прежнему напрямую обращаться к функциям setter/getter в DTO, чтобы сами установить их.)
Есть ли какие-либо шаблоны дизайна или советы в этом отношении? (Или я полностью отключился?)
DUPLICATE Есть ли способ имитировать концепцию "друга" С++ в Java?
(Un), к счастью, нет прямого эквивалента Java в Java. Тем не менее, модификаторы уровня доступа Java могут вам помочь. В частности, частные или частные пакеты (защищенный пакет AKA или "по умолчанию" ) могут помочь.
Возможно, вы захотите использовать сегрегацию интерфейса - то есть пусть класс реализует разные интерфейсы и только передает ссылки на соответствующие (меньшие ) взаимодействует с разными клиентами.