Het immuunsysteem is het geheel aan verdedigingsmechanismen waarmee organismen indringers kunnen bestrijden. Naast bescherming tegen virussen, bacteriën en parasieten, wordt het immuunsysteem ook ingezet om afvalstoffen of zieke lichaamscellen (zoals kankercellen) op te ruimen. Het immuunsysteem kan onderverdeeld worden in een aspecifiek (aangeboren) en een adaptief (verworven) gedeelte. Het aspecifieke deel is snel werkzaam, maar minder specifiek voor de ziekteverwekker (pathogeen). Daarentegen past het adaptieve deel zich aan aan bepaalde pathogenen. Dat kost tijd, maar resulteert uiteindelijk in een sterkere afweer. Bovendien is het lichaam daarna vaak langdurig beschermd tegen die specifieke ziekteverwekkers.

Microscopische opname van een neutrofiele granulocyt (geel) die een miltvuurbacterie (Bacillus anthracis; oranje) opslokt.

Opgave

Definieer een klasse Organisme waarmee organismen kunnen voorgesteld worden die beschikken over een vereenvoudigd model van een immuunsysteem. Dit immuunsysteem heeft zowel aspecifieke als adaptieve eigenschappen die het organisme beschermen tegen virussen — andere vormen van pathogenen worden omwille van de eenvoud achterwege gelaten. Een bepaald type virus wordt in dit model voorgesteld door een geheel getal (Number). Het aspecifieke deel van het immuunsysteem beschermt het organisme tegen een aantal opgegeven types van virussen. Daarnaast kan het adaptieve gedeelte van het immuunsysteem er ook voor zorgen dat het organisme resistent wordt voor bijkomende virussen. Dat laatste gebeurt wanneer er zich een aantal antilichamen tegen het virus gevormd hebben. Wanneer een bepaald type virus muteert, dan verliest het organisme zijn resistentie (zowel aspecifiek als adaptief) tegen het virus, en moet het indien nodig terug adaptief antilichamen tegen het virus aanmaken.

Zorg ervoor dat bij het aanmaken van een nieuw object van de klasse Organisme, het nieuwe organisme initieel nog geen antilichamen heeft in het adaptieve gedeelte van het immuunsysteem. Aan de constructor kunnen eventueel een aantal virussen doorgegeven worden (gehele getallen(Number) die als afzonderlijke argumenten opgegeven worden) waartegen het aspecifieke deel van het immuunsysteem het organisme beschermt. Voorts moet de klasse Organisme ondersteuning bieden aan de volgende methoden:

Voorbeeld

> const organisme = new Organisme(1, 2, 3, 4, 5)
> organisme.isResistent(1)
true
> organisme.isResistent(88)
false
> organisme.isResistent(99)
false
> organisme.isResistent(2)
true
> organisme.isResistent(99)
false
> organisme.isResistent(99)
true
> organisme.isResistent(99)
true
> organisme.mutatie(1)
> organisme.isResistent(1)
false
> organisme.isResistent(1)
false
> organisme.isResistent(1)
true
> organisme.mutatie(99)
> organisme.isResistent(99)
false
> organisme.isResistent(99)
false
> organisme.isResistent(99)
true