Download presentation
Presentation is loading. Please wait.
Published byAnastasia Cook Modified over 9 years ago
1
Chapter 17 Designing with Responsibilities
2
Fig. 17.1
3
OOD Requirements Domain model Then: –Define classes –Add methods to classes –Define messaging Simple! RIGHT? - NOT
4
RDD Responsibility - contract or obligation of a class Doing- –Doing something itself –Initiate an action in another object –Control or coordinate Knowing- –Private data –Related objects –Things it can calculate
5
Fig. 17.2
6
GRASP 9 patterns, first 5 in this chapter: –Creator –Information expert –Low coupling –Controller –High cohesion
7
Creator Problem: Who creates A? Solution: Assign creation to B –IF: B contains (compositely aggregates) A B records A B closely uses A B has initializing data for A
9
Fig. 17.4 apply Creator
10
Fig. 17.5 Apply Creator
11
Information Expert Problem: Assign a responsibility to an object? Solution: Choose the class that has the information to fulfill the responsibility
12
Fig. 17.6
13
Low Coupling Problem: Reduce impact of change Solution: Keep coupling low!
14
Fig. 17.7
15
Controller Problem: What object beyond UI controls a system operation Solution: Assign responibility to object –If Overall “system”, “root object”, device that the software runs in, major subsystem Represents a use case scenario within which the operation occurs
16
Fig. 17.8 SSD
17
Fig. 17.9
18
Fig. 17.10
19
Next Steps Applied controller pattern Now what goes beyond the :MonoployGame class?
20
High cohesion Problem: Keep objects focused, understandable, manageable (side effect support low coupling) Solution: assign responsibilities to improve cohesion
21
Fig. 17.11
22
GRASP General Responsibility Assignment Software Patterns We just did 5 of 9 There rest are in Chapter 25 –Polymorphism, Pure Fabrication, Indirection, Protected Variations
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.