title: Proper code design for Android/Java
body: <p>Code design questions</p>
  
  <p>I have a class lets say <code>Area</code> that has a private instance variable called <code>schools</code> . In the <code>Area</code> 's constructor I initialize all my schools because its a time taking process. There is an instance method in <code>Area</code> that says group by schools where a list of students are passed. I group these students into their schools and pass back the result.</p>
  
  <p>Is it too much responsibility for this <code>Area</code> class that it has to maintain a list of schools as well as is doing the grouping? But my main question is Android related:
  I have multiple fragments that needs to use this class. They make use of the number of schools, list of schools as well as grouping them. I dont want to instantiate this <code>Area</code> every single time I open a new fragment. Where and how should I be instantiating them in the fragment or another place? I cant make it a singleton because <code>area</code> can change and in turn it needs to reinstantiate itself. I cannot call <code>setSchools</code> on it as its a one time thing. Any ideas? Is there a design pattern that I can follow?</p>