package com.iluwatar; /** * * Visitor pattern defines mechanism to apply operations * (UnitVisitor) on nodes (Unit) in hierarchy. New operations * can be added without altering the node interface. * */ public class App { public static void main( String[] args ) { Commander commander = new Commander( new Sergeant(new Soldier(), new Soldier(), new Soldier()), new Sergeant(new Soldier(), new Soldier(), new Soldier())); commander.accept(new SoldierVisitor()); commander.accept(new SergeantVisitor()); commander.accept(new CommanderVisitor()); } }