Bridge pattern for Dummies
-
Upload
taeksoon-jang -
Category
Technology
-
view
840 -
download
2
description
Transcript of Bridge pattern for Dummies
![Page 1: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/1.jpg)
BRIDGE PATTERN“ decoupling an abstraction from its implementation ”
Jang, Taeksoon (NHN NEXT)
Wednesday, March 26, 14
![Page 2: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/2.jpg)
MOTIVATION- Suppose an abstraction should have different implementation
- Simple implementation would just extend the object itself
- Then, inheritance binds an implementation to the abstraction
- When a class changes often, you should change all classes
“ Bridge Pattern helps minimize changes in class ”
Wednesday, March 26, 14
![Page 3: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/3.jpg)
BRIDGE PATTERN DEFINED
- Separate abstraction and implementation
Class itself : AbstractionWhat class can do : Implementation
Wednesday, March 26, 14
![Page 4: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/4.jpg)
PARTICIPANT
Abstraction : defines abstract interface and maintains the implementor referenceRefined Abstraction : extends the interface defined by abstractionImplementor : defines the interface for implementation classesConcrete Implementor : implements the Implementor interface
Wednesday, March 26, 14
![Page 5: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/5.jpg)
EXAMPLE & CODE
[ Requirement 1 ]
“ I need a programthat can draw circles and rectangles. “
Wednesday, March 26, 14
![Page 6: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/6.jpg)
EXAMPLE & CODE[ What You Do ]
Wednesday, March 26, 14
![Page 7: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/7.jpg)
EXAMPLE & CODE
[ Requirement 2 ]
“ I want shapes to be colorful, blue and red! ”
Wednesday, March 26, 14
![Page 8: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/8.jpg)
EXAMPLE & CODE[ What You Do ]
in progress....
Wednesday, March 26, 14
![Page 9: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/9.jpg)
HERE COMESBRIDGE PATTERN !!!
Wednesday, March 26, 14
![Page 10: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/10.jpg)
EXAMPLE & CODE[ What You Do ]
Wednesday, March 26, 14
![Page 11: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/11.jpg)
EXAMPLE & CODE
[ Requirement 3 ]
“ I honestly want Green color and Triangle. “(oh yes....)
Wednesday, March 26, 14
![Page 12: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/12.jpg)
EXAMPLE & CODE[ What You Do ]
Wednesday, March 26, 14
![Page 13: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/13.jpg)
EXAMPLE & CODEAbstraction
Implementation Client
Wednesday, March 26, 14
![Page 14: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/14.jpg)
REAL WORLD EXAMPLE
- GUI FrameworkSeparate Window abstraction from
Window implementationfor Linux, Windows, or Mac OS.
Wednesday, March 26, 14
![Page 15: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/15.jpg)
REAL WORLD EXAMPLEex) Java AWT (Abstract Window Toolkit)
Wednesday, March 26, 14
![Page 16: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/16.jpg)
BENEFIT OF BRIDGE PATTERN
- Avoid binding between abstraction and implementation => Able to select implementation at run time
- Reduction in the number of sub classes
- Abstraction and Implementation can be varied independently
- Cleaner code without ‘if ’ or ‘switch’ statement
Wednesday, March 26, 14
![Page 17: Bridge pattern for Dummies](https://reader033.fdocuments.net/reader033/viewer/2022052906/558d4093d8b42acc4f8b4712/html5/thumbnails/17.jpg)
ADAPTER VS BRIDGE
Adapter- meant to change the interface of an existing object- intended to make unrelated classes work together- My Code + Someone else’s Code
Bridge- intended to decouple abstraction from its implementation- Entirely My Code and My Structure
Wednesday, March 26, 14