ConcreteVisitor

E679881

ConcreteVisitor is a specific implementation of the Visitor pattern that defines the actual operations to be performed on elements of an object structure.

All labels observed (2)

Label Occurrences
ConcreteVisitor canonical 3
ConcreteVisitor class 1

How this entity was disambiguated

Statements (48)

Predicate Object
instanceOf Visitor pattern participant ⓘ
design pattern component ⓘ
belongsToPattern Visitor pattern ⓘ
canBe stateful ⓘ
stateless ⓘ
canBeExtendedBy subclasses adding more specialized behavior ⓘ
collaboratesWith ConcreteElement ⓘ
Element ⓘ
ObjectStructure ⓘ
commonIn UML examples of Visitor pattern ⓘ
definedBy Gamma et al. (Gang of Four) Visitor pattern description ⓘ
defines concrete operations for each element type ⓘ
dependsOn stable element hierarchy ⓘ
documentedIn Design Patterns: Elements of Reusable Object-Oriented Software ⓘ
enables adding new operations without modifying element classes ⓘ
exampleLanguage C# ⓘ
C++ ⓘ
Java ⓘ
Python ⓘ
hasMethod visit operations for each concrete element subtype ⓘ
visitConcreteElementA ⓘ
visitConcreteElementB ⓘ
implements Visitor interface ⓘ
visit operations for each ConcreteElement ⓘ
invokedBy Element.accept method ⓘ
mayContain accumulated results of visiting elements ⓘ
context needed for visit operations ⓘ
oftenUsedFor operations that depend on concrete element types ⓘ
traversal-related computations ⓘ
type-specific processing of object structures ⓘ
operatesOn elements of an object structure ⓘ
patternCategory behavioral pattern ⓘ
primaryGoal localize operations that apply across a set of element classes ⓘ
relatedConcept Element.accept(Visitor v) ⓘ
double dispatch via visit and accept methods ⓘ
requires a Visitor interface or abstract class ⓘ
concrete element classes exposing accept methods ⓘ
responsibility encapsulate operations that can be applied to element objects ⓘ
separate algorithms from the object structure ⓘ
roleInPattern Visitor ⓘ
secondaryGoal improve maintainability when adding new operations ⓘ
supports double dispatch ⓘ
tradeoff makes adding new element classes harder ⓘ
typicallyDefinedIn class diagrams of Visitor pattern ⓘ
typicalNamingConvention ConcreteVisitorX or specific domain-related names ⓘ
usedIn behavioral design patterns ⓘ
object-oriented design ⓘ
variesWith algorithms applied to elements ⓘ

How these facts were elicited

Referenced by (4)

Full triples — surface form annotated when it differs from this entity's canonical label.

Visitor → typicalParticipants → ConcreteVisitor ⓘ
Visitor design pattern → typicalStructureElement → ConcreteVisitor class ⓘ
linked to: ConcreteVisitor
ConcreteElement → collaboratesWith → ConcreteVisitor ⓘ
ConcreteElement → relatedConcept → ConcreteVisitor ⓘ