По-моему, переменные экземпляра только необходимы, когда данные будут использоваться через вызовы.
Вот пример:
myCircle = myDrawing.drawCircle(center, radius);
Теперь позволяет обработке изображений myDrawing использования класса, для 15 функций помощника для создания объекта myCircle и каждой из тех функций будут нужны центр и радиус. Они все еще не должны быть установлены как переменные экземпляра myDrawing класса. Поскольку они никогда не будут необходимы снова.
, С другой стороны, myCircle класс должен будет сохранить и центр и радиус как переменные экземпляра.
myCircle.move(newCenter);
myCircle.resize(newRadius);
Для myCircle возражают для знания то, что это - радиус, и центр, когда эти новые вызовы выполняются, они должны быть сохранены как переменные экземпляра, не только передал функциям, для которых нужны они.
Так в основном, переменные экземпляра являются способом сохранить "состояние" объекта. Если переменная не необходима для знания состояния объекта, то это не должна быть переменная экземпляра.
И что касается того, чтобы обнародовать все. Это могло бы сделать Вашу жизнь легче в момент. Но это заставит Вас пожалеть. Горох не делает.