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()); } }