预定/报价
CS5004 Object Oriented Design
珠玉2024-04-01 14:45:15
Homework 9 - Shapes Photo Album pt 2: Controller & Views
The Shapes Photo Album Part 2
In this assignment will implement two views for your model from the last assignment. A view is responsible for rendering (some or all of) the data in a model in a form that is
understandable to whoever is actually trying to use the data.
YOU HAVE TWO WEEKS for this assignment. Don't wait until the last minute to start. Carrying forward and refactoring
If you made good use of abstraction and was mindful of the "separation of concerns" as we have discussed in lecture this semester, there should be minimal refactoring required
for your model. This week, you may need to adjust or add a few things but if you've adhered to the SOLID principles and isolated your model design, those changes should
be minimal. Please document what changes you make and the reason for each change in your README.
This assignment requires you to self-learn some things, so don't wait until the last minute to get started. You are also free to leverage code that we've used in class to help "jump
start" your efforts, especially when developing your views.
UML diagrams are NOT required for this assignment submission (although you are welcome to create them for your own design process) Views
In this assignment you will work on two views for your Shapes Photo Album application- an interactive "Graphical" view and a static "Web" view. Yes, we know: both views are graphical in one sense of the word, but for this assignment we are distinguishing between a (nearly) native interactive graphical application from a static web page using html markup and SVG.

As with the model, in the abstract sense, a view is an interface; particular concrete views implement that interface. Accordingly, your work in this assignment should carefully  distinguish between any one particular implementation of a view and the common interface to which they should all adhere. (Side note: if your model from the previous assignment failed to have a similar interface/implementation split, you should fix that also).

Note: both the Web view (SVG) and the Graphical view (Swing) use a coordinate system that stipulates the origin is in the upper left corner of the "frame"/window. The
command input files we provide (more info below) default to this coordinate system. If you prefer to use your own coordinate origin (e.g. 0,0 in the center of the screen like

Python Turtle) you'll need to write your own code to do the coordinate transformation.

my wechat:_0206girl
Don't hesitate to contact me