CSC/ECE 517 Fall 2012/ch2b 2w51 aa

From Expertiza_Wiki
Revision as of 06:43, 19 November 2012 by Avranade (talk | contribs)
Jump to navigation Jump to search

Visitor Pattern, Directory of sites

Introduction

In Object Oriented Programming, visitor pattern is a way of decoupling algorithms to be performed by an object. The way to do this is create a visitor class which would help to add new virtual function to the classes without modifying their structures. This is accomplished by creating appropriate specializations of the virtual function in visitor class which will take instance reference as input and implements the algorithm using double dispatch.

Motivation

  • http://sourcemaking.com/design_patterns/visitor This page has good detailed description of visitor pattern and the worth reading part is the discussion section of this page which also talks about how double dispatch is related to visitor.

Visitor Pattern in Java

(1) http://java.dzone.com/articles/design-patterns-visitor (2) http://www.javaworld.com/javatips/jw-javatip98.html (3) http://snehaprashant.blogspot.com/2009/01/visitor-pattern-in-java.html (4) http://en.wikipedia.org/wiki/Visitor_pattern#Java_example

Visitor Pattern in C++

Following are the links which provides examples based on C++:

Visitor Pattern in Python

Following are two links which provide good examples of implementation of visitor patterns in python:

Visitor Pattern in Ruby

(1) https://gist.github.com/989193 (2) http://www.scribd.com/doc/2217773/Design-Patterns-in-Ruby

Advantages

Disadvantages



Video Lecture: (1) https://www.youtube.com/watch?v=mTJodk3vfdk (2) https://www.youtube.com/watch?v=UYUopyMcWjw&feature=related