CSC/ECE 517 Fall 2010/ch7 7b JB: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
=Information Expert Pattern= | =Information Expert Pattern= | ||
==Introduction== | |||
Information Expert Pattern is a principle for assigning responsibility in object-oriented design. The fundamental idea is to identify the class with the most information (expertise) and assign responsibility to it. | |||
==GRASP== | |||
In object-oriented design, the overall problems of assigning responsibility are dealt with by GRASP[http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29], or General Responsibility Assignment Software Patterns (or Principles). GRASP has nine principles, of which Information Expert is one. The others are: | |||
#Creator [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#Creator] | |||
#Low Coupling [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#Low_Coupling] | |||
#High Cohesion [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#High_Cohesion] | |||
#Controller [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#Controller] | |||
#Polymorphysm [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#Polymorphism] | |||
#Pure Fabrication [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#Pure_Fabrication] | |||
#Indirection [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#Indirection] | |||
#Protected Variations [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29#Protected_Variations] | |||
==Process== | |||
Using this approach, the programmer would: | |||
# Identify a responsibility | |||
# Determine what information is needed to fulfill it, | |||
# Locate where that information is stored | |||
# Identify which class contains the largest subset of the required data | |||
# Assign responsibility to that class | |||
# Assign the responsible class to recursively apply the Information Expert Pattern for acquiring any data still missing. | |||
==References== | |||
# [http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29 Wikipedia's GRASP article] | |||
# [http://cs.armstrong.edu/hsu/Course/CSCI3321/PracticalSoftwareEngineering/html/ch10s04.html Information Expert Pattern overview with diagrams] | |||
# [http://programmersnotes.info/2009/03/28/creator-and-information-expert-grasp-design-pattern-series/#expert Creator and Information Expert Principles with sample code] |
Revision as of 06:16, 2 December 2010
Information Expert Pattern
Introduction
Information Expert Pattern is a principle for assigning responsibility in object-oriented design. The fundamental idea is to identify the class with the most information (expertise) and assign responsibility to it.
GRASP
In object-oriented design, the overall problems of assigning responsibility are dealt with by GRASP[1], or General Responsibility Assignment Software Patterns (or Principles). GRASP has nine principles, of which Information Expert is one. The others are:
- Creator [2]
- Low Coupling [3]
- High Cohesion [4]
- Controller [5]
- Polymorphysm [6]
- Pure Fabrication [7]
- Indirection [8]
- Protected Variations [9]
Process
Using this approach, the programmer would:
- Identify a responsibility
- Determine what information is needed to fulfill it,
- Locate where that information is stored
- Identify which class contains the largest subset of the required data
- Assign responsibility to that class
- Assign the responsible class to recursively apply the Information Expert Pattern for acquiring any data still missing.