I am a first year student in software engineering (first semester) and I am currently taking my first software design course. We have gone through 18 design patterns (or shot right through them is more like it). I am finding using design patterns correctly rather intimidating, especially when we must combine a number of them to build an application. As an exercise our professor gave us the following so that we may practice (I tried keeping it as brief and succinct as possible):
We are asked to design an application based on the MVC architecture. We will have three views (graphical views of the model). The model is composed of two classes: Image and Perspective. The operations that can be performed from the views are: Translate image, zoom, redo, undo.
I have two controllers where AdmisnistrativeController will handle tasks such as serialization and ImageController will act directly on the model.
I have attached an image file on the conceptual design of my application. I have omitted methods as I do not want to inundate the diagram. Also, I am not looking for a solution to the problem but rather some advice.
The specific questions I have are as follows:
1) If I wanted to incorporate a CommandManager object that managed the commands (as a Stack or other data structure), what would be one possible way of designing this.
Please feel free to be as brutally honest as is needed for that is the only way I can learn. Again, I apologize if my post is ambiguous, and my design leaves much to be desired. My professor went through the design patterns in one lecture a few days ago.
I wish to thank you all in advance for any comments and advice.