CSC/ECE 517 Fall 2007/wiki3 5 ns

From Expertiza_Wiki
Jump to navigation Jump to search

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

The Creator Pattern, does not have many information on the web at all. Most of the websites that we found, use the same approach and the same example for explaining the pattern. Here, we are presenting the websites that we think they do a better job than other resources that we found online.

"Wikipedia" is one of the good places to read, to get a better understanding of what GRASP is, and what patterns and principles are included in GRASP. It also briefly explains the Creator Pattern, and how it decides that which class should create instances of another class. It provides no examples that illustrates this principle so it is not the best site for Creator Pattern online.

"David Hayden"'s blog on Creator Pattern is again, very brief and straightforward in describing the pattern, he also provides one simple example about adding a new DataRow to a DataTable class.

"GRASP Class Notes"

"Craig Larmann"'s book, Applying UML and Pattern: An Object-Oriented Analysis and Design and the Unified Process, is an excellent book that has a thorough explanation on Creator Pattern and other GRASPs. Some of its sections are available online through google-books. This book explains the Creator Pattern and presents an example of a system with Sale, SalesLineItem and ProductSpecification objects and it discusses how it uses Creator pattern to decide which class is responsible for creating new instances of SalesLineItem. Surprisingly, many of the sources that found online (most of them are lecture notes on object oriented design from different universities), use the example provided in this book for explaining creator pattern, so in our opinion, this is one of the best sources that one can read to learn and understand more about the Creator pattern.

http://www.cse.ucsd.edu/classes/fa06/cse111/lectures/Lecture%206%20%20Design%20Evaluation%20and%20Intro%20to%20OO%20Patterns.ppt


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

http://www.perisic.com/oosd/design/GRASP.ppt

http://www.christmann.ws/ucis342/class7/class7.html