让我们说我有三个公共java包:
my.com.model
my.com.view
my.com.controler
现在我想限制允许哪个包从专用包中导入类。
所以,例如view包中的类只允许从controler包中导入类 但不是来自模型包,而且只允许controler包从模型包中导入类 不是来自视图包,模型包根本没有对模型和视图包的访问权。
我怎样才能做到这一点?我知道Java不支持这样的要求,所以可能是一些静态代码 分析工具可以帮助我。
更新:我使用的是Java 7
答案 0 :(得分:1)
您可以通过在分离的模块中提取每个关注点来定义它。
视图模块将依赖于控制器模块,控制器模块将依赖于模型模块。
您可以使用Maven来实现这些限制。
例如,您可以使用3个模块定义反应堆或多模块Maven项目。
Maven为声明的依赖项提供传递依赖项。因此,为了完全满足您的要求,view
模块应排除由model
依赖项提取的传递controller
依赖项。