Допустим, у вас есть FooManager
, созданный для управления несколькими объектами типа Foo
. FooManager
необходимо увидеть некоторые части его Foo
, чтобы оценить их текущее состояние. До того, как я использовал несколько аксессоров в Foo
для просмотра этих частей, пока я не понял, что FooManager
- единственный класс, фактически использующий их. Я решил сделать FooManager
другом Foo
. Это привело к тому, что большая часть класса Foo
стала частной.
Это правильное использование друга? Мое рассуждение состояло в том, что это помогает инкапсуляции, потому что, хотя FooManager
дает полный доступ к внутренним элементам Foo
, оно полностью блокирует доступ ко всему остальному.