WHat can be represented by a class?
What are the 3 main design principles to aim for?
Briefly describe CRC Card prototyping
+ low tech strategy for prototyping useful object concepts
+ flexible; allows the concept set to change
How do we write a CRC card? 3 steps
What do we put on the reverse side of a CRC card?
What are 3 ways to split a CRC card?
Why focus on responsibilty for Responsibilty-Driven Design?
want to identfy objects which bear some responsibility for the system
What are 3 methods of Transformation to reorganise communication-paths between subsystems?
What is a design pattern?
reusable element of object oriented design
ready made solution to common design problems
Describe 3 typical uses of design pattern
Describe the Bridge design pattern
reducing a number of specialised variants of a concept by encapsulating one varying dimension inside another
Describe the Mediator design pattern
introduce objects which handle communication between other objects
- removes need to couple objects directly
Describe the Chain of Responsibilty design pattern
give multiple objects the chance to handle a request
pass request along the chain
Describe the Command design pattern
encapsulate a funciton as an object with a single execture method, to add functions to a system incrementally
Describe the State design pattern
allows an object to alter its behaviour when its internal state changes
Describe the Template Method design pattern
generalise control algorithms to common skeleton code with dynamically bound subroutines
WHat problem does the abstract factory design pattern solve?
dependency among components
What are the benefits of having the mediator pattern?
good for uncoupling, simplifying communication paths
What design patterns indicate loose coupling?
Mediator, composite
What patterns indicate generic behaviour?
Command, template method, state, factory method
What patterns indiciate late design fixes?
Observer, Facade, Adapter
What are the benefits of having the command pattern?
indiciates modular system with extensible behaviour
what are the benefits of have the template method pattern?
indicates reusable basis for algorithmic design
What are the benefits of having the chain of responsibilty pattern?
indicates devolved responsibilty (single purpose objects)