Programmierprojekt Sommersemester 2015 Model View Controller • Muster zur Strukturierung von Software – Architekturmuster – Entwurfsmuster • Wiederverwendbarkeit von Komponenten – Bsp.: Austausch der GUI-Implementierung für andere Plattform Konzept Daten und evtl. Programmlogik Model wird dargestellt in View Präsentation und Benutzerinteraktion verändert Controller Steuerung der View und Bearbeitung der Benutzeranfragen Zuordnung von Funktionalität • Geschäfts-/Programmlogik sollte Teil des Modells sein – Testbarkeit! • Validierung von Benutzereingaben – Einfache Überprüfung des Formats: View – Komplexe Überprüfungen: Model • Daten-Formatierung (z.B. Datumsformat) – Für unser Projekt: meistens View • Bei GUI-Frameworks übernimmt View z.T. Funktionalität des Controllers – Event-Handling Interaktion von Model und View: Beobachter-Muster Quelle: Wikipedia Beobachtermuster in Java • Klasse java.util.Observable – Modell erbt von dieser Klasse – Bei Veränderung: void setChanged() – Methode void notifyObservers(Object arg) benachrichtigt registrierte Beobachter • Interface java.util.Observer – Methode void update(Observable o, Object arg) wird aufgerufen, wenn das observierte Objekt sich verändert. Beispiel public class ObservingDemo { MyView view; MyModel model; public ObservingDemo() { view = new MyView(); model = new MyModel(); model.addObserver(view); } public static void main(String[] av) { ObservingDemo demoObj = new ObservingDemo(); demoObj.demo(); } public void demo() { model.changeSomething(); } Beispiel: View und Model class MyView implements Observer { public void update(Observable obs, Object x) { System.out.println(“Bin über Update informiert worden!"); } } class MyModel extends Observable { public void changeSomething() { // Veränderung des Models setChanged(); notifyObservers(); } } Entwurfsmuster • Bewährte Muster aus der Softwareentwicklung • Gamma, Helm, Johnsohn, Vlissides: Design Patterns – Elements of Reusable ObjectOriented Software • Klassifizierung – Erzeugungsmuster (Builder, Factory, Singleton,...) – Strukturmuster (Adapter, Decorator,...) – Verhaltensmuster (Observer, Visitor, Iterator,...) JavaDoc • Software-Dokumentierung • Erstellt aus dem annotierten Java-Quelltext HTML-Dokumentationsdateien • Kommentare und Tags /** * Ein Hello-World-Programm in Java. * @author John Doe */ public class Hello { /** * Hauptprogramm. * * @param args Kommandozeilenparameter */ public static void main(String[] args) { System.out.println("Hallo Welt!"); } } Elemente von JavaDoc Tag Verwendung @author John Smith Autor @param <Name> <Beschreibung> Parameter @return <Beschreibung> Rückgabewert @exception @throws Dokumentation von Exceptions • JavaDoc Kommentare sind durch /** ..... */ markiert • Tags enthalten Meta-Daten mit dokumentativem Charakter • Zeilenumbruch im Kommentar mit <p> Organisatorisches • Deadline für den Code: 31. Juli 2015 • Präsentation der Ergebnisse: 27. August 2015, 14:00 – Gruppenpräsentation: je 25 min – Dokumentation in Form von Präsentationsfolien • Gewichtung der Benotung: – 30% Präsentation – 70% Code
© Copyright 2024 ExpyDoc