Bezoeker

In object-georiënteerd programmeren en software engineering, hoofd van de bezoeker gedragsproblemen ontwerp is een manier om een ​​algoritme van een datastructuur te scheiden.

Principe

Dit ontwerp-model kan een externe klasse te worden geïnformeerd over de exacte aard van de gevallen van een set van klassen. Dit helpt stellen een behandeling aangepast aan het publiek details van objecten betrokken. Bijvoorbeeld een bezoeker is ideaal voor het maken van een rapport.

Deporteren operaties die in de ene klasse naar de andere kan slecht lijken in de zin van OOP, omdat de toevoeging of wijziging van een klasse niet leidt tot aanpassing van bestaande bezoekers, dit model is handig als een set klassen gesloten en dat het gewenst is het uitvoeren van een nieuwe behandeling van deze klassen.

In de praktijk wordt de bezoeker ontwerp patroon als volgt uitgevoerd: elke klasse kan zijn "bezocht" moet zorgen voor een openbare methode "te aanvaarden" met als argument een object type "bezoekers". De "accepteren" methode oproep van het type object "bezoekers" methode met het argument "bezoek" te bezoeken. Op deze wijze kan een bezoeker de referentie-object van de bezochte object kennen en bel zijn publieke methoden om de nodige gegevens te verkrijgen voor de uit te voeren bewerking.

In de praktijk bezoeker verschaft hetzelfde effect als het toevoegen van een nieuwe virtuele methode tot een klasse set die niet toestaan.

Voorbeelden

Neem een ​​ObjetPere klasse, die Object1, Object2 Objet3 erven en ze het accepteren methode bezitten.

C ++

Bezoeker maakt de klasse, die Visiteur1 en Visiteur2 erven. In elk van deze objecten van deze zijn een methode visiterObjet1, visiterObjet2 en visiterObjet3.

In Java

Geen invoer nodig zijn, gewoon een bezoeker-interface, en een vader voor het object te accepteren: