1 / 19

GRASP Pattern

GRASP Pattern. Zhen  Jiang West Chester University zjiang@wcupa.edu . Outline. Introduction Information Expert Creator Low Coupling High Cohesion Controller. Introduction. Design process What’s GRASP pattern What’s responsibility Responsibilities and methods

Download Presentation

GRASP Pattern

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GRASP Pattern Zhen Jiang West Chester University zjiang@wcupa.edu 

  2. Outline • Introduction • Information Expert • Creator • Low Coupling • High Cohesion • Controller

  3. Introduction • Design process • What’s GRASP pattern • What’s responsibility • Responsibilities and methods • Responsibilities and Interaction Diagrams

  4. Design Process • After identifying your requirements and creating a domain model, then add methods to the software classes, and define the messaging between the objects to fulfill the requirements.

  5. What’s GRASP pattern • This approach to understanding and using design principles is based on patterns of assigning responsibilities. • The GRASP patterns are a learning aid to help one understand essential object design, and apply design reasoning in a methodical, rational, explainable way.

  6. What’s responsibility • Doing: • Doing something itself, such as creating an object or doing a calculation • Initiating action in other objects • Controlling and coordinating activities in other objects. • Knowing: • Knowing about private encapsulated data • Knowing about related objects • Knowing about things it can derive or calculate

  7. Responsibilities and methods :Sale makePayment create :Payment makePayment implies Sale object has a responsibility to create a Payment object

  8. Responsibilities and Interaction Diagrams • Interaction diagrams show choices in assigning responsibilities to objects. • GRASP patterns guide choices in where to assign responsibilities. • GRASP patterns are a codification of widely used basic principles.

  9. Information Expert • Assign a responsibility to the information expert – the class that has the information necessary to fulfill the responsibility. • What is a general principle of assigning responsibilities to objects? • Who should be responsible for knowing/doing …? • Domain model (domain expert, domain analysis) to design model (software classes). • Any existing to any representative.

  10. Example: What information is needed to determine the grand total? Sale Product date description price itemID

  11. Sale date Product SalesLineItem description price itemID quantity Who is information expert?

  12. Sale date getTotal Product SalesLineItem description price itemID quantity getSubTotal getPrice

  13. Time sequence?

  14. Creator • Who should be responsible for creating a new instance of some class? • Creational Design Pattern • Assign class B the responsibility to create an instance of class A if one or more of the following is true: • B aggregates A • B contains A • B records instance of A objects • B closely use A objects • B passes initializing data to A

  15. Low Coupling • Coupling is a measure of how strongly one element is connected to, has knowledge of, or relies on other elements. • Payment, register, and sale. • Time sequence? • Classes?

  16. create :Payment makePayment :Register :Sale addPayment makePayment :Sale makePayment :Register :Payment create

  17. High Cohesion • How to keep complexity manageable? • Time sequence of the above example. • More tasks? • Key role, key object, key class, key relations • Modular Design (indirect control)

  18. Yin and Yang • Yin and Yang • The light color area which indicates more sunlight is called Yang (Sun). The dark color area has less sunlight (more moonlight) and is called Yin (Moon). Yang is like man. Yin is like woman. Yang wouldn't grow without Yin. Yin couldn't give birth without Yang. • Interdependent influence • Trade-off

  19. Controller • Assign the responsibility for receiving or handling a system event message to a class representing one of the following choices: • Represents the overall system, device, or subsystem • Represents a use case within which the system event occurs. • Who should be the controller for system events such as enterItem and endSale? • Which class should be responsible for receiving system event message? • Interface layer does not handle system events. • The controller receives the service request from the UI layer and coordinates their fulfillment, ie., Command, Façade, and etc.

More Related