我有两个课程,在一个方面紧密合作。它们都使用彼此的功能,只能由它们使用,而不是任何其他类。
答案 0 :(得分:16)
getter和setter以及friend类都减少了封装并增加了耦合。至少友谊将减少的封装限制为需要额外访问的显式指定的类。这两个类现在紧密耦合的事实不一定是坏事,它们可以被认为是整体设计的一个单元。
答案 1 :(得分:10)
不,一点也不。这是一个普遍的事情,有效的,你有一个类,但它必须分为两个终身和其他实现的东西。在这种情况下,朋友课肯定是要走的路。
如果更改一个类的实现意味着您必须更改另一个类的实现,那么这绝对适用。特别是如果你需要这两者之间的界面元素不适用于公开。
朋友类存在是有原因的。