Grundläggande strukturella och beteendebegrepp i OO-design för IOS Apps

Grundläggande strukturella och beteendebegrepp i OO-design för IOS Apps - dummies

Objektorienterad design har både konstruktions- och beteendekoncept som är mycket användbara i iOS-applikationer. Objektorienterad design är ett annat sätt att utforma program, där beteendet är förknippat med objekt. Följande definierar och förklarar den centrala OO-terminologin, samtidigt som man lägger till ytterligare koncept som kompletterar byggnadsblocken i OO.

Objekt

Ett objekt är ett individuellt identifierbart objekt, antingen verkligt eller abstrakt, som innehåller data om sig själv och beskrivningar av dess manipulationer av data. Med andra ord kan ett objekt antingen vara

  • Något som är verkligt och konkret, som föremålen i ett kök

  • Ett rent koncept, som ett matematiskt koncept, som ett integrerat

Identifiera objekt är det första steget i att analysera en domän.

Varje objekt anses vara en förekomst av en klass.

Klass

A klass är en beskrivning av organisationen och åtgärderna som delas av en eller flera liknande objekt.

A typ är ett koncept som liknar klassens, och de används ofta omväxlande. Inom programmeringsspråk har en klass också en teknisk betydelse. Det är en mall av ett objekt, genom vilket nya objekt kan skapas. Konceptet av en typ som skiljer sig från en klass tas emellertid på många programmeringsspråk (men inte mål-C) av en programmeringskonstruktion som heter ett gränssnitt.

Objektorientering har också begreppet metaklass, vars instanser är klasser . Det finns en metaklass i mål-C-kallad klass.

Abstraktion

När du identifierar klasserna av objekt och deras egenskaper anser du inte de klasser eller funktioner som inte var relevanta för aktivitetsdomänen. Till exempel är det osannolikt att du skulle ha tagit in en klass för att representera förmågan hos en teacup att kastas om du designade ett program om att göra te.

Denna typ av modellering där du ignorerar vad som är irrelevant att fokusera på vad som är relevant för en viss domän kallas abstraktion. Abstraktion är uppgiften att identifiera de klasser (och typer) som behövs för att para ner till de aspekter som är relevanta för problemet.

Generalisering

Begreppet generalisering exemplifieras i förhållandet mellan klasserna Vessel och Teacup. Generalisering på ett programmeringsspråk demonstreras genom en mekanism som kallas arv, vilket gör att en klasss data och beteende kan ingå i eller användas som grund för en annan klass.

Flera programmeringsspråk har en rotklass från vilken alla klasser är ärvda. I mål-C-ramen kallas klassen NSObject. NSObject motsvarar klassobjektet i Java.

A underklass är en klass som ärver alla funktionalitet från en annan klass (känd som superklass ). Dessutom kan underklassen överväga specifik funktionalitet genom att tillhandahålla egna genomföranden av vissa metoder. Metoden för superklassen kan fortfarande kallas från den överordnade metoden, om det är så meningsfullt. Du kan också förlänga superklassens funktionalitet genom att tillhandahålla ytterligare metoder, använda ytterligare medlemsvariabler och så vidare.

På samma sätt kan en typ (ett gränssnitt ) också förlängas med en subtyp. Här är ingen funktionalitet överdriven; Det är bara att subtypen har fler metoder som ett objekt måste implementera.

Ett objekt lagrar vanligtvis data, även känt som dess -stat. Detta tillstånd lagras i innehavare av data som kallas attribut.

Objekt (enligt klasserna) har också kapacitet. En metod är ett sätt att få tillgång till den möjligheten - med andra ord att utföra en uppsättning instruktioner som anger eller manipulerar objektets attribut.

Andra objekt orsakar att dessa metoder ska utföras. De gör det via meddelandeöverföring, vilket är processen genom vilken ett objekt skickar data till ett annat objekt eller frågar det andra objektet att åberopa en metod. Meddelande som skickas händer när ett annat objekt kallar metoden för ett objekt. Utförandet av ett program börjar typiskt med anropet av en funktion eller metod som heter main inom en specifik klass.

Abstraktionsprocessen resulterar i skapandet av klasser och typer. Klasser och typer har en ytterligare egenskap: De begränsar deras användning endast genom deras metoder och offentligt tillgängliga attribut. Detta kallas inkapsling , en teknik för att utforma klasser och objekt som begränsar åtkomst till data och beteende genom att definiera en begränsad uppsättning meddelanden som ett objekt i den klassen kan ta emot.

Inkapsling förhindrar tillträde till internalerna i en klass och förhindrar att detaljerna om hur klassen implementeras från att vara känd. Encapsulation enforces information gömmer sig, ett annat nyckelbegrepp i objektorientering.

Abstract klasser tjänar endast som specifikationer som ska återanvändas av andra klasser. Du kan inte skapa objekt från abstrakta klasser. Klasser från vilka du kan skapa objekt kallas konkreta klasser. Naturligtvis är gränssnitt alltid abstrakta.

En ansökan består av en samling av klasser av olika slag. Objekten i dessa klasser interagerar med varandra för att implementera programmets funktioner. De klasser som en klass interagerar med är kända som dess samarbetare .

Polymorfism är olika klassers förmåga att reagera på samma meddelande, med varje klass som implementerar metoden på lämpligt sätt. Följande rad som tagits från MakeDrinkableFood illustrerar detta koncept:

 För (i = 1; i <= numberOfEatingVessels; i ++) HeatingVessel.Häller (([EatingVessel objectAtIndex: i); 

När te görs, är EatingVessel bunden till ett vattenkokareobjekt. När soppa görs är EatingVessel bunden till ett Tureen-objekt.

Det är användbart att skilja dessa begrepp Konceptet abstraktion, inkapsling, metaklass, klass, typ, objekt, arv och gränssnitt är alla strukturella begrepp. Begreppen för en metod, ett meddelande som passerar och polymorfismen är beteendekoncept.