Add visitor design pattern sample code and diagram