CSC/ECE 517 Fall 2007/wiki3 5 ns
Take the Creator pattern and catalog the information on it available on the Web. Explain how it is different from the Factory pattern. Find good descriptions and good, concise, understandable examples. Tell which you consider the best to present to a class.
GRASP
GRASP stands for General Responsibility Assignment Software Patterns (or Principles), and they are the common object-oriented design patterns or principles that assign responsibility to classes and objects. Some of GRASP includes Information Expert, Creator, Controller, Low Coupling, High Cohesion, Polymorphism, Pure Fabrication, Indirection, Protected Variations.
What is Creator Pattern?
Creator Pattern is one of the GRASP approaches, which is developed to find an answer to the question of "Who creates an object of class A?" in object-oriented systems. Creator pattern suggests that Class B should create an instance of Class A if
- B aggregates instances of A, or;
- B contains instances of A, or;
- B records instances of A, or;
- B closely uses instances of A, or;
- B has the necessary information for creating the new instance of A.
Creator Pattern vs Factory Pattern
Information Available on the Web
http://class.ee.iastate.edu/berleant/home/Courses/SoftwareEngineering/CprE486fall2005/moreGRASP.pdf
http://davidhayden.com/blog/dave/archive/2004/12/06/667.aspx
http://web.cs.wpi.edu/~gpollice/cs4233-a05/CourseNotes/maps/class4/Creator.html http://web.cs.wpi.edu/~gpollice/cs4233-a05/CourseNotes/pdf/CS4233%20Class%204.pdf
http://class.ee.iastate.edu/berleant/home/Courses/SoftwareEngineering/CprE486fall2005/moreGRASP.pdf
http://faculty.kutztown.edu/spiegel/CSc520/PowerPoint/10_GRASP_1.ppt
http://www.augustana.ab.ca/~mohrj/courses/2003.fall/csc220/lecture_notes/responsibilities.html
http://www.soc.napier.ac.uk/module.php3?op=getresource&cloaking=no&resourceid=5938601
http://faculty.inverhills.edu/dlevitt/CS%202000%20(FP)/GRASP%20Patterns.pdf
http://web.njit.edu/~gblank/cis683/Larman%20Chapter%2018.ppt
http://www.academic.marist.edu/~jzbv/SoftwareDevelopment/GRASP.ppt