einführung in cocoa re-usable content in 3d und simulationssystemen prof. dr. manfred thaller, ss...

Post on 05-Apr-2015

108 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Einführung in Cocoa

Re-usable Content in 3D und SimulationssystemenProf. Dr. Manfred Thaller, SS 2012

Do, 14-15.30 Uhr, Archäologie-PoolReferent: Nelson Marambio

Framework vs. Klassenbibliothek

• Klassenbibliothek (z.B. Java): ausformulierte Attribute

Einführung in Cocoa 2

Framework vs. Klassenbibliothek

• Klassenbibliothek (z.B. Java): ausformulierte Attribute

Werkzeuge zu verschiedenen Bereichen, keine Spezialisierung

Einführung in Cocoa 3

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 4

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 5

Framework

• Dummy: enthält „tote“ GUI

Einführung in Cocoa 6

Framework

• Dummy: enthält „tote“ GUI• Klassenbibliothek konkret implementiert

Einführung in Cocoa 7

Framework

• Dummy: enthält „tote“ GUI• Klassenbibliothek konkret implementiert• Benutzer programmiert nicht völlig neu,

sondern überschreibt gesetzte Standardwerte /-routinen

Einführung in Cocoa 8

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 9

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 10

Cocoa: Historie

• Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs)

Einführung in Cocoa 11

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 12

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 13

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 14

Cocoa: Allgemein

• MVC

Einführung in Cocoa 15

Cocoa: Allgemein

• MVC = Modell-View-Controller

Einführung in Cocoa 16

Cocoa: Allgemein

• MVC = Modell-View-Controller• Modell: konkrete Nutzdaten innerhalb der

Anwendung

Einführung in Cocoa 17

Cocoa: Allgemein

• MVC = Modell-View-Controller• Modell: konkrete Nutzdaten innerhalb der

Anwendung• View: grafische Elemente zur Visualisierung

des Modell

Einführung in Cocoa 18

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 19

Architektur

• Zentrales Objekt NSApplication

Einführung in Cocoa 20

Architektur

• Zentrales Objekt NSApplication Mutterschiff ?

Einführung in Cocoa 21

Architektur

• Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung !

Einführung in Cocoa 22

Architektur

• Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung !

• leitet Nachrichten / Ereignisse an zuständige Klassen weiter

Einführung in Cocoa 23

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 24

Protokolle

• Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen

Einführung in Cocoa 25

Protokolle

• Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen

• Formelles Protokoll: Klasse muss Methode x implementieren (obligatorisch)

Einführung in Cocoa 26

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 27

Protokolle II

• Informelles Protokoll wird über eine Kategorie umgesetzt

Einführung in Cocoa 28

Protokolle II

• Informelles Protokoll wird über eine Kategorie umgesetzt

• Vorhandene Klasse wird nicht abgeleitet, sondern erweitert (vgl. Delegates)

Einführung in Cocoa 29

Observer

• Observer: schwächere Form der Delegates

Einführung in Cocoa 30

Observer

• Observer: schwächere Form der Delegates• Eher informativer Charakter

Einführung in Cocoa 31

Observer

• Observer: schwächere Form der Delegates• Eher informativer Charakter• Objekt_1 „bespitzelt“ andere Objekt_2

Einführung in Cocoa 32

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 33

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 34

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 35

Target-Action

• Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller

Einführung in Cocoa 36

Target-Action

• Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller

• Einziges Argument: Referenz auf Sender der Nachricht

Einführung in Cocoa 37

Target-Action

• Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller

• Einziges Argument: Referenz auf Sender der Nachricht

Einführung in Cocoa 38

Programmieren

????

Einführung in Cocoa 39

Programmieren

!!! Objective-C !!!

Einführung in Cocoa 40

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 41

top related