使Java方法只有特定的类可见(Make java methods visible to only

2019-07-03 23:36发布

我有一个管理器类,它负责管理某一种物体。 要做到这一点就需要操纵这些对象,但这些对象有没有关系经理无论如何,这样的设计在技术上,他们是在单独的套餐“project.managers”和“project.objects”。 最重要的是有问题的对象只能由管理者来操纵和其他地方,但需要在项目中的每个其他类访问。

因此我想有管理者有机会获得操作方法,但限制访问所有其他类。 最明显的一个是移动管理器类和对象类到相同的软件包,并宣布操纵保护的方法,但作为管理者和对象是完全独立的实体,他们不适合有哲理。

(这部分是因为我希望我的IDE停止显示我的操纵方法,每当我有问题的对象自动完成代码,所以我一直有透过经理去所以相应的,每当我改变有问题的对象表更新正确路线) 。

是否有任何的想法到或者是明显的方式在任何情况下,最好的?

Answer 1:

为什么不能有一个名为接口

ManagerFunctions

和另一个叫

ClientFunctions

你管理的对象将实现这两种

当您创建管理的对象,你通过他们身边,但只是作为参考ClientFunctions 。 经理对象将,但称它们为ManagerFunctions ,因此有机会获得他们的“管理”功能。 适当的铸造只会暴露适当的方法。

您的IDE将自动为您呈现西港岛线的适当的方法取决于这些对象是如何被引用。



Answer 2:

你问到C ++的“朋友”的声明类似的东西,但没有直接等效的Java - 包可见是最近的。 或者你可以去像XML DOM,这里应该是公开的方法的接口定义和所有客户端访问是通过这些接口的典范。 管理人员会知道具体类的实现的要求,从而可以垂头丧气了这一点。



Answer 3:

因此我想有管理者有机会获得操作方法,但限制访问所有其他类。 最明显的一个是移动管理器类和对象类到相同的软件包,并宣布操纵保护的方法...

从技术上讲,你会申报操纵方法,包保护(不修改的话)。 受保护的方法允许类进行扩展更容易。

但作为管理者和对象是完全地独立的实体,他们不适合有哲理。

我明白。 Java没有说C ++有“朋友”的宣言。

你对此有何评论的操作方法,但这并不解决您的Eclipse问题。



文章来源: Make java methods visible to only specific classes