我有一个管理器类,负责管理某种类型的对象。为此,它需要操作这些对象,但这些对象与管理器没有任何关系,因此从技术上讲,它们位于单独的包“project.managers”和“project.objects”中。重要的是,所讨论的对象只能由管理人员操作,而不能由其他任何地方操作,但需要可由项目中的所有其他类访问。
因此,我希望管理人员能够访问操作方法,但限制对其他所有类的访问。最明显的一种是将管理器类和对象类移到同一个包中,并声明受保护的操作方法,但由于管理器和对象是完全独立的实体,因此它们在哲学上不适合那里。
(部分原因是,每当我自动完成相关对象上的代码时,我希望 IDE 停止向我显示操作方法,因此我总是必须通过管理器进行路由,以便每当我更改相关对象时,相应的表都会正确更新) 。
有什么想法吗?或者在任何情况下,明显的方法都是最好的吗?
为什么不提供一个名为
ManagerFunctions
另一个叫
ClientFunctions
您管理的对象将实现both这些。
当您创建托管对象时,您可以传递它们,但仅作为对的引用ClientFunctions
。然而,管理器对象将它们称为ManagerFunctions
并因此可以访问其“托管”功能。适当的转换将简单地公开适当的方法。
您的 IDE 将根据这些对象的引用方式自动向您提供适当的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)