Själv ramlar jag i fällan att ärva väl mycket, vet inte om det är relevant till trådskaparens problem men att tänka is-a eller has-a är alltid bra.
Ärvda klasser när det egentligen inte är bra..
Citat:
class Engine
{
private double horsepower;
Engine(double hp) { hp=horsepower; }
void StartEngine();
}
class Vehicle extends Engine // bad design
{
Vehicle(double hp) { super(hp); }
}
Vehicle volvo = new Vehicle(80);
volvo.StartEngine();
|
När man egentligen bör använda composition (has-a)
Citat:
class Engine
{
private double horsepower;
Engine(double hp) { hp=horsepower; }
void StartEngine();
}
class Vehicle
{
private Engine engine;
Vehicle (double hp) { engine=new Engine(hp); }
void Start() { engine.StartEngine(); }
}
|
(Koden är i Java och är snodd från nån kurs på KTH)