'朋友'相当于Java?

时间:2008-12-17 23:23:12

标签: java design-patterns friend

这里有点建筑麻烦。

在C ++中,我们有“朋友”的概念,这样的朋友类可以访问私人成员。

所以,我正在尝试使用Java应用程序并尝试遵循MVC架构。我有一个控制器类来管理'map_objects'之间的图形连接。我想通过使用这个控制器类隐藏DTO'map_objects'中的函数,该函数实际设置这些连接性。

(即,即使控制器类实现了设置连接性所需的功能,'用户'仍然可以直接访问DTO中的setter / getter函数来自行设置它们。)

这方面有任何设计模式或提示吗? (或者我完全搞砸了?)

DUPLICATE Is there a way to simulate the C++ 'friend' concept in Java?

2 个答案:

答案 0 :(得分:20)

(联合国)幸运的是,在Java中没有直接的C ++朋友。但是,Java access level modifiers可以为您提供帮助。特别是私有或私有包(受AKA包保护,或“默认”)可能有所帮助。

答案 1 :(得分:17)

您可能希望使用interface segregation - 也就是说,让该类实现不同的接口,并仅将对相应(较小)接口的引用传递给不同的客户端。