Overerving Monofactorieel

Monofactoriële (of één-factoriële) overerving is een soort overerving waarbij elk lid van een klasse slechts één ouderklasse erft. Dit betekent dat elke instantie van een klasse slechts één database heeft, die alle eigenschappen en methoden bevat.

Monofactoriële overerving heeft zijn voor- en nadelen. Aan de ene kant vereenvoudigt dit de code en maakt deze begrijpelijker, omdat elke methode of eigenschap slechts één ouder heeft. Het vermijdt ook naamconflicten omdat alle klasleden unieke namen hebben.

Monofactoriële overerving heeft echter ook enkele beperkingen. Als een klasse bijvoorbeeld van verschillende bovenliggende klassen erft, kan deze alleen die eigenschappen en methoden hebben die in elk van de bovenliggende klassen zijn gedefinieerd. Dit kan ertoe leiden dat de klasse overtollige eigenschappen en methoden bevat, waardoor deze moeilijk te gebruiken is.

Bovendien kan monofactoriële overerving ineffectief zijn als ouderklassen veel eigenschappen en methoden gemeen hebben. In dit geval zal elke instantie van de klasse veel dubbele gegevens bevatten, wat kan leiden tot een toename van de databasegrootte en het programma kan vertragen.

Over het algemeen is monofactoriële overerving een goede keuze voor eenvoudige klassen die niet veel eigenschappen en methoden hebben, en waarvoor het delen van gegevens tussen bovenliggende klassen niet vereist is. Als de klassen echter een complexe structuur hebben en gegevens delen, kan het efficiënter zijn om multifactoriële of compositie-overerving te gebruiken.