Mijn vraag
Ik ben aan het experimenteren met C# Source Generators. Al zoekende naar een manier om een attribuut met bijbehorende argumenten uit te lezen stuitte ik op https://stackoverflow.com/a/70424282 . Hierin staat een mooie klasse AttributeCollector welke precies verzamelt wat ik nodig heb. Fantastisch!
Maar.... deze klasse maakt gebruik van het visitor pattern. Hij wordt 'aangeroepen' middels: attributeSyntax.Accept(collector); waarna het AttributeSyntax VisitAttribute(AttributeSyntax node) aanroept.
Wat ik mij afvraag; wat is hier het voordeel van het visitor pattern? Is het niet eenvoudiger een niet-visitor AttributeCollector te maken met een .Collect(AttributeSyntax) method? Welke gewoon het resultaat retourneert als een List<AttributeDefinition>.
Wat ik al gevonden of geprobeerd heb
Ik heb al diverse youtube video's bekeken over het Visitor Pattern en ook het hoofdstuk in 'Head first into design patterns' gelezen; maar ik zie het gewoon niet.
Het gaat me ook niet persé om dit specifieke voorbeeld; ik 'zie' het voordeel gewoon nog niet van dit pattern.
Ik ben aan het experimenteren met C# Source Generators. Al zoekende naar een manier om een attribuut met bijbehorende argumenten uit te lezen stuitte ik op https://stackoverflow.com/a/70424282 . Hierin staat een mooie klasse AttributeCollector welke precies verzamelt wat ik nodig heb. Fantastisch!
Maar.... deze klasse maakt gebruik van het visitor pattern. Hij wordt 'aangeroepen' middels: attributeSyntax.Accept(collector); waarna het AttributeSyntax VisitAttribute(AttributeSyntax node) aanroept.
Wat ik mij afvraag; wat is hier het voordeel van het visitor pattern? Is het niet eenvoudiger een niet-visitor AttributeCollector te maken met een .Collect(AttributeSyntax) method? Welke gewoon het resultaat retourneert als een List<AttributeDefinition>.
Wat ik al gevonden of geprobeerd heb
Ik heb al diverse youtube video's bekeken over het Visitor Pattern en ook het hoofdstuk in 'Head first into design patterns' gelezen; maar ik zie het gewoon niet.
Het gaat me ook niet persé om dit specifieke voorbeeld; ik 'zie' het voordeel gewoon nog niet van dit pattern.