适当使用朋友?设计用来处理特定类型

问题描述:

的对象容器类,比方说你有做管理Foo类型的多个对象FooManagerFooManager需要查看其Foo的某些部分以评估其当前状态。在我使用Foo中的几个访问器来查看这些部分之前,直到我意识到FooManager是实际使用这些部分的唯一类。我决定把FooManager作为Foo的朋友。这导致大多数类Foo变得私人。适当使用朋友?设计用来处理特定类型

这是一个合适的使用朋友的?我的理由是,它有助于封装,因为虽然它给FooManagerFoo的内部,它完全阻断完全访问了通往一切。

除非有不同的更清洁的方式来达到你想达到什么目的,这听起来像一个公平的做法。

至于封装,请参阅:http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2