是否有可能(例如使用注释)创建一种类所有权的“层次结构”?
例如,假设此“层次结构”中有三个级别的对象,Level1
,Level2
和Level3
。
Level1
可以拥有(在我的情况下,作为Spring @Autowire
实例变量)Level2
但不能拥有Level3
的实例(因为它有两个级别) 。此外,仅 Level1
个类可以拥有Level2
。同样,Level3
只能由Level2
拥有。
我很好奇是否可以使用注释和编译时参数的某些组合来实现结果。
注意。我正在寻找与我所描述的内容完全对应的答案。但是特定用例(如果它有帮助)阻止高级业务逻辑直接调用数据库存储库,或者例如API控制器直接调用低级服务时,它们只打算调用高级业务逻辑。
这个问题的核心是关于通过注释将访问控制(private, protected...
)概括为任意包结构。