De eerste stap bij het ontwerpen van een klasse is meestal om de velden te definiëren. Velden zijn de ruggengraat waarop klassen vertrouwen en daarom is het proces van het ontwerpen en implementeren van velden van cruciaal belang voor het algehele proces van het ontwerpen van klassen. Dit artikel is een stapsgewijze handleiding voor dit proces.
Methode één van de twee:
Velden van een klasse ontwerpen
-
1 Scheid de gegevensvereisten van uw klas in een soort diagram, papier, software of elke vorm die u passend en comfortabel vindt. Voorkennis van UML of ORM zal zeer nuttig zijn in de ontwerpfase.
-
2 Bepaal of elk gegevensitem van de klasse actueel, berekend of imaginair is. Alleen feitelijke gegevensitems worden geïmplementeerd als velden. De volgende informatie helpt u bij het bepalen van het type gegevensitem:
- Feitelijke gegevensitems zijn die items die niet uit andere velden kunnen worden afgeleid en die cruciaal zijn om de klasse te laten functioneren. Een Circle-klasse kan bijvoorbeeld zijn werk niet doen zonder informatie over het centrum en de straal ervan. Deze twee zijn werkelijke gegevensitems.
- Berekende gegevensitems zijn gegevensitems die uit andere velden kunnen worden berekend en hoeven niet afzonderlijk te worden opgeslagen. Het gebied van een object in de Circle-klasse kan bijvoorbeeld worden berekend op basis van de straal van dat specifieke Circle-object en hoeft niet te worden opgeslagen. Een ander minder voor de hand liggend voorbeeld is het aantal items in een array. Dit kan worden berekend door de array te doorlopen door er één toe te voegen aan een teller (hoewel meestal de telling wordt opgeslagen om redenen van prestatieverbetering).
- Denkbeeldige gegevensitems zijn gegevensitems die niet daadwerkelijk in de klasseobjecten zijn opgeslagen. Bijvoorbeeld de inhoud van een bestand in een "Bestand" -object. Eigenlijk wordt de inhoud van het bestand niet opgeslagen in het object, maar eerder in het bestand. Wanneer ze nodig zijn, worden ze uit het bestand gehaald. De meeste denkbeeldige gegevensitems zijn eigenlijk speciale typen berekende gegevensitems. Dit type gegevensitems worden meestal geïmplementeerd als een eigenschap, tenzij er een probleem is met de prestaties of gelijktijdigheid waardoor het noodzakelijk is om een kopie van de gegevens binnen het object zelf te bewaren. Een ander verwarrend voorbeeld is wanneer u een object hebt dat een verwijzing naar een ander object heeft en een van de gegevensitems van het tweede object wordt beschouwd als een gegevensitem in het eerste. In dit geval worden de gegevens opgeslagen in het tweede object en is dus denkbeeldig in de eerste.
-
3 Herken het gegevenstype van de gegevensitems die als velden worden geïmplementeerd. Hoewel deze stap in veel gevallen gemakkelijk is, kan het bij bepaalde gelegenheden verwarrend zijn. Laten we bijvoorbeeld aannemen dat u een klasse "Contact" ontwerpt die de naam van het contact als een veld opslaat. Aanvankelijk, draad lijkt het juiste type te zijn voor het veld naam. Een grondige analyse kan echter aantonen dat we de voor-, voor- en achternaam afzonderlijk moeten opslaan. Dit geeft aanleiding tot het maken van een ander gegevenstype met de naam "PersonName" om de naam op te slaan (of, u kunt in plaats daarvan drie tekenreeksvelden gebruiken en een berekend veld (eigenschap) "Naam" maken).
Methode twee van twee:
Een veld implementeren
-
1 Bepaal de bereikbaarheid van uw veld (een van: openbaar, beschermd, beschermd intern, intern, privé).
-
2 Bepaal de reikwijdte van uw veld (statisch of exemplaarbereik).
-
3 Bepaal de veranderlijkheid van uw veld (een van: const, readonly of geen van beide). De volgende punten zouden u moeten helpen beslissen:
- De meeste velden zijn normaal. Dat wil zeggen, ze zijn noch const noch read-only.
- Als uw veld bedoeld is om een eenvoudige constante waarde te behouden en die waarde een ValueType-kind is dat onmiddellijk kan worden geïnitialiseerd of een tekenreekswaarde, moet u het veld als const verklaren. Constante (const) velden kunnen alleen worden geïnitialiseerd in de declaratie van het veld.
- Als uw veld bedoeld is om een constante te behouden die van een verwijzingstype is (zoals een Button, Student of een andere klasse die geen struct of enum is), geef dit dan aan als alleen lezen. Alleen-lezen velden kunnen worden geïnitialiseerd, hetzij in de verklaring, hetzij binnen een constructeur van de klas en nergens anders.
-
4 Declareer het veld met behulp van de volgende syntaxis: toegankelijkheid [strekking] [veranderlijkheid] data type veldnaam [= beginwaarde];
Facebook
Twitter
Google+