Wat is een gedeeltelijke klasse?
Een gedeeltelijke klasse is een functie in sommige objectgeoriënteerde programmeertalen waarmee de implementatie van een klasse kan worden verdeeld over meerdere broncodebestanden. Gedeeltelijke klassen, die ook gedeeltelijke typen worden genoemd, bestaan niet in veel programmeertalen, met name oudere talen zoals C ++ en Java. Elke taal die gedeeltelijke klassen implementeert, zoals C # en Ruby, behandelt de implementatie een beetje anders.
Over het algemeen gebruiken gedeeltelijke klassen het trefwoord "gedeeltelijk" om klassestukken aan te geven, en of het trefwoord een hoofdletter is, hangt af van de gebruikte programmeertaal. Elk deel van de klasse wordt op dezelfde manier geïnitialiseerd met identieke klassenverklaringen, en zonder dit "gedeeltelijke" trefwoord zou het illegaal zijn om meerdere klassen in meerdere bestanden te maken met allemaal dezelfde naam. Het "gedeeltelijke" sleutelwoord vertelt de compiler of tolk, afhankelijk van de taal, om alle klassen samen te voegen in een enkele grote eenheid. Alle afzonderlijke delen van de klasse moeten dezelfde zichtbaarheid hebben, of deze nu openbaar, privé of beschermd is. Als een deel van de klasse als abstract wordt aangeduid, wordt de samengevoegde klasse ook als abstract aangeduid, zelfs als geen van de andere afzonderlijke delen als zodanig werd aangeduid.
De implementatie van een gedeeltelijke klasse over meerdere bestanden heeft enkele belangrijke voordelen, zowel in programmeerstijl als in organisatie. Gedeeltelijke klassen zorgen voor een expliciete scheiding van gerelateerde stukjes code in meer gespecialiseerde groepen. Bovendien stelt een gedeeltelijke klasse meerdere programmeurs in staat om aan specifieke delen van code te werken zonder de andere mogelijk te verstoren en per ongeluk revisies te overschrijven. Zelfs voor individuele programmeurs kunnen gedeeltelijke klassen nuttig zijn omdat ze kunnen worden gebruikt om zeer grote klassen te maken zonder ook een enkel log bestand te maken dat moeilijk te organiseren en door te lezen is.
Gedeeltelijke klasse implementatiepatronen heeft ook enkele belangrijke nadelen. Hoewel ze onder de paraplu van objectgeoriënteerd programmeren vallen, schenden gedeeltelijke klassen in feite de inkapselingprincipes die centraal staan in objectgeoriënteerd programmeren. In objectgeoriënteerd programmeren wordt een klasse verondersteld één enkele eenheid te zijn die zijn eigen unieke toestanden en gedragingen heeft, op zichzelf staat en kan worden gebruikt als een samenhangende eenheid. Gedeeltelijke klassen schenden dit idee omdat elke gedeeltelijke klasse zich gedraagt als een afzonderlijke klasse. Hoewel de stukken waaruit een gedeeltelijke klasse bestaat, tijdens runtime worden samengevoegd tot één grote klasse, zijn de stukken van de gedeeltelijke klasse vaak onafhankelijke entiteiten die op zichzelf kunnen worden gebruikt zonder dat enige vorm van samenvoeging nodig is.