javamodel-view-controllergrasp

MVC pattern, no database, where to store objects?


I'm working on a school project and or task is to design a project management tool. We are allowed to use any design pattern as long as we can explain how it's good according to the GRASP principles.

I'll give a synopsis of the project tool:

We decided to go with the MVC-pattern and we are not allowed to use a database. My question is: Where should I store objects?

Should I do this in the controller? Currently we do it like this:

public class ProjectController
{
    private ArrayList<Project> projects;

    public ProjectController(TaskController taskController)
    {
        projects = new ArrayList<Project>();
    }
}

I have a feeling there is something wrong with keeping the objects in the controller but I can't explain why. Anyone that can explain what's the best practice according to the GRASP-principles?

EDIT: Thank you, learned from everyone something but can only pick one answer.


Solution

  • Increase abstraction.. Create a model class. Create your arraylist (model objects) there. Your controller should still access/call model methods.

    Tomorrow, you might want to dump that data into a file or into a DB, you will have one hell of a ride doing that with the current design. So separate your model from your controller and keep the design clean.