У меня есть два объекта, A и B. Сейчас B хранит A как локальную переменную класса.
class B
{
A myA;
}
Теперь у B есть куча методов, которые используют свой внутренний myA
для выполнения каких-то задач, и я могу использовать эти методы, поскольку они общедоступны.
Но иногда мне нужно использовать сам myA
. Так что я сделал это, чтобы сделать это публичным, и тогда я мог написать myB.myA.someMethodFromA()
.
Это нормально или это плохой стиль? Я имею в виду, я знаю, что мог бы просто предоставить косвенные средства доступа к myA
через методы в классе B, но это кажется ненужным, когда я могу просто получить прямой доступ к myA
.
Например, если myA
имеет метод doStuffviaA
, я бы лучше сказал myB.myA.doStuffViaA()
, чем сначала нужно написать метод в B, который говорит
void doStuffViaB() { myA.doStuffViaB() }
Но, конечно, если сделать myA
публичным, это значит, что его можно изменить, не B
зная об этом. ЧТО ДЕЛАТЬ?