使Java方法仅对特定类可见
我有一个经理类,负责管理某种对象。为此,需要操纵这些对象,但是这些对象与管理器没有任何关系,因此从技术上来说,它们位于单独的程序包“
project.managers”和“
project.objects”中。重要的是,所讨论的对象仅应由管理者操作,而不能在其他任何地方操作,而需要项目中的所有其他类都可以访问。
因此,我希望管理人员有权使用操作方法,但要限制对其他所有类的访问。最明显的一个方法是将管理器类和对象类移到同一程序包中,并声明要保护的操作方法,但是由于管理器和对象是完全独立的实体,因此从哲学上讲它们并不适合。
(部分原因是,当我在有关对象上自动完成代码时,我希望我的IDE停止向我显示操作方法,因此,我总是必须经过管理器,以便每当更改有关对象时,正确更新相应的表)
。
是否有任何想法或明显的方法在任何情况下都是最好的?
回答:
为什么不叫一个接口
ManagerFunctions
另一个叫做
ClientFunctions
您管理的对象将实现 这两个 。
创建托管对象时,您将它们传递给其他对象,但仅作为对的引用ClientFunctions
。但是,管理器对象将引用它们ManagerFunctions
,因此可以访问其“托管”功能。适当的转换只会暴露出适当的方法。
根据如何引用这些对象,您的IDE将自动为您提供适当的方法。
以上是 使Java方法仅对特定类可见 的全部内容, 来源链接: utcz.com/qa/403936.html