Design Patterns & Refactoring
Bridge Oliver Haase
HTWG Konstanz
‘A computer once beat me at chess, but it was no match to me at kick-boxing’ — Emo Philips
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 1 / 11
Design Patterns & Refactoring Bridge Oliver Haase HTWG - - PowerPoint PPT Presentation
Design Patterns & Refactoring Bridge Oliver Haase HTWG Konstanz A computer once beat me at chess, but it was no match to me at kick-boxing Emo Philips Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 1 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 1 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 2 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 3 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 4 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 5 / 11
CommImpl sendImpl() receiveImpl() Communication send(op, params): void receive(): Result RemoteOpComm invoke(op, params): Result impl.sendImpl(op,params); TcpCommunication sendImpl(op, params): void receiveImpl(): Result UdpCommunication sendImpl(op, params): void receiveImpl(): Result impl return impl.receiveImpl(); send(op, params); return receive(); Bridge Client Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 6 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 7 / 11
Bridge Implementor
Abstraction
Specialization impl.operationImpl(); ConcreteImplementorA
ConcreteImplementorB
impl Client Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 8 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 9 / 11
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 10 / 11
1 Specialization object, based on the params passed in at construction
2 Others decide → creational patterns!
Oliver Haase (HTWG Konstanz) Design Patterns & Refactoring 11 / 11