Video: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2025
Das objektorientierte Design in iOS ist eine andere Methode zum Entwerfen von Programmen, bei denen das Verhalten mit Objekten verknüpft ist. Zur Veranschaulichung betrachten Sie die Aktionen, die mit der Zubereitung von Tee und Suppe verbunden sind. Aber nicht sofort in Aktion treten, sondern wie ein Detektiv handeln, der einen Tatort betritt. Schritt zurück, überblicken Sie die Domain (die Küche) und versuchen Sie zu verstehen, was darin ist. Mit anderen Worten, denken Sie Objekte zuerst .
-
Sie sehen einen Wasserkocher. Sie betrachten den Kessel eine Weile und sagen dann: "Ich kann Wasser hinzufügen; Ich kann Wasser daraus gießen. "
-
Du siehst eine Teekanne. Wie es zurückblickt, denkst du: "Ich kann auch Wasser dazugeben und Wasser gießen, genau wie ich es mit einem Kessel kann. "
Sowohl der Wasserkocher als auch die Teekanne scheinen in der Lage zu sein, Wasser aufzunehmen und auszuschütten. Sie haben auch Zustand (das Wasser wird gehalten). Daher verallgemeinern Sie, dass jedes dieser Objekte ein Gefäß ist. Sie denken auch an die Eigenschaften dieser Objekte, dh an ihre Attribute - wie Volumen, Farbe und Material.
Du denkst an die anderen Dinge in der Küche, nämlich den Herd, den Wasserhahn, die Tassen und Schüsseln, die verschiedenen Arten von Löffeln und die Nahrungsmittel: Suppe, Tee und Brühe, sogar die Küchenuhr. Sie denken auch über ihre Fähigkeiten nach. Sie versuchen, die Arten von Objekten zu übergeordneten Konzepten zu verallgemeinern, wie zum Beispiel Gefäß.
Anstatt ein Rezept nur als eine Folge von Aktionen zu betrachten, erkennen Sie, dass ein Rezept auch ein Objekt ist. Schließlich können Sie Rezepte erstellen, Rezepte zerreißen und Rezepte teilen. Ein Rezept ist in der Tat etwas Greifbares; Daher ist es ein Objekt, ein Objekt mit Fähigkeiten. Wenn Sie einem Rezept folgen, können Sie sich vorstellen, dass Sie es ausführen.
Sie machen also zu einer Fähigkeit eines Rezepts. Sie nehmen außerdem vor, um die und Verantwortlichkeiten eines Rezeptobjektes zu bereinigen. Hat ein Rezept Attribute? Was ist mit seinem Autor (ein String )? Oder wie viele Personen es bedient (eine ganze Zahl )? Schließlich haben Rezepte eindeutig eine Generalisierungshierarchie, wobei Tee machen und Suppe machen Spezialisierungen eines generischen Rezepts sind. Die folgende Tabelle listet die verschiedenen Arten von Objekten, ihre Fähigkeiten, ihre Attribute und ihre Verallgemeinerungen auf.
Art des Objekts
Fähigkeiten | Attribute | Verallgemeinerungen | Schiff |
---|---|---|---|
Flüssigkeit hinzufügen; Flüssigkeit ausgießen | Volumen, Farbe, Material | Teekanne | |
Die Fähigkeiten eines Gefäßes (also Hinzufügen und Gießen) | Die Attribute eines Gefäßes | Gefäß | Terrine |
Alle Fähigkeiten eines Schiffes | Die Attribute eines Schiffes | Schiff | Kessel |
Alle Fähigkeiten eines Schiffes; Kochen | Die Attribute eines Schiffes | Schiff | Schale |
Alle Fähigkeiten eines Schiffes; Trinkt aus | Die Attribute eines Schiffes | Schiff; Sie können aus | Bowl |
alle Fähigkeiten eines Gefäßes trinken; Essen mit Löffel | Die Attribute eines Schiffes | Schiff; Mit einem Löffel können Sie Flüssigkeiten aufnehmen, die es enthält. | Herd |
Stellen Sie ein Gefäß auf; Anmachen; Abschalten; Setze Ebene | Farbe | Wasserhahn | |
Geöffnet; Schließen | Farbe | Tee | |
Steil | Typ | Lebensmittel | Bouillon |
Steil | Geschmack | Lebensmittel | Uhr |
Warten | Rezept | ||
einrichten; Lauf; Aufräumen | Schwierigkeitsgrad; Schöpfer; Anzahl der servierten Personen | Make Tea | |
Verantwortlichkeiten eines Rezeptes | Attribute eines Rezepts; Anzahl der Tassen | Rezept | Soup |
Verantwortlichkeiten eines Rezeptes | Attribute eines Rezepts; Anzahl der Schalen | Rezept | Ein Eintrag wie |
Alle Fähigkeiten eines Gefäßes für das Cup-Objekt bedeuten, dass ein Cup automatisch die Funktionen "Flüssigkeit hinzufügen" und "Ausgießen" hat, da es sich um ein Schiff handelt…Darüber hinaus hat ein Cup das Getränk von der Fähigkeit. Mit anderen Worten, Sie können mehr mit einer Tasse tun als mit einem einfachen alten Gefäß. Um es in OO-Terminologie zu formulieren, ist ein Schiff eine Verallgemeinerung eines Cups, während ein Cup eine Spezialisierung eines Schiffes ist.
Das objektorientierte MakeTea-Rezept
@interface TeaRecipe: Rezept // Make Tea ist eine Art Rezept @implementation TeaRecipe + Setup; {…} // Richtet das Rezept ein + Run: (int) NumberOfCups; {// Dies ist eine Instanzmethode NSArray * TeaCups; // Deklariere ein Array von Tassen [Wasserhahn offen] [Wasserkocher AddLiquid: (NumberOfCups * CUPVOLUME)]; [Herd PutVesselOn: Wasserkocher]; [Herd TurnOn]; Für (i = 1; i <= numberOfCups; i ++) {[TeaPot hinzufügen: Tee Menge: @ "1 Löffel"];} While (! [Kettle IsBoiling]); // Schleife weiter, bis das Wasser kocht [Kettle PourWaterVon: Teekanne]; [Uhr warten: @ "5 Minuten"]; Für (i = 1; i <= numberOfCups; i ++) [Wasserkocher-Pour: [TeaCups objectAtIndex: i]]; NSLog ("Enjoy Tea");} // MakeTea + Cleanup beenden; {…} // bereinigt nach dem Rezept -d
Mit diesem Programm machen Sie zwei Tassen Tee:
