CSC/ECE 517 Fall 2010/ch7 7b JB
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:
- Information Expert
- Creator
- Low Coupling
- High Cohesion
- Controller
- Polymorphysm
- Pure Fabrication
- Indirection
- Protected Variations
There are often situations in programming object-oriented designs when data needed by an object is spread out across several other objects. Rather than access each object individually and sequentially to get the details one at a time, the Information Expert pattern can be used to keep the program organized and straightforward. This will help to enable later extension of the program to enable new functionality without adding a lot of complexity.
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 to gather the remaining data
In some circumstances, this method could be used in a tree structure to have a small number of experts who are responsible for specific types of data. Each contacts a subset of the group of objects containing the needed data and may do some simple processing or combination of the data before passing it back to the original caller.