410 likes | 513 Views
Einführung in Cocoa. Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller, SS 2012 Do, 14-15.30 Uhr, Archäologie-Pool Referent: Nelson Marambio. Framework vs. Klassenbibliothek. Klassenbibliothek (z.B. Java): ausformulierte Attribute. Framework vs. Klassenbibliothek.
E N D
Einführung in Cocoa Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller, SS 2012 Do, 14-15.30 Uhr, Archäologie-Pool Referent: Nelson Marambio
Framework vs. Klassenbibliothek • Klassenbibliothek (z.B. Java): ausformulierte Attribute Einführung in Cocoa
Framework vs. Klassenbibliothek • Klassenbibliothek (z.B. Java): ausformulierte Attribute Werkzeuge zu verschiedenen Bereichen, keine Spezialisierung Einführung in Cocoa
Framework vs. Klassenbibliothek • Klassenbibliothek (z.B. Java): ausformulierte Attribute Werkzeuge zu verschiedenen Bereichen, keine Spezialisierung • Framework: Bibliothek + Grundgerüst für grafische Anwendung Einführung in Cocoa
Framework vs. Klassenbibliothek • Klassenbibliothek (z.B. Java): ausformulierte Attribute Werkzeuge zu verschiedenen Bereichen, keine Spezialisierung • Framework: Bibliothek + Grundgerüst für grafische Anwendung (Dummy) Auswahl je nach Kontext, dabei implizite Bedarfsformulierung notwendig Einführung in Cocoa
Framework • Dummy: enthält „tote“ GUI Einführung in Cocoa
Framework • Dummy: enthält „tote“ GUI • Klassenbibliothek konkret implementiert Einführung in Cocoa
Framework • Dummy: enthält „tote“ GUI • Klassenbibliothek konkret implementiert • Benutzer programmiert nicht völlig neu, sondern überschreibt gesetzte Standardwerte /-routinen Einführung in Cocoa
Framework • Dummy: enthält „tote“ GUI • Klassenbibliothek konkret implementiert • Benutzer programmiert nicht völlig neu, sondern überschreibt gesetzte Standardwerte /-routinen • Framework setzt Benutzer [sinnvolle] Grenzen Einführung in Cocoa
Framework • Dummy: enthält „tote“ GUI • Klassenbibliothek konkret implementiert • Benutzer programmiert nicht völlig neu, sondern überschreibt gesetzte Standardwerte /-routinen • Framework setzt Benutzer [sinnvolle] Grenzen Was das Framework nicht vorsieht, kann der Benutzer nicht implementieren Einführung in Cocoa
Cocoa: Historie • Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) Einführung in Cocoa
Cocoa: Historie • Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) • Später: NeXTStep Grundlage für MacOS X Einführung in Cocoa
Cocoa: Historie • Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) • Später: NeXTStep Grundlage für MacOS X • [daher Präfix NS bei Datentypen / Klassen] Einführung in Cocoa
Cocoa: Historie • Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) • Später: NeXTStep Grundlage für MacOS X • [daher Präfix NS bei Datentypen / Klassen] • Konsequente Objektorientierung Einführung in Cocoa
Cocoa: Allgemein • MVC Einführung in Cocoa
Cocoa: Allgemein • MVC = Modell-View-Controller Einführung in Cocoa
Cocoa: Allgemein • MVC = Modell-View-Controller • Modell: konkrete Nutzdaten innerhalb der Anwendung Einführung in Cocoa
Cocoa: Allgemein • MVC = Modell-View-Controller • Modell: konkrete Nutzdaten innerhalb der Anwendung • View: grafische Elemente zur Visualisierung des Modell Einführung in Cocoa
Cocoa: Allgemein • MVC = Modell-View-Controller • Modell: konkrete Nutzdaten innerhalb der Anwendung • View: grafische Elemente zur Visualisierung des Modell • Controller: ermöglicht Kommunikation zw. Modell und View eigentliche Anwendungs-Logik Einführung in Cocoa
Architektur • Zentrales Objekt NSApplication Einführung in Cocoa
Architektur • Zentrales Objekt NSApplication Mutterschiff ? Einführung in Cocoa
Architektur • Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung ! Einführung in Cocoa
Architektur • Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung ! • leitet Nachrichten / Ereignisse an zuständige Klassen weiter Einführung in Cocoa
Architektur • Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung ! • leitet Nachrichten / Ereignisse an zuständige Klassen weiter • Prinzip: Delegates, Klassen stehen parallel zu NSApplication, keine Ableitung Einführung in Cocoa
Protokolle • Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen Einführung in Cocoa
Protokolle • Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen • Formelles Protokoll: Klasse muss Methode x implementieren (obligatorisch) Einführung in Cocoa
Protokolle • Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen • Formelles Protokoll: Klasse muss Methode x implementieren (obligatorisch) • Informelles Protokoll: Klasse kann Methode x implementieren (optional), häufiger benutzt Einführung in Cocoa
Protokolle II • Informelles Protokoll wird über eine Kategorie umgesetzt Einführung in Cocoa
Protokolle II • Informelles Protokoll wird über eine Kategorie umgesetzt • Vorhandene Klasse wird nicht abgeleitet, sondern erweitert (vgl. Delegates) Einführung in Cocoa
Observer • Observer: schwächere Form der Delegates Einführung in Cocoa
Observer • Observer: schwächere Form der Delegates • Eher informativer Charakter Einführung in Cocoa
Observer • Observer: schwächere Form der Delegates • Eher informativer Charakter • Objekt_1 „bespitzelt“ andere Objekt_2 Einführung in Cocoa
Observer • Observer: schwächere Form der Delegates • Eher informativer Charakter • Objekt_1 „bespitzelt“ andere Objekt_2 Objekt_2 weiß nichts von Beobachtung Einführung in Cocoa
Observer • Observer: schwächere Form der Delegates • Eher informativer Charakter • Objekt_1 „bespitzelt“ andere Objekt_2 Objekt_2 weiß nichts von Beobachtung • Objekt_1 muss sich beim NotificationCenter für die Beobachtung von Objekt_2 registrieren Einführung in Cocoa
Observer • Observer: schwächere Form der Delegates • Eher informativer Charakter • Objekt_1 „bespitzelt“ andere Objekt_2 Objekt_2 weiß nichts von Beobachtung • Objekt_1 muss sich beim NotificationCenter für die Beobachtung von Objekt_2 registrieren Einführung in Cocoa
Target-Action • Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller Einführung in Cocoa
Target-Action • Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller • Einziges Argument: Referenz auf Sender der Nachricht Einführung in Cocoa
Target-Action • Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller • Einziges Argument: Referenz auf Sender der Nachricht Einführung in Cocoa
Programmieren ???? Einführung in Cocoa
Programmieren !!! Objective-C !!! Einführung in Cocoa
Literatur • K. Surendorf, M. Hardt: Einstieg in Objective-C 2.0 und COCOA • Artikel „Framework“, http://en.wikipedia.org/wiki/Software_framework Einführung in Cocoa