适当使用朋友?设计用来处理特定类型
问题描述:
的对象容器类,比方说你有做管理Foo
类型的多个对象FooManager
。 FooManager
需要查看其Foo
的某些部分以评估其当前状态。在我使用Foo
中的几个访问器来查看这些部分之前,直到我意识到FooManager
是实际使用这些部分的唯一类。我决定把FooManager
作为Foo
的朋友。这导致大多数类Foo
变得私人。适当使用朋友?设计用来处理特定类型
这是一个合适的使用朋友的?我的理由是,它有助于封装,因为虽然它给FooManager
到Foo
的内部,它完全阻断完全访问了通往一切。
答
除非有不同的更清洁的方式来达到你想达到什么目的,这听起来像一个公平的做法。
至于封装,请参阅:http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2。