Подтвердить что ты не робот

Эквивалент "Друзья" для Java?

имеет небольшую архитектурную проблему.

В С++ у нас есть понятие "друзья", где такие классы друзей могут обращаться к закрытым членам.

Итак, я создаю приложение Java и пытаюсь придерживаться архитектуры MVC. У меня есть класс контроллера, который управляет связью графа между 'map_objects.' Я хотел бы скрыть эту функцию в DTO 'map_objects', который actall устанавливает эти соединения, используя этот класс контроллера.

(т.е. даже если класс контроллера реализует необходимые функции настройки соединений, "пользователи" могут по-прежнему напрямую обращаться к функциям setter/getter в DTO, чтобы сами установить их.)

Есть ли какие-либо шаблоны дизайна или советы в этом отношении? (Или я полностью отключился?)

DUPLICATE Есть ли способ имитировать концепцию "друга" С++ в Java?

4b9b3361

Ответ 1

(Un), к счастью, нет прямого эквивалента Java в Java. Тем не менее, модификаторы уровня доступа Java могут вам помочь. В частности, частные или частные пакеты (защищенный пакет AKA или "по умолчанию" ) могут помочь.

Ответ 2

Возможно, вы захотите использовать сегрегацию интерфейса - то есть пусть класс реализует разные интерфейсы и только передает ссылки на соответствующие (меньшие ) взаимодействует с разными клиентами.