Causes for redesign
design for change
- creating an object by specifying a class explicitly
-- Abstract Factory, Factory Method, Prototype
- dependence on specific operations
-- Chain of Responsibilty, Command
- dependence on hardware & software platforms
-- Abstract Factory, Bridge
- dependence on object implementation or representation
--Abstract Factory, Bridge, Memento, Proxy
- algorithm dependence
-- Iterator, Strategy, Template Method,
Visitor
- extending functionality by subclassing
-- Bridge, Composite, Decorator, Observer
- tight coupling
-- Abstract Factory, Bridge, Chain of Responsibilities,
Command, Facade, Mediator, Observer
- inability to alter classes conveniently
-- Adaptor, Decorator, Visitor
slide: Causes for redesign