使用内部类组织Java代码

时间:2014-04-09 22:15:50

标签: java android design-patterns namespaces

这是良好做法和组织的问题。

在JavaScript中,我常常将代码的一小部分组织成objects,如下所示:

var init{
  menu: function(){...},
  navBar: function(){...},
  connection: function(){...},
};

// And then call it like:
init.menu();
init.navBar();
[...]

我希望能够做到这一点,但是没有找到一个好办法。将其分组到静态类中会使访问Activity变得困难。为此,实例化一个类对我来说似乎很重要。

这是我提出的,但我实际上并不喜欢它,因为我必须分配context,并将其实例化为帮助类:

SwitchToHelper switchTo;

@Override
protected void onCreate(Bundle savedInstanceState) {
        [...]

        // Instantiate fragment helper
        switchTo = new SwitchToHelper(this);
        switchTo.Feed();
}

class SwitchToHelper{
        FragmentActivity context;
        // This is a default viewId to be used
        int defaultViewId;

        SwitchToHelper(FragmentActivity context) {
            this.context = context;
            defaultViewId = R.id.fragment;
        }

        void Feed(){
            // Creates and switches fragment
            Fragment feedFragment = FeedFragment.newInstance();
            makeTransaction(feedFragment).commit();
        }
}

你知道这方面的良好做法吗?

由于

1 个答案:

答案 0 :(得分:0)

这是我能提出的最接近的解决方案。

public class FragmentActivity {
  int v;

  class SwitchToHelperImpl {
    void Feed() {
      doSomethingFragmentActivity(FragmentActivity.this);
    }

    void doSomethingFragmentActivity(FragmentActivity frag) {
      System.out.println(frag.v);
    }
  }

  SwitchToHelperImpl SwitchToHelper = new SwitchToHelperImpl();

  public FragmentActivity(int v) {
    this.v = v;
  }

  public void onCreate() {
    SwitchToHelper.Feed();
  }
}