Обеспечить соблюдение иерархии владения Java - PullRequest
0 голосов
/ 21 мая 2018

Можно ли, например, с помощью аннотаций создать некую «иерархию» владения классом?

В качестве примера предположим, что в этой «иерархии» есть три уровня объектов, Level1, Level2 и Level3.

Level1 могут иметь (в моем случае, как переменная экземпляра Spring @Autowire) экземпляр Level2, но не могут владеть Level3 (потому что это два уровня глубины).Кроме того, только Level1 классы могут владеть Level2.Точно так же Level3 может принадлежать только Level2.

Мне очень любопытно посмотреть, можно ли использовать некоторую комбинацию аннотаций и аргументов времени компиляции для достижения результата.

Примечание. Я ищу ответы, которые конкретно соответствуют тому, что я описал.Но конкретный вариант использования (если это помогает) - предотвращение прямого вызова бизнес-логикой высокого уровня бизнес-логики или, например, контроллеры API, вызывающие сервисы низкого уровня напрямую, когда они предназначены для вызова только бизнес-логики высокого уровня.

По сути, этот вопрос касается обобщения управления доступом (private, protected...) на произвольные структуры пакетов, например, с помощью аннотаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...