CSC/ECE 517 Fall 2012/ch2b 2w51 aa: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
=Visitor Pattern= | =Visitor Pattern= | ||
==Introduction | ==Introduction== | ||
==Motivation | ==Motivation== | ||
(1) http://en.wikipedia.org/wiki/Visitor_pattern - Introduction and Motivation for design and use of visitor patterns is nicely depicted in Wikipedia for Visitor pattern. | (1) http://en.wikipedia.org/wiki/Visitor_pattern - Introduction and Motivation for design and use of visitor patterns is nicely depicted in Wikipedia for Visitor pattern. | ||
Line 11: | Line 11: | ||
(4) http://www.dofactory.com/Patterns/PatternVisitor.aspx - Simple introductory page which describes and talks about the pattern in short. | (4) http://www.dofactory.com/Patterns/PatternVisitor.aspx - Simple introductory page which describes and talks about the pattern in short. | ||
==Visitor Pattern in Java== | |||
Java | |||
(1) http://java.dzone.com/articles/design-patterns-visitor | (1) http://java.dzone.com/articles/design-patterns-visitor | ||
(2) http://www.javaworld.com/javatips/jw-javatip98.html | (2) http://www.javaworld.com/javatips/jw-javatip98.html | ||
Line 18: | Line 17: | ||
(4) http://en.wikipedia.org/wiki/Visitor_pattern#Java_example | (4) http://en.wikipedia.org/wiki/Visitor_pattern#Java_example | ||
C++ | ==Visitor Pattern in C++== | ||
Following are the links which provides examples based on C++: | Following are the links which provides examples based on C++: | ||
(1) http://sourcemaking.com/design_patterns/visitor/cpp/1 | (1) http://sourcemaking.com/design_patterns/visitor/cpp/1 | ||
Line 29: | Line 28: | ||
Python | ==Visitor Pattern in Python== | ||
Following are two links which provide good examples of implementation of visitor patterns in python: | Following are two links which provide good examples of implementation of visitor patterns in python: | ||
(1) https://chris-lamb.co.uk/2006/12/08/visitor-pattern-in-python/ | (1) https://chris-lamb.co.uk/2006/12/08/visitor-pattern-in-python/ | ||
Line 40: | Line 39: | ||
Advantages | ==Advantages== | ||
(1) This links helps to understand the advantage of a design pattern like visitor, which are the features it combines and how it makes it easy for programmer to implement those ideas. http://compilers.cs.ucla.edu/jtb/jtb-2003/whyvisitors/whyvisitors.html | (1) This links helps to understand the advantage of a design pattern like visitor, which are the features it combines and how it makes it easy for programmer to implement those ideas. http://compilers.cs.ucla.edu/jtb/jtb-2003/whyvisitors/whyvisitors.html | ||
(2) The applicability of visitor pattern can be found here: http://www.swe.uni-linz.ac.at/research/deco/designPatterns/visitor/visitor.abstract.html#Applicability | (2) The applicability of visitor pattern can be found here: http://www.swe.uni-linz.ac.at/research/deco/designPatterns/visitor/visitor.abstract.html#Applicability | ||
Disadvantages | ==Disadvantages== | ||
(1) This page has a subsection in the visitor pattern section which discusses issues related to visitor pattern. http://www.developerfusion.com/article/84939/iterators-composites-and-visitors/ | (1) This page has a subsection in the visitor pattern section which discusses issues related to visitor pattern. http://www.developerfusion.com/article/84939/iterators-composites-and-visitors/ | ||
(2) http://www.oodesign.com/visitor-pattern.html | (2) http://www.oodesign.com/visitor-pattern.html |
Revision as of 03:43, 19 November 2012
Visitor Pattern
Introduction
Motivation
(1) http://en.wikipedia.org/wiki/Visitor_pattern - Introduction and Motivation for design and use of visitor patterns is nicely depicted in Wikipedia for Visitor pattern.
(2) http://www.oodesign.com/visitor-pattern.html - One of the top visited sites for design pattern basics to implementation, oodesign.com has good introduction, implementation details.
(3) 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.
(4) http://www.dofactory.com/Patterns/PatternVisitor.aspx - Simple introductory page which describes and talks about the pattern in short.
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++: (1) http://sourcemaking.com/design_patterns/visitor/cpp/1
(2) http://sourcemaking.com/design_patterns/visitor/cpp/3
(3) http://sourcemaking.com/design_patterns/visitor/cpp/2
(4) This page explains visitor pattern in detail from the basics upto implementation using C++ as language. It has implementation details and also have discussed issues that arise. http://www.swe.uni-linz.ac.at/research/deco/designPatterns/visitor/visitor.defaultroles.c++.html
Visitor Pattern in Python
Following are two links which provide good examples of implementation of visitor patterns in python: (1) https://chris-lamb.co.uk/2006/12/08/visitor-pattern-in-python/ (2) http://curtis.schlak.com/2012/01/04/python-visitor-pattern-helper.html
Ruby: (1) https://gist.github.com/989193 (2) http://www.scribd.com/doc/2217773/Design-Patterns-in-Ruby
Advantages
(1) This links helps to understand the advantage of a design pattern like visitor, which are the features it combines and how it makes it easy for programmer to implement those ideas. http://compilers.cs.ucla.edu/jtb/jtb-2003/whyvisitors/whyvisitors.html (2) The applicability of visitor pattern can be found here: http://www.swe.uni-linz.ac.at/research/deco/designPatterns/visitor/visitor.abstract.html#Applicability
Disadvantages
(1) This page has a subsection in the visitor pattern section which discusses issues related to visitor pattern. http://www.developerfusion.com/article/84939/iterators-composites-and-visitors/ (2) http://www.oodesign.com/visitor-pattern.html
Video Lecture:
(1) https://www.youtube.com/watch?v=mTJodk3vfdk
(2) https://www.youtube.com/watch?v=UYUopyMcWjw&feature=related