Eduardo S. Diederichsen
@ilegra.com
Design talk - GRASP Patterns
Problems Resolver
Creator
Information Expert
Low Coupling
Controller
High Cohesion
Design talk - GRASP Patterns
Design talk - GRASP Patterns
Eduardo S. Diederichsen
@ilegra.com

More Related Content

PPTX
Led Lighting for Home
PPTX
GRASP – паттерны Объектно-Ориентированного Проектирования
PDF
SOLID & GRASP
PPTX
How to solve a problem
PPTX
Lightning Talk - Things you need to consider/plan when developing a Mobile App
PPTX
Lightning talk - Django
PPTX
Lightning talk - Test Driven Development (TDD)
PPTX
Lightning talk - Kanban
Led Lighting for Home
GRASP – паттерны Объектно-Ориентированного Проектирования
SOLID & GRASP
How to solve a problem
Lightning Talk - Things you need to consider/plan when developing a Mobile App
Lightning talk - Django
Lightning talk - Test Driven Development (TDD)
Lightning talk - Kanban

Recently uploaded (20)

PDF
Unlock new opportunities with location data.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Getting Started with Data Integration: FME Form 101
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
DOCX
search engine optimization ppt fir known well about this
PDF
STKI Israel Market Study 2025 version august
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Modernising the Digital Integration Hub
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPT
Geologic Time for studying geology for geologist
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
Benefits of Physical activity for teenagers.pptx
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
sustainability-14-14877-v2.pddhzftheheeeee
Unlock new opportunities with location data.pdf
NewMind AI Weekly Chronicles – August ’25 Week III
A contest of sentiment analysis: k-nearest neighbor versus neural network
Getting Started with Data Integration: FME Form 101
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
search engine optimization ppt fir known well about this
STKI Israel Market Study 2025 version august
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Modernising the Digital Integration Hub
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Geologic Time for studying geology for geologist
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A comparative study of natural language inference in Swahili using monolingua...
Taming the Chaos: How to Turn Unstructured Data into Decisions
observCloud-Native Containerability and monitoring.pptx
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Benefits of Physical activity for teenagers.pptx
O2C Customer Invoices to Receipt V15A.pptx
sustainability-14-14877-v2.pddhzftheheeeee
Ad
Ad

Editor's Notes

  • #3: What is it? Craig Larman introduces a set of basic patterns that he calls GRASP: General Responsibility Assignment Software Pattern
  • #4: Cubomágico
  • #5: Creator - Creation of objects is one of the most common activities in an object-oriented system. Which class is responsible for creating objects is a fundamental property of the relationship between objects of particular classes. Simply, "Creator pattern is responsible for creating an object of class".In general, a class B should be responsible for creating instances of class A if one, or preferably more, of the following apply:Instances of B contain or compositely aggregate instances of AInstances of B record instances of AInstances of B closely use instances of AInstances of B have the initializing information for instances of A and pass it on creation.
  • #6: Information Expert(or just Expert) - Information Expert (also Expert or the Expert Principle) is a principle used to determine where to delegate responsibilities. These responsibilities include methods, computed fields, and so on.Using the principle of Information Expert, a general approach to assigning responsibilities is to look at a given responsibility, determine the information needed to fulfill it, and then determine where that information is stored.Information Expert will lead to placing the responsibility on the class with the most information required to fulfill it.
  • #7: Low Coupling is an evaluative pattern, which dictates how to assign responsibilities to support:lower dependency between the classes,change in one class having lower impact on other classes,higher reuse potential.- Poucadependencia entre as classes,cadauma tem a suaresponsabilidade
  • #8: The Controller pattern assigns the responsibility of dealing with system events to a non-UI class that represents the overall system or a use case scenario. A Controller object is a non-user interface object responsible for receiving or handling a system event.A use case controller should be used to deal with all system events of a use case, and may be used for more than one use case (for instance, for use cases Create User and Delete User, one can have a single UserController, instead of two separate use case controllers).It is defined as the first object beyond the UI layer that receives and coordinates ("controls") a system operation. The controller should delegate the work that needs to be done to other objects; it coordinates or controls the activity. It should not do much work itself. The GRASP Controller can be thought of as being a part of the Application/Service layer [2] (assuming that the application has made an explicit distinction between the application/service layer and the domain layer) in an object-oriented system with Common layers in an information system logical architecture
  • #9: High Cohesion is an evaluative pattern that attempts to keep objects appropriately focused, manageable and understandable. High cohesion is generally used in support of Low Coupling. High cohesion means that the responsibilities of a given element are strongly related and highly focused. Breaking programs into classes and subsystems is an example of activities that increase the cohesive properties of a system. Alternatively, low cohesion is a situation in which a given element has too many unrelated responsibilities. Elements with low cohesion often suffer from being hard to comprehend, hard to reuse, hard to maintain and adverse to change.Apenasumatarefa, maiorcapacidade de reaproveitamento,facilidade de manutenção
  • #10: Other :- Indirection PolymorphismProtected Variations- Pure Fabrication
  • #11: Let’s do it