designPattern visitor pattern 234jpg