Class Hoge{
private:
 int hage; //他メンバ変数が「20」個
public:
 void func( int n ){
  switch(n){
   case CASE0: hage達に関する複雑な処理; break;
   case CASE1: hage達に関する複雑な処理; break;
   //以下延々と「30」個
  }
 }
};
case文が多いので、そこの処理だけを他クラスに切り分けたいと思ったのですが(Stateパターン?)、
切り分けたクラスからHogeのメンバ変数であるhage達にアクセスする良い手段は無いでしょうか。
 ・getter/setterを20個ずつ用意する
 ・friendを30行書く
 ・メンバ変数を全て構造体にまとめ、切り分けたクラス達に渡す
思いついたのは、どれもいまいち _| ̄|○