我想到了软件设计中的有趣情况。如何从不应该看到它的包中隐藏包(以及此包中的公共类)?
例如,三个软件设计层(UI,BL,DAL)。 UI层应该只知道BL层,BL层应该只知道DAL层 所以BL包使用DAL包。但是,我怎样才能阻止UI层使用DAL层,没有BL层或利用BL已经知道DAL的事实。
这只是我的意思的一个例子,以防止包看到没有连接器包的其他包。
答案 0 :(得分:0)
仅Java不能实现这种分离。一旦课程需要公开,其公开 the world 。
我觉得和你在一起,因为我不喜欢包含数百个类的包,所以我喜欢将它们子结构化为子包。不幸的是,这会干扰使用包私有类的类的唯一隐藏机制。
在实践中可以解决这个问题的方法通常是将代码分成单独的构建单元(基本上是项目)。您可以为每个图层创建一个单独的项目,并仅将要访问的图层添加为依赖项。