Skrøbelig basisklasse

En skrøbelig basisklasse  er et grundlæggende problem i objektorienteret programmering .

Beskrivelse

Problemet med en skør baseklasse er, at den mindste ændring i implementeringsdetaljerne for basisklassen kan introducere fejl i afledte klasser. I værste fald resulterer dette i enhver vellykket ændring af basisklassen, der kræver en forudgående undersøgelse af hele arvetræet, og det er ofte umuligt (uden at generere fejl) selv da.

Det skøre basisklasseproblem reducerer værdien af ​​arv i høj grad .

I det generelle tilfælde er problemet ikke løseligt og er en af ​​de væsentlige ulemper ved OOP.

Problemet kan generaliseres til systemer, der ikke er udviklet i OOP-sprog og ikke bruger begrebet "klasse". Enhver genbrug af den færdige kode (uden kopiering) som en del af den nye kode kan medføre et sådant problem.

Moderne OOP-influerede programmeringsparadigmer bruger begreberne "kobling" og "sammenhæng", og kvaliteten af ​​designet bestemmes af styringen af ​​relationer, hvilket især indebærer en svækkelse af båndene. Arv, i betydningen OOP, skaber den stærkest mulige relation, og bør derfor bruges med stor omhu.

Den høje kompleksitet af framework-udvikling sammenlignet med toolkit-udvikling, som beskrevet i Gang of Four Patterns-bogen, skyldes til dels den lette optræden af ​​en "skrøbelig basisklasse" i rammer og vanskeligheden ved at håndtere dette problem.

Mulige metoder til kamp

Erstatning af arv med aggregering . I aggregering erklæres det indlejrede basisklasseobjekt eksplicit som en del af det afledte klasseobjekt, og den afledte klasse kan kun bruge basisklassens offentlige grænseflade. På denne måde kan den afledte klasse ikke afhænge af implementeringsdetaljerne for basisklassen, hvilket løser problemet.

Se også