MVC Model View Controller v A model is

  • Slides: 5
Download presentation
MVC: Model, View, Controller v A model is the state and brains of a

MVC: Model, View, Controller v A model is the state and brains of a system q q v The view is how we look at the model q q v In a game it's all the pieces and where they are In a spreadsheet it's the data and the formulae Spread sheet has graphs, charts, cells, text, … Game has board, number of opponents, hit-points, … When the model changes, the views reflect the changes q q q The model tells the views how/if it has changed Model sends information to views OR View asks model for information Comp. Sci 100 E 8. 1

MVC: interfaces and inheritance v A model might have multiple views q q q

MVC: interfaces and inheritance v A model might have multiple views q q q v See IModel and Abstract. Model q q v Tell all the views "I've changed" Who manages the views? This requires state: store views Why can't we keep this state in an interface? One specifies behavior, the other provides default Don’t rewrite code if we don't have to, maintaining views will be the same for all models See IView and Simple. View q No default/shared view state/behavior: text and GUI Comp. Sci 100 E 8. 2

Does Simple. Viewer know Model? v What does the Simple. Viewer know about its

Does Simple. Viewer know Model? v What does the Simple. Viewer know about its model? q q v Control in MVC with Simple. Viewer and IModel q Loading a file calls initialize() Entering text calls process() q Model calls view with messages, errors, and complete update q v If we look at code, is there any application-specific logic? What if we wanted to play a game, start a new game? This isn't complete general, but it's pretty generic q For this input, here's the output Comp. Sci 100 E 8. 3

Pixmap Assignment v “Last” Comp. Sci 6 Assignment q q v Not really MVC

Pixmap Assignment v “Last” Comp. Sci 6 Assignment q q v Not really MVC q v Doesn’t hurt to keep that model in mind, though Lots of GUI stuff q q q v Lots has been done for you Mainly an exercise in working with 2 D info Graphical User Interface is not reall focus of this course Just use what has been given Become familiar with it by reading code, seeing results Feel free to experiment Comp. Sci 100 E 8. 4

Java Exceptions v Many I/O operations can throw Exceptions q q q v Code

Java Exceptions v Many I/O operations can throw Exceptions q q q v Code handles it for your However, need to know what is going on (Review pages in Chapter 2) Catching Exceptions Use try-catch block try { // statements that might generate exception } catch (exception_type var) { // code that deals with exception } q v Method can pass on responsibility for exception with throws clause Comp. Sci 100 E 8. 5