Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Entwurfsmuster (design patterns) bieten Lösungsschemata für immer wieder vorkommende Standardsituationen an und helfen auf diese Weise bei der Strukturierung der Klassen in der Entwurfsphase. Das Composite – Pattern (Kompositum) Die Einzelkomponente wird auch als Blatt bezeichnet. Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Dieses Entwurfsmuster kommt dann zum Einsatz, wenn Gruppen von Objekten das gleiche Verhalten zeigen wie einzelne Objekte. Beispiele: Listen und Bäume Dateisysteme: Die Verzeichnisse eines Dateisystems enthalten einzelne Dateien und Unterverzeichnisse, die gemeinsame Eigenschaften, wie Namen oder Zugriffsrechte besitzen Menüstruktur: In einem Programm bestehen die Menüs aus einzelnen Menüpunkten und Untermenüs. Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Fensterklassen in Java: Kompositum Einzelkomponenten Komponente Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Das Observer – Pattern Mit Hilfe dieses Musters kann man die (einseitige) Kommunikation zwischen einem Erzeuger von Information (Observable) und den verschiedenen Interessenten an dieser Information (Beobachter, Observer) flexibel realisieren. Der Informationserzeuger bietet ein Interface an, das potenzielle Interessenten nutzen können, um ihren Beobachtungswunsch anzumelden. Bei Bedarf können sie sich auch wieder vom Empfang der Meldungen abmelden. Diese beiden Vorgänge werden in der Klasse ERZEUGER durch die Methoden Registrieren und Abmelden umgesetzt. Die Interessenten müssen ihrerseits garantieren, dass sie alle Botschaften des Erzeugers verstehen, d. h., sie implementieren die geforderte Schnittstelle BEOBACHTER. Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Das Observer – Pattern Beispiel: Wetterstation_Observer Die Wetterstation (Observable) erzeugt Daten, die von verschiedenen Displays (Observer) beobachtet werden können. Verschiedene Displays können sich während des laufenden Betriebs an-und abmelden. Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Das Observer – Pattern Anwendung: ActionListener jButton_Berechnen.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jButton_Berechnen_ActionPerformed(evt); } }); public void jButton_Berechnen_ActionPerformed(ActionEvent evt) { // TODO hier Quelltext einfügen } // end of jButton_Berechnen_ActionPerformed Observable = Button Observer = ActionListener Wird ein Button gedrückt, so sendet er ein Action-Event an seine Ereignisempfänger. Diese müssen das Interface ActionListener implementieren und sich durch Aufruf der Methode addActionListener registrieren. Das Action-Event führt im Ereignisempfänger zum Aufruf der Methode actionPerformed, die ein ActionEvent übergeben bekommt Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Das MVC (Model View Controler) – Pattern Model enthält die zu verwaltenden Daten. View präsentiert die Daten, nimmt Benutzerinteraktionen entgegen. Controler verwaltet die View, wertet die Benutzereingaben aus und agiert entsprechend. Durch das MVC - Pattern wird ein flexibler Programmentwurf erreicht, bei dem Komponenten einfach verändert werden können und der den Einsatz auf verschiedenen Plattformen möglich macht. Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Das MVC (Model View Controler) – Pattern Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster
Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster Das MVC (Model View Controler) – Pattern Beispiel: Wetterstation_MVC Informatik 11 - 4. Softwareentwicklung – 4.3 Entwurfsmuster