Visitor pattern
Study case: employee structure
start with a "flat" data structure
transform it into an in-memory object tree
add the ability to print the structure into HTML
introduce visitor pattern
define traversing order
refactor "printing" using the visitor pattern
Data model
Manager
name, profile picture
role
list of subordinaries
Team lead
name, profile picture
list of team members
Engineer
name, profile picture
technology
Bueno
add external behavior without affecting the underlying data structure
remove auxiliary behavior from the data structures
No bueno
when a new "type" of data structure is added (or removed), all visitors have to be updated
[if needed] visitor has to internally track the state of traversal
exposing richer public interface
Object tree
12 different data types
primitive
text, numeric, date, select
composite
root, struct, array, array item
dynamic
computed
reference
Visitors
populate data structure
from the incoming client request
from the database
finding nodes in a tree
export(JSON)
computing dynamic fields
resolving references
persisting the tree (3 variations)
I'm the last slide
Questions?
Made with Slides.com