head first design patterns

www.it-ebooks.info Chapter 1. Welcome to Design Patterns Table of Contents Chapter 1. Welcome to Design Patterns...

1 downloads 179 Views 40MB Size
www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Table of Contents Chapter 1. Welcome to Design Patterns....................................................... 1 Section 1.1. It started with a simple SimUDuck app....................................................................................................................... 2 Section 1.2. But now we need the ducks to FLY............................................................................................................................. 3 Section 1.3. But something went horribly wrong........................................................................................................................... 4 Section 1.4. Joe thinks about inheritance....................................................................................................................................... 5 Section 1.5. Sharpen your pencil..................................................................................................................................................... 5 Section 1.6. How about an interface?............................................................................................................................................. 6 Section 1.7. What would you do if you were Joe?........................................................................................................................... 7 Section 1.8. The one constant in software development................................................................................................................ 8 Section 1.9. Sharpen your pencil.................................................................................................................................................... 8 Section 1.10. Zeroing in on the problem......................................................................................................................................... 9 Section 1.11. Separating what changes from what stays the same............................................................................................... 10 Section 1.12. Designing the Duck Behaviors.................................................................................................................................. 11 Section 1.13. Implementing the Duck Behaviors.......................................................................................................................... 13 Section 1.14. There are no Dumb Questions................................................................................................................................. 14 Section 1.15. Sharpen your pencil.................................................................................................................................................. 14 Section 1.16. Integrating the Duck Behavior................................................................................................................................. 15 Section 1.17. More Integration...................................................................................................................................................... 16 Section 1.18. Testing the Duck code.............................................................................................................................................. 18 Section 1.19. Setting behavior dynamically.................................................................................................................................. 20 Section 1.20. The Big Picture on encapsulated behaviors............................................................................................................ 22 Section 1.21. HAS-A can be better than IS-A................................................................................................................................ 23 Section 1.22. Speaking of Design Patterns................................................................................................................................... 24 Section 1.23. Design Puzzle........................................................................................................................................................... 25 Section 1.24. Overheard at the local diner.................................................................................................................................... 26 Section 1.25. Overheard in the next cubicle.................................................................................................................................. 27 Section 1.26. The power of a shared pattern vocabulary............................................................................................................. 28 Section 1.27. How do I use Design Patterns?............................................................................................................................... 29 Section 1.28. There are no Dumb Questions................................................................................................................................ 29 Section 1.29. Skeptical Developer-Friendly Patterns Guru......................................................................................................... 30 Section 1.30. Tools for your Design Toolbox................................................................................................................................ 32 Section 1.31. Design Puzzle Solution............................................................................................................................................ 34 Section 1.32. Solutions.................................................................................................................................................................. 35

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 1

Intro to Design Patterns

:HOFRPHWR 5 4 4 'HVLJQ3DWWHUQV 1RZWKDWZH·UHOLYLQJ LQ2EMHFWYLOOHZH·YHMXVWJRW WRJHWLQWR'HVLJQ3DWWHUQV HYHU\RQHLVGRLQJWKHP6RRQ ZH·OOEHWKHKLWRI-LPDQG %HWW\·V:HGQHVGD\QLJKW SDWWHUQVJURXS

6RPHRQHKDVDOUHDG\VROYHG\RXUSUREOHPV,QWKLVFKDSWHU\RX¶OOOHDUQ ZK\ DQGKRZ \RXFDQH[SORLWWKHZLVGRPDQGOHVVRQVOHDUQHGE\RWKHUGHYHORSHUVZKR¶YH EHHQGRZQWKHVDPHGHVLJQSUREOHPURDGDQGVXUYLYHGWKHWULS%HIRUHZH¶UHGRQHZH¶OO ORRNDWWKHXVHDQGEHQH¿WVRIGHVLJQSDWWHUQVORRNDWVRPHNH\22GHVLJQSULQFLSOHVDQG ZDONWKURXJKDQH[DPSOHRIKRZRQHSDWWHUQZRUNV7KHEHVWZD\WRXVHSDWWHUQVLVWRORDG \RXUEUDLQZLWKWKHPDQGWKHQUHFRJQL]HSODFHVLQ\RXUGHVLJQVDQGH[LVWLQJDSSOLFDWLRQV ZKHUH\RXFDQDSSO\WKHP,QVWHDGRIFRGHUHXVHZLWKSDWWHUQV\RXJHWH[SHULHQFHUHXVH

WKLVLVDQHZFKDSWHU



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 2

6LP8'XFN

1\[\IZ\ML_Q\PI[QUXTM;QU=,]KSIXX 2WM_WZS[NWZIKWUXIVa\PI\UISM[IPQOPTa[]KKM[[N]TL]KSXWVL [QU]TI\QWVOIUM;QU=,]KS
'XFN

$OOGXFNVTXDFNDQGVZLPWKH VXSHUFODVVWDNHVFDUHRIWKH LPSOHPHQWDWLRQFRGH

TXDFN VZLP GLVSOD\ 27+(5GXFNOLNHPHWKRGV

\SH VXEW RU N F X G (DFK SRQVLEOHI WVRZQ LVUHV PHQWLQJL YLRU LPSOH D\ EHKD NVRQ GLVSO RZLWORR IRUK FUHHQ WKHV

0DOODUG'XFN

5HGKHDG'XFN

GLVSOD\ ^

GLVSOD\ ^

ORRNVOLNHDPDOODUG`

ORRNVOLNHDUHGKHDG`

LV 7KHGLVSOD\ PHWKRG  XFN OG DO QFH DEVWUDFWVL W UHQ IH GLI RN OR SHV W\ VXE

IGXFNV KHUW\SHVR /RWVRIRW PWKH'XFNFODVV LQKHULWIUR

1V\PMTI[\aMIZ\PMKWUXIVaPI[JMMV]VLMZQVKZMI[QVOXZM[[]ZM NZWUKWUXM\Q\WZ[)N\MZI_MMSTWVOWNN[Q\MJZIQV[\WZUQVO [M[[QWVW^MZOWTN\PMKWUXIVaM`MK]\Q^M[\PQVSQ\¼[\QUMNWZIJQO QVVW^I\QWV


&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 3

LQWURWR'HVLJQ3DWWHUQV

*]\VW__MVMML\PML]KS[\W.4A
,MXVWQHHGWRDGGDÁ\  PHWKRGLQWKH'XFNFODVVDQG WKHQDOOWKHGXFNVZLOOLQKHULWLW 1RZ·VP\WLPHWRUHDOO\VKRZP\ WUXH22JHQLXV

-RH

:KDWZHZDQW 'XFN TXDFN VZLP GLVSOD\

VHV EFODV $OOVX LWIO\  LQKHU

0DOODUG'XFN

HG :KDW-RHDGG

IO\ 27+(5GXFNOLNHPHWKRGV

5HGKHDG'XFN

GLVSOD\ ^

GLVSOD\ ^

ORRNVOLNHDPDOODUG`

ORRNVOLNHDUHGKHDG`

W\SHV 2WKHU'XFN

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 4

VRPHWKLQJZHQWZURQJ

*]\[WUM\PQVO_MV\PWZZQJTa_ZWVO -RH,·PDWWKH VKDUHKROGHU·VPHHWLQJ 7KH\MXVWJDYHDGHPRDQGWKHUH ZHUHUXEEHUGXFNLHVÁ\LQJDURXQG WKHVFUHHQ:DVWKLV\RXULGHDRI DMRNH"
:KDWKDSSHQHG" 2WMNIQTML\WVW\QKM\PI\VW\ITT []JKTI[[M[WN ,]KS[PW]TLÆa?PMV 2WMILLMLVM_JMPI^QWZ\W\PM ,]KS[]XMZKTI[[PM_I[IT[WILLQVO JMPI^QWZ\PI\_I[VW\IXXZWXZQI\M NWZ[WUM,]KS[]JKTI[[M[0MVW_ PI[ÆaQVOQVIVQUI\MWJRMK\[QV\PM ;QU=,]KSXZWOZIU

2.VRWKHUH·VDVOLJKW ÁDZLQP\GHVLJQ, GRQ·WVHHZK\WKH\FDQ·W MXVWFDOOLWD´IHDWXUHµ ,W·VNLQGRIFXWH

:KDWKHWKRXJKW ZDVDJUHDWXVH RILQKHULWDQFH IRUWKHSXUSRVH RIUHXVHKDVQ·W WXUQHGRXWVRZHOO ZKHQLWFRPHVWR PDLQWHQDQFH

)TWKITQbML]XLI\M\W\PMKWLMKI][MLIVWV TWKIT[QLMMNNMK\ÆaQVOZ]JJMZL]KS[ 'XFN

WKH \ LQ IO\LQJ O I  J JDYH  XWWLQ %\S UFODVVKH /GXFNV / H S $ W  X V \WR HWKD DELOLW GLQJWKRV LQFOX OGQ·W VKRX



TXDFN VZLP GLVSOD\

IO\ 27+(5GXFNOLNHPHWKRGV

0DOODUG'XFN

5HGKHDG'XFN

5XEEHU'XFN

GLVSOD\ ^ ORRNVOLNHDPDOODUG `

GLVSOD\ ^ ORRNVOLNHDUHGKHDG `

TXDFN ^ RYHUULGGHQWR6TXHDN ` GLVSOD\ ^ ORRNVOLNHDUXEEHUGXFN `

GRQ·WTXDFN 5XEEHUGXFNV YHUUULGGHQ R LV VRTXDFN WR´6TXHDNµ

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 5

LQWURWR'HVLJQ3DWWHUQV

2WM\PQVS[IJW]\QVPMZQ\IVKM ,FRXOGDOZD\VMXVW RYHUULGHWKHÁ\ PHWKRGLQ UXEEHUGXFNWKHZD\,DPZLWK WKHTXDFN PHWKRG

%XWWKHQZKDWKDSSHQVZKHQ ZHDGGZRRGHQGHFR\GXFNV WRWKHSURJUDP"7KH\DUHQ·W VXSSRVHGWRÁ\RUTXDFN

5XEEHU'XFN TXDFN ^VTXHDN` GLVSOD\ ^UXEEHUGXFN`

IO\ ^ RYHUULGHWRGRQRWKLQJ `

'HFR\'XFN

TXDFN ^ RYHUULGHWRGRQRWKLQJ ` GLVSOD\ ^GHFR\GXFN`

LQWKH WKHUFODVV +HUH·VDQR QRWLFHWKDWOLNH KLHUDUFK\ NLWGRHVQ·WIO\ 5XEEHU'XFRGRHVQ·WTXDFN EXWLWDOV

IO\ ^ RYHUULGHWRGRQRWKLQJ `

6KDUSHQ \RXU SHQFLO ?PQKPWN \PMNWTTW_QVOIZMLQ[IL^IV\IOM[WN ][QVOQVPMZQ\IVKM\W XZW^QLM,]KSJMPI^QWZ'+PWW[MITT\PI\IXXTa

R) +WLMQ[L]XTQKI\MLIKZW[[[]JKTI[[M[ R* :]V\QUMJMPI^QWZKPIVOM[IZMLQNÅK]T\ R+ ?MKIV¼\UISML]KS[LIVKM

R, 0IZL\WOIQVSVW_TMLOMWN ITTL]KSJMPI^QWZ[ R- ,]KS[KIV¼\ÆaIVLY]IKSI\\PM[IUM\QUM R. +PIVOM[KIV]VQV\MV\QWVITTaINNMK\W\PMZL]KS[

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 6

LQKHULWDQFHLVQRWWKHDQVZHU

0W_IJW]\IVQV\MZNIKM' 2WMZMITQbML\PI\QVPMZQ\IVKMXZWJIJTa_I[V¼\\PM IV[_MZJMKI][MPMR][\OW\IUMUW\PI\[Ia[\PI\ \PMM`MK]\Q^M[VW__IV\\W]XLI\M\PMXZWL]K\M^MZa [Q`UWV\P[QV_Ia[\PMaPI^MV¼\aM\LMKQLMLWV2WM SVW_[\PM[XMK_QTTSMMXKPIVOQVOIVLPM¼TTJMNWZKML \WTWWSI\IVLXW[[QJTaW^MZZQLMÆaIVLY]IKSNWZ M^MZaVM_,]KS[]JKTI[[\PI\¼[M^MZILLML\W\PM XZWOZIUNWZM^MZ

,FRXOGWDNHWKHÁ\ RXWRIWKH 'XFNVXSHUFODVVDQGPDNHD )O\DEOH LQWHUIDFHZLWKDÁ\  PHWKRG7KDWZD\RQO\WKHGXFNVWKDW DUHVXSSRVHGWRÁ\ZLOOLPSOHPHQWWKDW LQWHUIDFHDQGKDYHDÁ\ PHWKRGDQG ,PLJKWDVZHOOPDNHD4XDFNDEOHWRR VLQFHQRWDOOGXFNVFDQTXDFN

;WPMVMML[IKTMIVMZ_Ia\WPI^MWVTa[WUMJ]\VW\ ITTWN \PML]KS\aXM[ÆaWZY]IKS

'XFN VZLP GLVSOD\

4XDFNDEOH

)O\DEOH

TXDFN

IO\

27+(5GXFNOLNHPHWKRGV

0DOODUG'XFN GLVSOD\  IO\ TXDFN

5HGKHDG'XFN GLVSOD\ IO\ TXDFN

5XEEHU'XFN GLVSOD\ TXDFN

'HFR\'XFN GLVSOD\

:KDWGR<28WKLQNDERXWWKLVGHVLJQ"



&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 7

LQWURWR'HVLJQ3DWWHUQV

7KDWLVOLNHWKHGXPEHVWLGHD \RX·YHFRPHXSZLWK&DQ\RXVD\ ´GXSOLFDWHFRGHµ",I\RXWKRXJKW KDYLQJWRRYHUULGHDIHZPHWKRGVZDVEDG KRZDUH\RXJRQQDIHHOZKHQ\RXQHHG WRPDNHDOLWWOHFKDQJHWRWKHÁ\LQJ EHKDYLRULQDOORIWKHÁ\LQJ 'XFNVXEFODVVHV"

?PI\_W]TLaW]LWQNaW]_MZM2WM' ?MSVW_\PI\VW\ITTWN \PM[]JKTI[[M[[PW]TLPI^MÆaQVOWZY]IKSQVO JMPI^QWZ[WQVPMZQ\IVKMQ[V¼\\PMZQOP\IV[_MZ*]\_PQTMPI^QVO \PM[]JKTI[[M[QUXTMUMV\.TaIJTMIVLWZ9]IKSIJTM[WT^M[XIZ\WN  \PMXZWJTMUVWQVIXXZWXZQI\MTaÆaQVOZ]JJMZL]KS[Q\KWUXTM\MTa LM[\ZWa[KWLMZM][MNWZ\PW[MJMPI^QWZ[[WQ\R][\KZMI\M[ILQNNMZMV\ UIQV\MVIVKMVQOP\UIZM)VLWN KW]Z[M\PMZMUQOP\JMUWZM\PIV WVMSQVLWN ÆaQVOJMPI^QWZM^MVIUWVO\PML]KS[\PI\LWÆa )\\PQ[XWQV\aW]UQOP\JM_IQ\QVONWZI,M[QOV8I\\MZV\WKWUM ZQLQVOQVWVI_PQ\MPWZ[MIVL[I^M\PMLIa*]\_PI\N]V_W]TL\PI\ JM'6W_M¼ZMOWQVO\WÅO]ZMW]\I[WT]\QWV\PMWTLNI[PQWVML_Ia¸ JaIXXTaQVOOWWL77[WN\_IZMLM[QOVXZQVKQXTM[

:RXOGQ·WLWEHGUHDP\LI RQO\WKHUHZHUHDZD\WREXLOG VRIWZDUHVRWKDWZKHQZHQHHGWR FKDQJHLWZHFRXOGGRVRZLWKWKHOHDVW SRVVLEOHLPSDFWRQWKHH[LVWLQJFRGH" :HFRXOGVSHQGOHVVWLPHUHZRUNLQJ FRGHDQGPRUHPDNLQJWKHSURJUDP GRFRROHUWKLQJV

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 8

FKDQJHLVFRQVWDQW


(*1$+& ][MIUQZZWZ\W[MM\PMIV[_MZ 6WUI\\MZPW__MTTaW]LM[QOVIVIXXTQKI\QWVW^MZ\QUMIV IXXTQKI\QWVU][\OZW_IVLKPIVOMWZQ\_QTTLQM

6KDUSHQ \RXU SHQFLO /RWVRIWKLQJVFDQGULYHFKDQJH/LVWVRPHUHDVRQV \RX·YHKDGWRFKDQJHFRGHLQ\RXUDSSOLFDWLRQV ZHSXW LQDFRXSOHRIRXURZQWRJHW\RXVWDUWHG 

0\FXVWRPHUVRUXVHUVGHFLGHWKH\ZDQWVRPHWKLQJHOVHRUWKH\ZDQWQHZIXQFWLRQDOLW\ 0\FRPSDQ\GHFLGHGLWLVJRLQJZLWKDQRWKHUGDWDEDVHYHQGRUDQGLWLVDOVRSXUFKDVLQJ LWVGDWDIURPDQRWKHUVXSSOLHUWKDWXVHVDGLIIHUHQWGDWDIRUPDW$UJK



&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 9

LQWURWR'HVLJQ3DWWHUQV

BMZWQVOQVWV\PMXZWJTMU ;W_MSVW_][QVOQVPMZQ\IVKMPI[V¼\_WZSMLW]\^MZa_MTT[QVKM \PML]KSJMPI^QWZSMMX[KPIVOQVOIKZW[[\PM[]JKTI[[M[IVLQ\¼[ VW\IXXZWXZQI\MNWZITT[]JKTI[[M[\WPI^M\PW[MJMPI^QWZ[
2XUILUVWRIPDQ\GHVLJQ SULQFLSOHV:H·OOVSHQGPRUHWLPH RQWKHVHWKUXRJKRXWWKHERRN 1VW\PMZ_WZL[QN aW]¼^MOW\[WUMI[XMK\WN aW]ZKWLM\PI\Q[ KPIVOQVO[Ia_Q\PM^MZaVM_ZMY]QZMUMV\\PMVaW]SVW_aW]¼^M OW\IJMPI^QWZ\PI\VMML[\WJMX]TTMLW]\IVL[MXIZI\MLNZWUITT \PM[\]NN \PI\LWM[V¼\KPIVOM

7DNHZKDWYDULHVDQG ´HQFDSVXODWHµLWVRLWZRQ·W DIIHFWWKHUHVWRI\RXUFRGH 7KHUHVXOW")HZHU XQLQWHQGHGFRQVHTXHQFHV IURPFRGHFKDQJHVDQGPRUH IOH[LELOLW\LQ\RXUV\VWHPV

0MZM¼[IVW\PMZ_Ia\W\PQVSIJW]\\PQ[XZQVKQXTM"\ISM\PMXIZ\[ \PI\^IZaIVLMVKIX[]TI\M\PMU[W\PI\TI\MZaW]KIV IT\MZWZM`\MVL\PMXIZ\[\PI\^IZa_Q\PW]\INNMK\QVO \PW[M\PI\LWV¼\ )[[QUXTMI[\PQ[KWVKMX\Q[Q\NWZU[\PMJI[Q[NWZITUW[\M^MZa LM[QOVXI\\MZV)TTXI\\MZV[XZW^QLMI_Ia\WTM\[WUMXIZ\WN I[a[\MU ^IZaQVLMXMVLMV\TaWN ITTW\PMZXIZ\[ 7SIa\QUM\WX]TT\PML]KSJMPI^QWZW]\WN \PM,]KSKTI[[M[

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 10

SXOORXWZKDWYDULHV

;MXIZI\QVO_PI\KPIVOM[NZWU_PI\[\Ia[\PM[IUM ?PMZMLW_M[\IZ\')[NIZI[_MKIV\MTTW\PMZ\PIV\PMXZWJTMU[_Q\PÆaIVLY]IKS\PM,]KS KTI[[Q[_WZSQVO_MTTIVL\PMZMIZMVWW\PMZXIZ\[WN Q\\PI\IXXMIZ\W^IZaWZKPIVOMNZMY]MV\Ta ;WW\PMZ\PIVINM_[TQOP\KPIVOM[_M¼ZMOWQVO\WXZM\\aU]KPTMI^M\PM,]KSKTI[[ITWVM 6W_\W[MXIZI\M\PM¹XIZ\[\PI\KPIVOMNZWU\PW[M\PI\[\Ia\PM[IUMº_MIZMOWQVO\WKZMI\M\_W [M\[WN KTI[[M[\W\ITTaIXIZ\NZWU,]KSWVMNWZÆaIVLWVMNWZY]IKS-IKP[M\WN KTI[[M[_QTTPWTL ITT\PMQUXTMUMV\I\QWV[WN \PMQZZM[XMK\Q^MJMPI^QWZ.WZQV[\IVKM_MUQOP\PI^MWVMKTI[[\PI\ QUXTMUMV\[Y]IKSQVOIVW\PMZ\PI\QUXTMUMV\[[Y]MISQVOIVLIVW\PMZ\PI\QUXTMUMV\[[QTMVKM

:HNQRZWKDWÁ\ DQGTXDFN DUHWKHSDUWVRIWKH 'XFNFODVVWKDWYDU\DFURVVGXFNV 7RVHSDUDWHWKHVHEHKDYLRUVIURPWKH'XFNFODVVZH·OO SXOOERWKPHWKRGVRXWRIWKH'XFNFODVVDQGFUHDWHD QHZVHWRIFODVVHVWRUHSUHVHQWHDFKEHKDYLRU

WKHVXSHUFODVV 7KH'XFNFODVVLVVWLOO HSXOOLQJRXW DU ZH EXW NV GXF RIDOO DYLRUVDQG WKHIO\DQGTXDFNEHK KHUFODVV QRW RD LQW KHP SXWWLQJW VWUXFWXUH

HDFKJHW 1RZIO\LQJDQGTXDFNLQJ WKHLURZQVHWRIFODVVHV

9DULRXVEHKDYLRU  LPSOHPHQWDWLRQVDUHJRLQJ UH KH OLYH WR

3XOORXWZKDWYDULHV

' XF

NFODVV

)O\

UV LQJ%HKDYLR

4X

RU DFNLQJ %HKDYL 

V

'XFN%HKDYLRUV



&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 11

LQWURWR'HVLJQ3DWWHUQV

,M[QOVQVO\PM,]KS*MPI^QWZ[ ;WPW_IZM_MOWQVO\WLM[QOV\PM[M\WN KTI[[M[\PI\ QUXTMUMV\\PMÆaIVLY]IKSJMPI^QWZ[' ?M¼LTQSM\WSMMX\PQVO[ÆM`QJTM#IN\MZITTQ\_I[\PMQVÆM`QJQTQ\aQV \PML]KSJMPI^QWZ[\PI\OW\][QV\W\ZW]JTMQV\PMÅZ[\XTIKM)VL_M SVW_\PI\_M_IV\\WI[[QOVJMPI^QWZ[\W\PMQV[\IVKM[WN ,]KS.WZ M`IUXTM_MUQOP\_IV\\WQV[\IV\QI\MIVM_5ITTIZL,]KSQV[\IVKM IVLQVQ\QITQbMQ\_Q\PI[XMKQÅK\aXMWN ÆaQVOJMPI^QWZ)VL_PQTM _M¼ZM\PMZM_PaVW\UISM[]ZM\PI\_MKIVKPIVOM\PMJMPI^QWZWN  IL]KSLaVIUQKITTa'1VW\PMZ_WZL[_M[PW]TLQVKT]LMJMPI^QWZ [M\\MZUM\PWL[QV\PM,]KSKTI[[M[[W\PI\_MKIV[IaKPIVOM\PM 5ITTIZL,]KS¼[ÆaQVOJMPI^QWZI\Z]V\QUM /Q^MV\PM[MOWIT[TM\¼[TWWSI\W]Z[MKWVLLM[QOVXZQVKQXTM"

'HVLJQ3ULQFLSOH 3URJUDPWRDQLQWHUIDFHQRWDQ LPSOHPHQWDWLRQ

?M¼TT][MIVQV\MZNIKM\WZMXZM[MV\MIKPJMPI^QWZ·NWZQV[\IVKM .Ta*MPI^QWZIVL9]IKS*MPI^QWZ·IVLMIKPQUXTMUMV\I\QWVWN I JMPI^QWZ_QTTQUXTMUMV\WVMWN \PW[MQV\MZNIKM[ ;W\PQ[\QUMQ\_WV¼\JM\PM,]KSKTI[[M[\PI\_QTTQUXTMUMV\\PM ÆaQVOIVLY]IKSQVOQV\MZNIKM[1V[\MIL_M¼TTUISMI[M\WN KTI[[M[ _PW[MMV\QZMZMI[WVNWZTQ^QVOQ[\WZMXZM[MV\IJMPI^QWZNWZM`IUXTM ¹[Y]MISQVOºIVLQ\¼[\PMJMPI^QWZKTI[[ZI\PMZ\PIV\PM,]KSKTI[[ \PI\_QTTQUXTMUMV\\PMJMPI^QWZQV\MZNIKM

)URPQRZRQWKH'XFN EHKDYLRUVZLOOOLYHLQD VHSDUDWHFODVV³DFODVVWKDW LPSOHPHQWVDSDUWLFXODU EHKDYLRULQWHUIDFH 7KDWZD\WKH'XFNFODVVHV ZRQ·WQHHGWRNQRZDQ\RI WKHLPSOHPHQWDWLRQGHWDLOV IRUWKHLURZQEHKDYLRUV


LQWHUIDFH!!

)O\%HKDYLRU IO\

)O\:LWK:LQJV

)O\1R:D\

IO\ ^

IO\ ^

LPSOHPHQWVGXFNIO\LQJ

GRQRWKLQJFDQ·WIO\

`

`

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 12

SURJUDPWRDQLQWHUIDFH

,GRQ·WVHHZK\\RXKDYHWR XVHDQLQWHUIDFHIRU)O\%HKDYLRU
´3URJUDPWRDQLQWHUIDFHµUHDOO\PHDQV ´3URJUDPWRDVXSHUW\SHµ
DEVWUD EHDQDFEWVXSHUW\SH FR LQWHUIDF VWUDFWFODVV25XOG H 

'RJG QHZ'RJ  GEDUN 

$QLPDO

'HFODULQJWKHYDULDEOH´GµDV H'R J DFRQFUHWHLPSOHPHQWDWLRQRIW\S $QLPDO  IRUFHVXVWRFRGHWRDFRQFUHWH  LPSOHPHQWDWLRQ

*]\XZWOZIUUQVO\WIVQV\MZNIKM[]XMZ\aXM_W]TLJM"

PDNH6RXQG

:HNQRZLW·VD

$QLPDODQLPDO QHZ'RJ  ZHFDQQRZXVH'RJEXW WKHDQLPD DQLPDOPDNH6RXQG  UHIHUHQFHSRO\PRUSKLFDO O

O\

FRQFUHWH RQV LPSOHPHQWDWL

-^MVJM\\MZZI\PMZ\PIVPIZLKWLQVO\PMQV[\IV\QI\QWVWN \PM []J\aXMTQSMVM_,WOQV\W\PMKWLMI[[QOV\PMKWVKZM\M QUXTMUMV\I\QWVWJRMK\I\Z]V\QUM" &DW

'RJ PDNH6RXQG ^ EDUN  ` EDUN ^EDUNVRXQG`



PDNH6RXQG ^ PHRZ  ` PHRZ ^PHRZVRXQG`

:HGRQ·WNQRZ:+$7WKHDFWXDO D JHW$QLPDO  DQLPDOPDNH6RXQG  DQLPDOVXEW\SHLVDOOZHFDUHDERXW LVWKDWLWNQRZVKRZWRUHVSRQGWR PDNH6RXQG 

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 13

LQWURWR'HVLJQ3DWWHUQV

1UXTMUMV\QVO\PM,]KS*MPI^QWZ[ 0MZM_MPI^M\PM\_WQV\MZNIKM[.Ta*MPI^QWZIVL9]IKS*MPI^QWZITWVO_Q\P \PMKWZZM[XWVLQVOKTI[[M[\PI\QUXTMUMV\MIKPKWVKZM\MJMPI^QWZ"

RUWKHTXDFN 6DPHWKLQJKHUHI QLQWHUIDFH HD DY K EHKDYLRUZH TXDFN  WKDWMXVWLQFOXGHVDVWREHLPSOH HG QH W KD W RG WK PH PHQWHG

 FHWKDW LQWHUID QW$OO  Q D  H Y OHPH HKD +HUHZ JFODVVHVLPS VWQHHGWR DOOIO\LQ LQJFODVVHVMX HWKRG QHZIO\ QWWKHIO\P LPSOHPH

LQWHUIDFH!!

LQWHUIDFH!!

4XDFN%HKDYLRU

)O\%HKDYLRU

TXDFN

IO\

)O\:LWK:LQJV

)O\1R:D\

4XDFN

6TXHDN

0XWH4XDFN

IO\ ^

IO\ ^

TXDFN ^

TXDFN ^

TXDFN ^

LPSOHPHQWVGXFNIO\LQJ

GRQRWKLQJFDQ·WIO\

LPSOHPHQWVGXFNTXDFNLQJ

UXEEHUGXFNLHVTXHDN

GRQRWKLQJFDQ·WTXDFN

`

`

`

`

`

4XDF UHDOO\ NVWKDW $QGKHUH TXDF DOOGXFNV ·VWKHLPSOHPHQWD N +HUH·V WLRQRI WKDWFDQ·W IO\ IO\LQJIWKHLPSOHPHQW ZLQJV RUDOOGXFNVW DWLRQRI KDWKDY H

4XDFNVWKDWVTXHDN

:LWKWKLVGHVLJQRWKHUW\SHVRIREMHFWVFDQ U HXVHRXUÁ\DQGTXDFNEHKDYLRUVEHFDXVH WKHVHEHKDYLRUVDUHQRORQJHUKLGGHQDZD\ LQRXU'XFNFODVVHV

4XDFNVWKDWPDNH QRVRXQGDWDOO

HILWRI WKHEHQ OOWKHEDJ W H J H Z 6R LWKRXWD LWK 5(86(ZDWFRPHVDORQJZ K W JDJH QFH LQKHULWD

$QGZHFDQDGGQHZEHKDYLRUVZLWKRXW PRGLI\LQJDQ\RIRXUH[LVWLQJEHKDYLRU FODVVHVRUWRXFKLQJDQ\RIWKH'XFNFODVVHV WKDWXVHÁ\LQJEHKDYLRUV

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 14

EHKDYLRULQDFODVV

WKHUH DUH QR

'XPE 4XHVWLRQV

Q:

Q:

'R,DOZD\VKDYHWRLPSOHPHQWP\DSSOLFDWLRQILUVWVHH ZKHUHWKLQJVDUHFKDQJLQJDQGWKHQJREDFNDQGVHSDUDWH  HQFDSVXODWHWKRVHWKLQJV"

,WIHHOVDOLWWOHZHLUGWRKDYHDFODVVWKDW·VMXVWD EHKDYLRU$UHQ·WFODVVHVVXSSRVHGWRUHSUHVHQWWKLQJV"$UHQ·W FODVVHVVXSSRVHGWRKDYHERWKVWDWH$1'EHKDYLRU"

A:

A:

1RWDOZD\VRIWHQZKHQ\RXDUHGHVLJQLQJDQDSSOLFDWLRQ \RXDQWLFLSDWHWKRVHDUHDVWKDWDUHJRLQJWRYDU\DQGWKHQJRDKHDG DQGEXLOGWKHIOH[LELOLW\WRGHDOZLWKLWLQWR\RXUFRGH
Q: A:

,QDQ22V\VWHP\HVFODVVHVUHSUHVHQWWKLQJVWKDW JHQHUDOO\KDYHERWKVWDWH LQVWDQFHYDULDEOHV DQGPHWKRGV$QGLQ WKLVFDVHWKHWKLQJKDSSHQVWREHDEHKDYLRU%XWHYHQDEHKDYLRU FDQVWLOOKDYHVWDWHDQGPHWKRGVDIO\LQJEHKDYLRUPLJKWKDYH LQVWDQFHYDULDEOHVUHSUHVHQWLQJWKHDWWULEXWHVIRUWKHIO\LQJ ZLQJ EHDWVSHUPLQXWHPD[DOWLWXGHDQGVSHHGHWF EHKDYLRU

6KRXOGZHPDNH'XFNDQLQWHUIDFHWRR"

1RWLQWKLVFDVH$V\RX·OOVHHRQFHZH·YHJRWHYHU\WKLQJ KRRNHGWRJHWKHUZHGREHQHILWE\KDYLQJ'XFNEHDFRQFUHWH FODVVDQGKDYLQJVSHFLILFGXFNVOLNH0DOODUG'XFNLQKHULWFRPPRQ SURSHUWLHVDQGPHWKRGV1RZWKDWZH·YHUHPRYHGZKDWYDULHVIURP WKH'XFNLQKHULWDQFHZHJHWWKHEHQHILWVRIWKLVVWUXFWXUHZLWKRXW WKHSUREOHPV

6KDUSHQ \RXU SHQFLO 8VLQJRXUQHZGHVLJQZKDWZRXOG\RXGRLI\RXQHHGHGWR DGGURFNHWSRZHUHGÀ\LQJWRWKH6LP8'XFNDSS"



&DQ\RXWKLQNRIDFODVVWKDWPLJKWZDQWWRXVHWKH4XDFN EHKDYLRUWKDWLVQ¶WDGXFN"

7VMM`IUXTMIL]KSKITTI LM^QKM\PI\UISM[L]KS[W]VL[



+ZMI\MI.Ta:WKSM\8W_MZMLKTI[[ \PI\QUXTMUMV\[\PM.Ta*MPI^QWZ QV\MZNIKM )V[_MZ["



&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 15

LQWURWR'HVLJQ3DWWHUQV

1V\MOZI\QVO\PM,]KS*MPI^QWZ 7KHNH\LVWKDWD'XFNZLOOQRZGHOHJDWHLWVÁ\LQJ DQGTXDFNLQJEHKDYLRULQVWHDGRIXVLQJTXDFNLQJDQG Á\LQJPHWKRGVGHÀQHGLQWKH'XFNFODVV RUVXEFODVV  +HUH·VKRZ 

.QZ[\_M¼TTILL\_WQV[\IVKM^IZQIJTM[\W\PM,]KSKTI[[KITTMLÆa*MPI^QWZIVL Y]IKS*MPI^QWZ\PI\IZMLMKTIZMLI[\PMQV\MZNIKM\aXMVW\IKWVKZM\MKTI[[QUXTMUMV\I\QWV \aXM-IKPL]KSWJRMK\_QTT[M\\PM[M^IZQIJTM[XWTaUWZXPQKITTa\WZMNMZMVKM\PM[XMKQÅK JMPI^QWZ\aXMQ\_W]TLTQSMI\Z]V\QUM.Ta?Q\P?QVO[;Y]MISM\K ?M¼TTIT[WZMUW^M\PMÆaIVLY]IKSUM\PWL[NZWU\PM,]KSKTI[[IVLIVa[]JKTI[[M[ JMKI][M_M¼^MUW^ML\PQ[JMPI^QWZW]\QV\W\PM.Ta*MPI^QWZIVL9]IKS*MPI^QWZKTI[[M[ ?M¼TTZMXTIKMÆaIVLY]IKSQV\PM,]KSKTI[[_Q\P\_W[QUQTIZUM\PWL[KITTML XMZNWZU.TaIVLXMZNWZU9]IKS#aW]¼TT[MMPW_\PMa_WZSVM`\

7KHEHKDYLRUYDULDEOHVDUH GHFODUHGDVWKHEHKDYLRU ,17(5)$&(W\SH

7KHVHPHWKRGVUHSODFH IO\ DQGTXDFN 



,QVWDQFHYDULDEOHVKROGDUHIHUHQFHWR DVSHFLILFEHKDYLRUDWUXQWLPH 'XFN )O\%HKDYLRUIO\%HKDYLRU 4XDFN%HKDYLRUTXDFN%HKDYLRU SHUIRUP4XDFN VZLP GLVSOD\ SHUIRUP)O\ 27+(5GXFNOLNHPHWKRGV

6W__MQUXTMUMV\XMZNWZU9]IKS" SXEOLFFODVV'XFN^ 4XDFN%HKDYLRUTXDFN%HKDYLRU PRUH SXEOLFYRLGSHUIRUP4XDFN ^ TXDFN%HKDYLRUTXDFN  ` `

)O\

UV LQJ%HKDYLR

4X

DFNLQJ %HKDYL 

RU V

'XFN%HKDYLRUV

RPHWKLQJWKDW UHIHUHQFHWRV HUIDFH D V KD N XF ' LQW (DFK 4XDFN%HKDYLRU LPSOHPHQWVWKH NEHKDYLRU QGOLQJWKHTXDF 5DWKHUWKDQKDNREMHFWGHOHJDWHVWKDW LWVHOIWKH'XF REMHFWUHIHUHQFHGE\ EHKDYLRUWRWKH TXDFN%HKDYLRU

8ZM\\a[QUXTMP]P'


Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 16

LQWHJUDWLQJGXFNEHKDYLRU

5WZM1V\MOZI\QWV 

7SIa\QUM\W_WZZaIJW]\PW_\PMÆa*MPI^QWZIVL Y]IKS*MPI^QWZQV[\IVKM^IZQIJTM[IZM[M\4M\¼[\ISMITWWSI\ \PM5ITTIZL,]KSKTI[[" SXEOLFFODVV0DOODUG'XFNH[WHQGV'XFN^ SXEOLF0DOODUG'XFN ^ TXDFN%HKDYLRU QHZ4XDFN  À\%HKDYLRU QHZ)O\:LWK:LQJV  `

5HPHPEHU0DOODUG'XFNLQKHULWVWKHTXDFN %HKDYLRUDQGIO\%HKDYLRULQVWDQFHYDULDEOHV IURPFODVV'XFN

FODVVWR XVHVWKH4XDFN $0DOODUG'XFNNVRZKHQSHUIRUP4XDFN KDQGOHLWVTXDF HVSRQVLELOLW\IRUWKH LVFDOOHGWKHU HGWRWKH4XDFNREMHFW TXDFNLVGHOHJDWHDOTXDFN DQGZHJHWDU LWV O\:LWK:LQJVDV $QGLWXVHV) H \S W )O\%HKDYLRU

SXEOLFYRLGGLVSOD\ ^  6\VWHPRXWSULQWOQ ³,¶PDUHDO0DOODUGGXFN´  ` `

;W5ITTIZL,]KS¼[Y]IKSQ[IZMITTQ^ML]KSY]IKSVW\I[Y]MISIVL VW\IU]\MY]IKS;W_PI\PIXXMV[PMZM'?PMVI5ITTIZL,]KS Q[QV[\IV\QI\MLQ\[KWV[\Z]K\WZQVQ\QITQbM[\PM5ITTIZL,]KS¼[QVPMZQ\ML Y]IKS*MPI^QWZQV[\IVKM^IZQIJTM\WIVM_QV[\IVKMWN \aXM9]IKSI 9]IKS*MPI^QWZKWVKZM\MQUXTMUMV\I\QWVKTI[[ )VL\PM[IUMQ[\Z]MNWZ\PML]KS¼[ÆaQVOJMPI^QWZ¸\PM5ITTIZL,]KS¼[ KWV[\Z]K\WZQVQ\QITQbM[\PMÆa*MPI^QWZQV[\IVKM^IZQIJTM_Q\PIVQV[\IVKM WN \aXM.Ta?Q\P?QVO[I.Ta*MPI^QWZKWVKZM\MQUXTMUMV\I\QWVKTI[[



&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 17

LQWURWR'HVLJQ3DWWHUQV

:DLWDVHFRQGGLGQ·W\RX VD\ZHVKRXOG127SURJUDPWRDQ LPSOHPHQWDWLRQ"%XWZKDWDUHZHGRLQJ LQWKDWFRQVWUXFWRU":H·UHPDNLQJD QHZLQVWDQFHRIDFRQFUHWH4XDFN LPSOHPHQWDWLRQFODVV

/WWLKI\KP\PI\¼[M`IK\Ta_PI\_M¼ZMLWQVO NWZVW_ 4I\MZQV\PMJWWS_M¼TTPI^MUWZMXI\\MZV[QV W]Z\WWTJW`\PI\KIVPMTX][Å`Q\ ;\QTTVW\QKM\PI\_PQTM_MIZM[M\\QVO\PM JMPI^QWZ[\WKWVKZM\MKTI[[M[JaQV[\IV\QI\QVO IJMPI^QWZKTI[[TQSM9]IKSWZ.Ta?Q\P?QVO[ IVLI[[QOVQVOQ\\WW]ZJMPI^QWZZMNMZMVKM ^IZQIJTM_MKW]TLMI[QTaKPIVOM\PI\I\ Z]V\QUM ;W_M[\QTTPI^MITW\WN ÆM`QJQTQ\aPMZM J]\_M¼ZMLWQVOIXWWZRWJWN QVQ\QITQbQVO \PMQV[\IVKM^IZQIJTM[QVIÆM`QJTM_Ia*]\ \PQVSIJW]\Q\[QVKM\PMY]IKS*MPI^QWZ QV[\IVKM^IZQIJTMQ[IVQV\MZNIKM\aXM_M KW]TL\PZW]OP\PMUIOQKWN XWTaUWZXPQ[U LaVIUQKITTaI[[QOVILQNNMZMV\9]IKS*MPI^QWZ QUXTMUMV\I\QWVKTI[[I\Z]V\QUM
\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 18

WHVWLQJGXFNEHKDYLRUV


0DOODUG'XFNFODVVIURPWZRSDJHVEDFN 0DOODUG'XFNMDYD  SXEOLFDEVWUDFWFODVV'XFN^ )O\%HKDYLRUÀ\%HKDYLRU 4XDFN%HKDYLRUTXDFN%HKDYLRU SXEOLF'XFN ^ `   SXEOLFDEVWUDFWYRLGGLVSOD\  SXEOLFYRLGSHUIRUP)O\ ^ À\%HKDYLRUÀ\  `

YDULDEOHV 'HFODUHWZRUHIHUHQFH HW\SHV IDF WHU ULQ IRUWKHEHKDYLR KHVDPH $OOGXFNVXEFODVVHV LQW H KHV WW HUL SDFNDJH LQK

'HOHJDWHWRWKHEHKDYLRUFODVV

SXEOLFYRLGSHUIRUP4XDFN ^ TXDFN%HKDYLRUTXDFN  ` SXEOLFYRLGVZLP ^ 6\VWHPRXWSULQWOQ ³$OOGXFNVÀRDWHYHQGHFR\V´  ` `  7\SHDQGFRPSLOHWKH)O\%HKDYLRULQWHUIDFH )O\%HKDYLRUMDYD DQG

WKHWZREHKDYLRULPSOHPHQWDWLRQFODVVHV )O\:LWK:LQJVMDYDDQG )O\1R:D\MDYD  SXEOLFLQWHUIDFH)O\%HKDYLRU^ SXEOLFYRLGÀ\  `

7KHLQWHUIDFHWKDWDOOIO\LQJ EHKDYLRUFODVVHVLPSOHPHQW

SXEOLFFODVV)O\:LWK:LQJVLPSOHPHQWV)O\%HKDYLRU^ SXEOLFYRLGÀ\ ^ LPSOHPHQWDWLRQ )O\LQJEHKDYLRU '2IO\  6\VWHPRXWSULQWOQ ³,¶PÀ\LQJ´  IRUGXFNVWKDW ` `

SXEOLFFODVV)O\1R:D\LPSOHPHQWV)O\%HKDYLRU^ SXEOLFYRLGÀ\ ^ 6\VWHPRXWSULQWOQ ³,FDQ¶WÀ\´  ` `



)O\LQJEHKDYLRU IRUGXFNVWKDW LPSOHPHQWDWLRQ UXEEHUGXFNVDQGGR127IO\ OLNH GHFR\GXFNV 

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 19

LQWURWR'HVLJQ3DWWHUQV


4XDFN%HKDYLRUMDYD DQGWKHWKUHHEHKDYLRULPSOHPHQWDWLRQ FODVVHV 4XDFNMDYD0XWH4XDFNMDYDDQG6THDNMDYD  SXEOLFLQWHUIDFH4XDFN%HKDYLRU^ SXEOLFYRLGTXDFN  ` SXEOLFFODVV4XDFNLPSOHPHQWV4XDFN%HKDYLRU^ SXEOLFYRLGTXDFN ^ 6\VWHPRXWSULQWOQ ³4XDFN´  ` ` SXEOLFFODVV0XWH4XDFNLPSOHPHQWV4XDFN%HKDYLRU^ SXEOLFYRLGTXDFN ^  6\VWHPRXWSULQWOQ ³6LOHQFH!!´  ` ` SXEOLFFODVV6TXHDNLPSOHPHQWV4XDFN%HKDYLRU^ SXEOLFYRLGTXDFN ^  6\VWHPRXWSULQWOQ ³6TXHDN´  ` `  7\SHDQGFRPSLOHWKHWHVWFODVV

0LQL'XFN6LPXODWRUMDYD  SXEOLFFODVV0LQL'XFN6LPXODWRU^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 'XFNPDOODUG QHZ0DOODUG'XFN  XFN·VLQKHULWHG 7KLVFDOOVWKH0DOODUG' LFKWKHQGHOHJDWHVWR PDOODUGSHUIRUP4XDFN  ZK G SHUIRUP4XDFN PHWKR U LHFDOOVTXDFN RQWKH PDOODUGSHUIRUP)O\  YLR HKD N% XDF 4 W·V ` WKHREMHF LRUUHIHUHQFH  ` N·VLQKHULWHGTXDFN%HKDY



5XQWKHFRGH )LOH(GLW:LQGRZ+HOS
GXF LQJZLWK0DOODUG'XFN·V 7KHQZHGRWKHVDPHWK WKRG PH LQKHULWHGSHUIRUP)O\ 

MDYD0LQL'XFN6LPXODWRU 4XDFN ,¶PÀ\LQJ \RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 20

GXFNVZLWKG\QDPLFEHKDYLRU

;M\\QVOJMPI^QWZLaVIUQKITTa ?PI\I[PIUM\WPI^MITT\PQ[LaVIUQK\ITMV\J]QT\QV\WW]ZL]KS[IVLVW\JM][QVO Q\ 1UIOQVMaW]_IV\\W[M\\PML]KS¼[JMPI^QWZ\aXM\PZW]OPI[M\\MZUM\PWLWV\PM L]KS[]JKTI[[ZI\PMZ\PIVJaQV[\IV\QI\QVOQ\QV\PML]KS¼[KWV[\Z]K\WZ 

$GGWZRQHZPHWKRGVWRWKH'XFNFODVV SXEOLFYRLGVHW)O\%HKDYLRU )O\%HKDYLRUIE ^ À\%HKDYLRU IE `

'XFN )O\%HKDYLRUIO\%HKDYLRU

SXEOLFYRLGVHW4XDFN%HKDYLRU 4XDFN%HKDYLRUTE ^ TXDFN%HKDYLRU TE `

4XDFN%HKDYLRUTXDFN%HKDYLRU VZLP GLVSOD\ SHUIRUP4XDFN SHUIRUP)O\ VHW)O\%HKDYLRU VHW4XDFN%HKDYLRU

?MKIVKITT\PM[MUM\PWL[IVa\QUM_M_IV\\WKPIVOM\PM JMPI^QWZWN IL]KSWV\PMÆa

27+(5GXFNOLNHPHWKRGV

HGLWRUQRWHJUDWXLWRXVSXQ

¿[



0DNHDQHZ'XFNW\SH 0RGHO'XFNMDYD  SXEOLFFODVV0RGHO'XFNH[WHQGV'XFN^ SXEOLF0RGHO'XFN ^ À\%HKDYLRU QHZ)O\1R:D\   TXDFN%HKDYLRU QHZ4XDFN  `



URXQGHG NEHJLQVOLIHJ 2XUPRGHOGXF WRIO\ ZLWKRXWDZD\

SXEOLFYRLGGLVSOD\ ^ 6\VWHPRXWSULQWOQ ³,¶PDPRGHOGXFN´  ` `



0DNHDQHZ)O\%HKDYLRUW\SH )O\5RFNHW3RZHUHGMDYD 

7KDW·VRND\ZH·UHFUHDWLQJD URFNHWSRZHUHGIO\LQJEHKDYLRU

SXEOLFFODVV)O\5RFNHW3RZHUHGLPSOHPHQWV)O\%HKDYLRU^ SXEOLFYRLGÀ\ ^ 6\VWHPRXWSULQWOQ ³,¶PÀ\LQJZLWKDURFNHW´  ` `



&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 21

LQWURWR'HVLJQ3DWWHUQV



&KDQJHWKHWHVWFODVV 0LQL'XFN6LPXODWRUMDYD DGGWKH 0RGHO'XFNDQGPDNHWKH0RGHO'XFNURFNHWHQDEOHG

SXEOLFFODVV0LQL'XFN6LPXODWRU^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 'XFNPDOODUG QHZ0DOODUG'XFN  PDOODUGSHUIRUP4XDFN  PDOODUGSHUIRUP)O\  

OHJDWHV SHUIRUP)O\ GH 7KHILUVWFDOOWRLRUREMHFWVHWLQWKH WRWKHIO\%HKDY VWUXFWRUZKLFKLVD 0RGHO'XFN·VFRQ FH )O\1R:D\LQVWDQ

'XFNPRGHO QHZ0RGHO'XFN  PRGHOSHUIRUP)O\  PRGHOVHW)O\%HKDYLRU QHZ)O\5RFNHW3RZHUHG  PRGHOSHUIRUP)O\  ` ` ,ILWZRUNHGWKHPR

GHOGXFNG\QDPLFDOO\ FKDQJHGLWVIO\LQJEHKDYLRU< 7+$7LIWKHLPSOHPHQWDWLR RXFDQ·WGR QOLYHVLQVLGHWKH GXFNFODVV



5XQLW

EHIRUH

7KLVLQYRNHVWKHPRGHO·VLQKH EHKDYLRUVHWWHUPHWKRGDQGULWHG PRGHOVXGGHQO\KDVURFNHWSRYRLOD7KH ZHUHG IO\LQJFDSDELOLW\

)LOH(GLW:LQGRZ+HOS
MDYD0LQL'XFN6LPXODWRU 4XDFN ,¶PÀ\LQJ

DIWHU

,FDQ¶WÀ\ ,¶PÀ\LQJZLWKDURFNHW

7RFKDQJHDGXFN·V EHKDYLRUDWUXQWLPHMXVW FDOOWKHGXFN·VVHWWHU PHWKRGIRUWKDWEHKDYLRU \RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 22

WKHELJSLFWXUH


&OLHQWPDNHVXVHRIDQ HQFDSVXODWHGIDPLO\RIDOJRULWKPV IRUERWKIO\LQJDQGTXDFNLQJ &OLHQW

(QFDSVXODWHGÀ\EHKDYLRU LQWHUIDFH!!

)O\%HKDYLRU

K RIHDF 7KLQN EHKDYLRUV VHWRI DPLO\RI DVDI KPV DOJRULW

IO\

'XFN )O\:LWK:LQJV

)O\%HKDYLRUIO\%HKDYLRU 4XDFN%HKDYLRUTXDFN%HKDYLRU VZLP GLVSOD\

)O\1R:D\

IO\ ^

IO\ ^

LPSOHPHQWVGXFNIO\LQJ

GRQRWKLQJFDQ·WIO\

`

`

SHUIRUP4XDFN SHUIRUP)O\

(QFDSVXODWHGTXDFNEHKDYLRU

VHW)O\%HKDYLRU VHW4XDFN%HKDYLRU

LQWHUIDFH!!

27+(5GXFNOLNHPHWKRGV

4XDFN%HKDYLRU TXDFN

0DOODUG'XFN

5HGKHDG'XFN

5XEEHU'XFN

'HFR\'XFN

GLVSOD\ ^

GLVSOD\ ^

GLVSOD\ ^

GLVSOD\ ^

ORRNVOLNHDPDOODUG`

ORRNVOLNHDUHGKHDG`

ORRNVOLNHDUXEEHUGXFN`

ORRNVOLNHDGHFR\GXFN`

4XDFN

6TXHDN

0XWH4XDFN

TXDFN ^

TXDFN ^

TXDFN ^

LPSOHPHQWVGXFNTXDFNLQJ

UXEEHUGXFNLHVTXHDN

GRQRWKLQJFDQ·WTXDFN

`

`

`

 YLRUV EHKD µDUH  H V H 7K ULWKPV DEOH ´DOJR HUFKDQJH LQW 

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 23

LQWURWR'HVLJQ3DWWHUQV

0);)KIVJMJM\\MZ\PIV1;)
0DVWHUDQG6WXGHQW 0DVWHU*UDVVKRSSHU WHOOPHZKDW\RXKDYH OHDUQHGRIWKH2EMHFW 2ULHQWHGZD\V 6WXGHQW0DVWHU,KDYHOHDUQHGWKDW WKHSURPLVHRIWKHREMHFWRULHQWHGZD\ LVUHXVH

'HVLJQ3ULQFLSOH

0DVWHU*UDVVKRSSHUFRQWLQXH

)DYRUFRPSRVLWLRQRYHULQKHULWDQFH

6WXGHQW0DVWHUWKURXJKLQKHULWDQFH DOOJRRGWKLQJVPD\EHUHXVHGDQG VRZHZLOOFRPHWRGUDVWLFDOO\FXW GHYHORSPHQWWLPHOLNHZHVZLIWO\FXW EDPERRLQWKHZRRGV

)[aW]¼^M[MMVKZMI\QVO[a[\MU[][QVOKWUXW[Q\QWVOQ^M[aW] ITW\UWZMÆM`QJQTQ\a6W\WVTaLWM[Q\TM\aW]MVKIX[]TI\M INIUQTaWN ITOWZQ\PU[QV\W\PMQZW_V[M\WN KTI[[M[J]\Q\ IT[WTM\[aW]KPIVOMJMPI^QWZI\Z]V\QUMI[TWVOI[ \PMWJRMK\aW]¼ZMKWUXW[QVO_Q\PQUXTMUMV\[\PMKWZZMK\ JMPI^QWZQV\MZNIKM +WUXW[Q\QWVQ[][MLQVUIVaLM[QOVXI\\MZV[IVLaW]¼TT [MMITW\UWZMIJW]\Q\[IL^IV\IOM[IVLLQ[IL^IV\IOM[ \PZW]OPW]\\PMJWWS

0DVWHU*UDVVKRSSHULVPRUH WLPHVSHQWRQFRGHEHIRUHRUDIWHU GHYHORSPHQWLVFRPSOHWH" 6WXGHQW7KHDQVZHULVDIWHU 0DVWHU:HDOZD\VVSHQGPRUHWLPH PDLQWDLQLQJDQGFKDQJLQJVRIWZDUH WKDQLQLWLDOGHYHORSPHQW 0DVWHU6R*UDVVKRSSHUVKRXOGHIIRUW JRLQWRUHXVHDERYHPDLQWDLQWDELOLW\ DQGH[WHQVLELOLW\" 6WXGHQW0DVWHU,EHOLHYHWKDWWKHUHLV WUXWKLQWKLV

YiX`e gfn\i $GXFNFDOOLVDGHYLFHWKDWKXQWHUVXVHWRPLPLFWKH FDOOV TXDFNV RIGXFNV+RZZRXOG\RXLPSOHPHQW\RXU RZQGXFNFDOOWKDWGRHVQRWLQKHULWIURPWKH'XFNFODVV"

0DVWHU,FDQVHHWKDW\RXVWLOOKDYH PXFKWROHDUQ,ZRXOGOLNHIRU\RXWR JRDQGPHGLWDWHRQLQKHULWDQFHIXUWKHU $V\RX¶YHVHHQLQKHULWDQFHKDVLWV SUREOHPVDQGWKHUHDUHRWKHUZD\VRI DFKLHYLQJUHXVH

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 24

WKHVWUDWHJ\SDWWHUQ

;XMISQVOWN,M[QOV8I\\MZV[

&RQJUDWXODWLRQVRQ \RXUILUVWSDWWHUQ





\RX ZKHQ LQLWLRQ QGVDQG I H G  +,6 ULH 8VH7 RLPSUHVVI XWLYHV QHHGW FHNH\H[HF LQIOXHQ

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 25

LQWURWR'HVLJQ3DWWHUQV

'HVLJQ3X]]OH *MTW_aW]¼TTÅVLIUM[[WN KTI[[M[IVLQV\MZNIKM[NWZIVIK\QWVIL^MV\]ZMOIUMAW]¼TT ÅVLKTI[[M[NWZOIUMKPIZIK\MZ[ITWVO_Q\PKTI[[M[NWZ_MIXWVJMPI^QWZ[\PMKPIZIK\MZ[ KIV][MQV\PMOIUM-IKPKPIZIK\MZKIVUISM][MWN WVM_MIXWVI\I\QUMJ]\KIV KPIVOM_MIXWV[I\IVa\QUML]ZQVO\PMOIUMAW]ZRWJQ[\W[WZ\Q\ITTW]\ )V[_MZ[IZMI\\PMMVLWN \PMKPIX\MZ AW]Z\I[S"  )ZZIVOM\PMKTI[[M[  1LMV\QNaWVMIJ[\ZIK\KTI[[WVMQV\MZNIKMIVLMQOP\KTI[[M[  ,ZI_IZZW_[JM\_MMVKTI[[M[



I,ZI_\PQ[SQVLWN IZZW_NWZQVPMZQ\IVKM¹M`\MVL[º



J,ZI_\PQ[SQVLWN IZZW_NWZQV\MZNIKM¹QUXTMUMV\[º



K,ZI_\PQ[SQVLWN IZZW_NWZ¹0);)º

 8]\\PMUM\PWL[M\?MIXWVQV\W\PMZQOP\KTI[[

&KDUDFWHU :HDSRQ%HKDYLRUZHDSRQ ILJKW 

%RZ$QG$UURZ%HKDYLRU

.QLIH%HKDYLRU XVH:HDSRQ ^LPSOHPHQWVFXWWLQJ ZLWKDNQLIH` LQWHUIDFH!!

4XHHQ

XVH:HDSRQ ^LPSOHPHQWVVKRRW LQJDQDUURZZLWKDERZ`

:HDSRQ%HKDYLRU

ILJKW ^`

XVH:HDSRQ 

.LQJ ILJKW ^`

7UROO ILJKW ^`

.QLJKW ILJKW ^`

$[H%HKDYLRU XVH:HDSRQ ^LPSOHPHQWVFKRS SLQJZLWKDQD[H`

6ZRUG%HKDYLRU XVH:HDSRQ ^LPSOHPHQWVVZLQJ LQJDVZRUG`

VHW:HDSRQ :HDSRQ%HKDYLRUZ ^ WKLVZHDSRQ Z `

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 26

GLQHUWDON

7^MZPMIZLI\\PMTWKITLQVMZ $OLFH ,QHHGD&UHDPFKHHVH ZLWKMHOO\RQZKLWHEUHDGD FKRFRODWHVRGDZLWKYDQLOODLFHFUHDPD JULOOHGFKHHVHVDQGZLFKZLWKEDFRQDWXQD ÀVKVDODGRQWRDVWDEDQDQDVSOLWZLWK LFHFUHDP VOLFHGEDQDQDVDQGDFRIIHH ZLWKDFUHDPDQGWZRVXJDUVRK DQGSXWDKDPEXUJHURQWKHJULOO

)OR *LYHPHD&- :KLWHDEODFN ZKLWHD -DFN%HQQ\DUDGLRDKRXVH ERDWDFRIIHHUHJXODUDQG EXUQRQH

?PI\¼[\PMLQNNMZMVKMJM\_MMV\PM[M\_WWZLMZ['6W\I\PQVO 
&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 27

LQWURWR'HVLJQ3DWWHUQV

7^MZPMIZLQV\PMVM`\K]JQKTM 6R,FUHDWHGWKLVEURDGFDVW FODVV,WNHHSVWUDFNRIDOO WKHREMHFWVOLVWHQLQJWRLWDQGDQ\WLPH DQHZSLHFHRIGDWDFRPHVDORQJLWVHQGVD PHVVDJHWRHDFKOLVWHQHU:KDW·VFRROLVWKDW WKHOLVWHQHUVFDQMRLQWKHEURDGFDVWDWDQ\ WLPHRUWKH\FDQHYHQUHPRYHWKHPVHOYHV ,WLVUHDOO\G\QDPLFDQGORRVHO\FRXSOHG

5LFN

YiX`e gfn\i &DQ\RXWKLQNRIRWKHUVKDUHGYRFDEXODULHV WKDWDUHXVHGEH\RQG22GHVLJQDQGGLQHU WDON" +LQWKRZDERXWDXWRPHFKDQLFV FDUSHQWHUVJRXUPHWFKHIVDLUWUDI¿FFRQWURO  :KDWTXDOLWLHVDUHFRPPXQLFDWHGDORQJZLWK WKHOLQJR" &DQ\RXWKLQNRIDVSHFWVRI22GHVLJQ WKDWJHWFRPPXQLFDWHGDORQJZLWKSDWWHUQ QDPHV":KDWTXDOLWLHVJHWFRPPXQLFDWHG DORQJZLWKWKHQDPH³6WUDWHJ\3DWWHUQ´"

([DFWO\,I\RX FRPPXQLFDWHLQSDWWHUQV WKHQRWKHUGHYHORSHUVNQRZ LPPHGLDWHO\DQGSUHFLVHO\WKH GHVLJQ\RX·UHGHVFULELQJ-XVWGRQ·W JHW3DWWHUQ)HYHU\RX·OONQRZ \RXKDYHLWZKHQ\RXVWDUWXVLQJ SDWWHUQVIRU+HOOR :RUOG

5LFNZK\ GLGQ·W\RXMXVWVD\ \RXZHUHXVLQJWKH 2EVHUYHU3DWWHUQ"

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 28

VKDUHGYRFDEXODU\


;PIZMLXI\\MZV^WKIJ]TIZQM[IZM87?-:.=4 ?PMVaW]KWUU]VQKI\M_Q\PIVW\PMZLM^MTWXMZWZaW]Z \MIU][QVOXI\\MZV[aW]IZMKWUU]VQKI\QVOVW\R][\I XI\\MZVVIUMJ]\I_PWTM[M\WN Y]ITQ\QM[KPIZIK\MZQ[\QK[ IVLKWV[\ZIQV\[\PI\\PMXI\\MZVZMXZM[MV\[

WRLPSOH \SDWWHUQGXFNVµ HJ W UD VW H IRXU QJWK ´:H·UHXVL YDULRXVEHKDYLRUVRDYLRUKDVEHHQ PHQWWKH RXWKHGXFNEHK WRIFODVVHV 7KLVWHOOV\HGLQWRLWVRZQVH DQGFKDQJHG HQFDSVXODWEHHDVLO\H[SDQGHG WKDWFDQ XQWLPHLIQHHGHG 8I\\MZV[ITTW_aW]\W[IaUWZM_Q\PTM[[?PMV HYHQDWU aW]][MIXI\\MZVQVILM[KZQX\QWVW\PMZLM^MTWXMZ[Y]QKSTa SVW_XZMKQ[MTa\PMLM[QOVaW]PI^MQVUQVL

H\RX JVKDY LQWR LQ W H H
;PIZML^WKIJ]TIZQM[KIV\]ZJWKPIZOMaW]Z LM^MTWXUMV\\MIU)\MIU_MTT^MZ[MLQVLM[QOV XI\\MZV[KIVUW^MUWZMY]QKSTa_Q\PTM[[ZWWUNWZ UQ[]VLMZ[\IVLQVO ;PIZML^WKIJ]TIZQM[MVKW]ZIOMUWZMR]VQWZ LM^MTWXMZ[\WOM\]X\W[XMML2]VQWZLM^MTWXMZ[TWWS ]X\WM`XMZQMVKMLLM^MTWXMZ[?PMV[MVQWZLM^MTWXMZ[ UISM][MWN LM[QOVXI\\MZV[R]VQWZLM^MTWXMZ[IT[WJMKWUM UW\Q^I\ML\WTMIZV\PMU*]QTLIKWUU]VQ\aWN XI\\MZV ][MZ[I\aW]ZWZOIVQbI\QWV



VKDUHGHVLJQ $V\RXUWHDPEHJLQVWRLQWHUPVRI FH LHQ LGHDVDQGH[SHU DFRPPXQLW\ SDWWHUQV\RXZLOOEXLOG UV XVH QV WHU SDW RI

7KLQNDERXWVWDUWLQJDSDWWHUQVVWXG\ JURXSDW\RXURUJDQL]DWLRQPD\EH\RX FDQHYHQJHWSDLGZKLOH\RX·UHOHDUQ LQJ

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 29

LQWURWR'HVLJQ3DWWHUQV

0W_LW1][M,M[QOV8I\\MZV[' ?M¼^MITT][MLWNN\PM[PMTN TQJZIZQM[IVLNZIUM_WZS[?M\ISM\PMU_ZQ\M[WUMKWLMIOIQV[\\PMQZ)81[ KWUXQTM\PMUQV\WW]ZXZWOZIU[IVLJMVMÅ\NZWUITW\WN KWLM[WUMWVMMT[MPI[_ZQ\\MV
YLRU

\EHKD XODWHGÀ

(QFDSV

$,1
FH!! LQWHUID

YLRU

)O\%HKD IO\

\

)O\1R:D

)O\:LWK:LQJV

IO\ ^ WKLQJFD

IO\ ^ PHQWVGX

`

LPSOH

'XFN YLRUIO\%

`

HKDYLRU

)O\%HKD

KDYLRU

TXDFN%H

HKDYLRU

4XDFN%

XDFNEH

XODWHGT

(QFDSV

VZLP GLVSOD\

KDYLRU

FH!!

LQWHUID

HKDYLRU

4XDFN%

XDFN

SHUIRUP4

TXDFN

O\

SHUIRUP)

KDYLRU VHW)O\%H U VHW4XDFN%HKDYLR PHWKRGV GXFNOLNH 27+(5

0XWH4XDFN 6TXHDN 4XDFN

XFN

'HFR\' 5XEEHU'XFN 5HGKHDG'XFN

2EMHFWWKDW KROGVVWDWH

LQW

LQJ

UGXFNLH

VTXHDN

UXEEH

 Q·WTXDFN

GRQR `

`

`

2%6(59(5 



6X EMH

FNTXDFN

PHQWVGX LPSOH

TXDFN ^ WKLQJFD

TXDFN ^

TXDFN ^

GLVSOD\ ^ NHDGHFR\GXFN` ORRNVOL

GLVSOD\ ^ HUGXFN` NHDUXEE ORRNVOL

FW2EMH

 

' R

J2EM

W HF

 F ' XFN2EMH

0R

W

W &D W2EMHF

HF XVH2EM

W

2EVHUYHUV

$XWRPDWLFXSGDWHQRWLILFDWLRQ

U

UROOH

&RQW

W2EMHFWV

GLVSOD\ ^ NHDPDOODUG` ORRNVOL

GLVSOD\ ^ HDG` NHDUHGK ORRNVOL

09&

'HSHQGHQ

0DOODUG'XFN

FW

$%XQFKRI3DWWHUQV

&OLHQW

Q·WIO\

GRQR

FNIO\LQJ

HO

0RG HVW 5HTX

9LHZ

QHZ
WKHUH DUH QR

'XPE 4XHVWLRQV

Q:

Q:

$UHQ·WOLEUDULHVDQGIUDPHZRUNV DOVRGHVLJQSDWWHUQV"

XQGHUVWDQG$3,VWKDWDUHVWUXFWXUHG DURXQGGHVLJQSDWWHUQV

A:

A:

Q:

,IGHVLJQSDWWHUQVDUHVRJUHDW ZK\FDQ·WVRPHRQHEXLOGDOLEUDU\RI WKHPVR,GRQ·WKDYHWR"

'HVLJQSDWWHUQVDUHKLJKHUOHYHO WKDQOLEUDULHV'HVLJQSDWWHUQVWHOOXV KRZWRVWUXFWXUHFODVVHVDQGREMHFWVWR VROYHFHUWDLQSUREOHPVDQGLWLVRXUMREWR DGDSWWKRVHGHVLJQVWRILWRXUSDUWLFXODU DSSOLFDWLRQ

)UDPHZRUNVDQGOLEUDULHVDUHQRW GHVLJQSDWWHUQVWKH\SURYLGHVSHFLILF LPSOHPHQWDWLRQVWKDWZHOLQNLQWRRXU FRGH6RPHWLPHVKRZHYHUOLEUDULHVDQG IUDPHZRUNVPDNHXVHRIGHVLJQSDWWHUQV LQWKHLULPSOHPHQWDWLRQV7KDW·VJUHDW EHFDXVHRQFH\RXXQGHUVWDQGGHVLJQ SDWWHUQV\RX·OOPRUHTXLFNO\

6RWKHUHDUHQROLEUDULHVRI GHVLJQSDWWHUQV"

A:

1REXW\RXZLOOOHDUQODWHUDERXW SDWWHUQFDWDORJVZLWKOLVWVRISDWWHUQVWKDW \RXFDQDSSO\WR\RXUDSSOLFDWLRQV

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 30

ZK\GHVLJQSDWWHUQV"

3DWWHUQVDUH QRWKLQJPRUHWKDQXVLQJ 22GHVLJQSULQFLSOHV $FRPPRQPLVFRQFHSWLRQ *UDVVKRSSHUEXWLW·VPRUH VXEWOHWKDQWKDW
.ZQMVLTa 8I\\MZV[/]Z]

;SMX\QKIT,M^MTWXMZ

'HYHORSHU2ND\KPPEXWLVQ·WWKLVDOOMXVWJRRGREMHFWRULHQWHGGHVLJQ,PHDQ DVORQJDV,IROORZHQFDSVXODWLRQDQG,NQRZDERXWDEVWUDFWLRQLQKHULWDQFHDQG SRO\PRUSKLVPGR,UHDOO\QHHGWRWKLQNDERXW'HVLJQ3DWWHUQV",VQ·WLWSUHWW\ VWUDLJKWIRUZDUG",VQ·WWKLVZK\,WRRNDOOWKRVH22FRXUVHV",WKLQN'HVLJQ 3DWWHUQVDUHXVHIXOIRUSHRSOHZKRGRQ·WNQRZJRRG22GHVLJQ *XUX$KWKLVLVRQHRIWKHWUXHPLVXQGHUVWDQGLQJVRIREMHFWRULHQWHG GHYHORSPHQWWKDWE\NQRZLQJWKH22EDVLFVZHDUHDXWRPDWLFDOO\JRLQJWREHJRRGDW EXLOGLQJÁH[LEOHUHXVDEOHDQGPDLQWDLQDEOHV\VWHPV 'HYHORSHU1R" *XUX1R$VLWWXUQVRXWFRQVWUXFWLQJ22V\VWHPVWKDWKDYHWKHVHSURSHUWLHVLV QRWDOZD\VREYLRXVDQGKDVEHHQGLVFRYHUHGRQO\WKURXJKKDUGZRUN 'HYHORSHU,WKLQN,·PVWDUWLQJWRJHWLW7KHVHVRPHWLPHVQRQREYLRXVZD\VRI FRQVWUXFWLQJREMHFWRULHQWHGV\VWHPVKDYHEHHQFROOHFWHG *XUX\HVLQWRDVHWRISDWWHUQVFDOOHG'HVLJQ3DWWHUQV 'HYHORSHU6RE\NQRZLQJSDWWHUQV,FDQVNLSWKHKDUGZRUNDQGMXPSVWUDLJKWWR GHVLJQVWKDWDOZD\VZRUN" *XUX


&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 31

LQWURWR'HVLJQ3DWWHUQV

5HPHPEHUNQRZLQJ FRQFHSWVOLNHDEVWUDFWLRQ LQKHULWDQFHDQGSRO\PRUSKLVPGR QRWPDNH\RXDJRRGREMHFWRULHQWHG GHVLJQHU$GHVLJQJXUXWKLQNVDERXW KRZWRFUHDWHÁH[LEOHGHVLJQVWKDW DUHPDLQWDLQDEOHDQGWKDWFDQ FRSHZLWKFKDQJH

*XUX7KHUHDUHVRPHREMHFWRULHQWHGSULQFLSOHVWKDW XQGHUOLHWKHSDWWHUQVDQGNQRZLQJWKHVHZLOOKHOS\RX WRFRSHZKHQ\RXFDQ·WÀQGDSDWWHUQWKDWPDWFKHV\RXU SUREOHP 'HYHORSHU3ULQFLSOHV"
\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 32

\RXUGHVLJQWRROER[


VLFV KH22ED RXNQRZWRUSKLFDOO\ \ H P X VV P :HD JQE\ ODVVHVSRO\ RIXVLQJFULWDQFHLVOLNHGHVL ODWLRQ VX H S KRZLQK DQGKRZHQFD UXVW\ FRQWUDFW \RXDUHDOLWWOH DG)LUVW ZRUNV,ISXOORXW\RXU+H WKLV RQWKHVH UHYLHZWKHQVNLP -DYDDQG JDLQ FKDSWHUD

22%DVLFV

$EVWUDFWLRQ RQ (QFDSVXODWL P 3RO\PRUSKLV ,QKHULWDQFH

ƒ .QRZLQJWKH22EDVLFV GRHVQRWPDNH\RXDJRRG 22GHVLJQHU

ƒ *RRG22GHVLJQVDUH UHXVDEOHH[WHQVLEOHDQG PDLQWDLQDEOH

ƒ 3DWWHUQVVKRZ\RXKRZWR EXLOGV\VWHPVZLWKJRRG 22GHVLJQTXDOLWLHV

ƒ 3DWWHUQVDUHSURYHQREMHFW RULHQWHGH[SHULHQFH

ƒ 3DWWHUQVGRQ·WJLYH\RX

V 223ULQFLSOH

DW JDFORVHUORRN :H·OOEHWDNLQKHURDGDQGDOVR WKHVHGRZQW PRUHWRWKHOLVW DGGLQJDIHZ

 ZKDWYDULHV (QFDSVXODWH  RVLWLRQRYHU )DYRUFRPS  FH LQKHULWHQ RW LQWHUIDFHVQ 3URJUDPWRLRQV LPSOHPHQWDW

LQHVDI

FRGHWKH\JLYH\RX JHQHUDOVROXWLRQVWRGHVLJQ SUREOHPV
ƒ 3DWWHUQVDUHQ·WLQYHQWHG WKH\DUHGLVFRYHUHG

ƒ 0RVWSDWWHUQVDQG

223DWWHUQV DPLO\RIDOJRULWKPV

7KURXJKRXWWKH ERRNWKLQNDERXW KRZSDWWHUQVUHO\ RQ22EDVLFVDQG SULQFLSOHV

P

HI KH 6WUDWHJ\HGDFKRQHDQGPDNHVWWKHDOJRULWKP HQFDSVXODWHVHDEOH6WUDWHJ\OHWVVWKDWXVHLW LQWHUFKDQJ HQGHQWO\IURPFOLHQW YDU\LQGHS

2QHGRZQPDQ\WRJR



:MDD=LHGAFLK

SULQFLSOHVDGGUHVVLVVXHVRI FKDQJHLQVRIWZDUH

ƒ 0RVWSDWWHUQVDOORZVRPH SDUWRIDV\VWHPWRYDU\ LQGHSHQGHQWO\RIDOORWKHU SDUWV

ƒ :HRIWHQWU\WRWDNHZKDW YDULHVLQDV\VWHPDQG HQFDSVXODWHLW

ƒ 3DWWHUQVSURYLGHD VKDUHGODQJXDJHWKDWFDQ PD[LPL]HWKHYDOXHRI\RXU FRPPXQLFDWLRQZLWKRWKHU GHYHORSHUV

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 33

LQWURWR'HVLJQ3DWWHUQV

4M\¼[OQ^MaW]ZZQOP\JZIQV[WUM\PQVO\WLW 1\¼[aW]Z[\IVLIZLKZW[[_WZL#ITTWN\PM[WT]\QWV_WZL[ IZMNZWU\PQ[KPIX\MZ

 

  













 













  2$/ 1-%!.  !.%#) +//!-). 

 1  !/2*-&%)# *0)

 0!- 0&. (&!   -/!) !- /$*0#$/ /$!4 2!-! ''!   -*#-( /* /$%. )*/ ) %(+'!(!)//%*)   //!-). #* %)/* 4*0-    !-) "-*( /$! */$!- #045.   !1!'*+(!)/ *)./)/  //!-). #%1! 0.  .$-! 



 //!-).  %) ()4 ++'%/%*).  1*- *1!- %)$!-%/)!  ) 2. /$-%''! 2%/$ /$%. +//!-)  *./ +//!-). "*''*2 "-*(    */ 4*0- *2)  %#$ '!1!' '%--%!.  *!5. "1*-%/! -%)&  //!-) /$/ "%3! /$! .%(0'/* 0& /$/ )5/ ,0&  -%''! $!!.! 2%/$ *)   0& !(* 2. '*/! 2$!-!

\RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 34

GHVLJQSX]]OHVROXWLRQ

'HVLJQ3X]]OH6ROXWLRQ +PIZIK\MZQ[\PMIJ[\ZIK\KTI[[NWZITT\PMW\PMZKPIZIK\MZ[3QVO9]MMV 3VQOP\IVL
DEVWUDFW &KDUDFWHU :HDSRQ%HKDYLRUZHDSRQ ILJKW  VHW:HDSRQ :HDSRQ%HKDYLRUZ ^ WKLVZHDSRQ Z `

.LQJ ILJKW ^`

$&KDUDFWHU+$6$ :HDSRQ%HKDYLRU

.QLJKW ILJKW ^`

7UROO

4XHHQ ILJKW ^`

ILJKW ^`

LQWHUIDFH!! :HDSRQ%HKDYLRU XVH:HDSRQ 

%RZ$QG$UURZ%HKDYLRU

6ZRUG%HKDYLRU XVH:HDSRQ ^LPSOHPHQWVVZLQJ LQJDVZRUG`

XVH:HDSRQ ^LPSOHPHQWVVKRRW LQJDQDUURZZLWKDERZ`

.QLIH%HKDYLRU

 LPSOHPHQW MHFWFRXOG 6D\D E R < 1 $ 1RWHWKDW Q%HKDYLRULQWHUIDFHVWHRUD WKH:HDSR WXEHRIWRRWKSD SDSHUFOLSDHDEDVV PXWDWHGV



XVH:HDSRQ ^LPSOHPHQWVFXWWLQJ ZLWKDNQLIH`

$[H%HKDYLRU

XVH:HDSRQ ^LPSOHPHQWVFKRS SLQJZLWKDQD[H`

&KDSWHU

Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 1. Welcome to Design Patterns

Return to Table of Contents

Page 35

LQWURWR'HVLJQ3DWWHUQV

6ROXWLRQV 6KDUSHQ \RXU SHQFLO ?PQKPWN \PMNWTTW_QVOIZMLQ[IL^IV\IOM[WN ][QVO[]JKTI[[QVO\WXZW^QLM[XMKQÅK ,]KSJMPI^QWZ'+PWW[MITT\PI\IXXTa

R+ 0IZL\WOIQVSVW_TMLOMWN ITTL]KSJMPI^QWZ[ R, ,]KS[KIV¼\ÆaIVLY]IKSI\\PM[IUM\QUM R- +PIVOM[KIV]VQV\MV\QWVITTaINNMK\W\PMZL]KS[

R) +WLMQ[L]XTQKI\MLIKZW[[[]JKTI[[M[ R* :]V\QUMJMPI^QWZKPIVOM[IZMLQNÅK]T\ R+ ?MKIV¼\UISML]KS¼[LIVKM

 













!

#





"









#



















!

 





!



















"













&





%















 

!

#

"



"



!















 !

 









 !





!



 









 

$

6KDUSHQ \RXU SHQFLO





& 



#











 



 !





!

 

"

" 







 #

$



#





!





















!









#





&

?PI\IZM[WUMNIK\WZ[\PI\LZQ^MKPIVOMQVaW]ZIXXTQKI\QWV['AW]UQOP\ PI^MI^MZaLQNNMZMV\TQ[\J]\PMZM¼[INM_WN W]Z[4WWSNIUQTQIZ'

0\FXVWRPHUVRUXVHUVGHFLGHWKH\ZDQWVRPHWKLQJHOVHRUWKH\ZDQWQHZIXQFWLRQDOLW\ 0\FRPSDQ\GHFLGHGLWLVJRLQJZLWKDQRWKHUGDWDEDVHYHQGRUDQGLWLVDOVRSXUFKDVLQJLWVGDWD IURPDQRWKHUVXSSOLHUWKDWXVHVDGLIIHUHQWGDWDIRUPDW$UJK :HOOWHFKQRORJ\FKDQJHVDQGZH·YHJRWWRXSGDWHRXUFRGHWRPDNHXVHRISURWRFROV :H·YHOHDUQHGHQRXJKEXLOGLQJRXUV\VWHPWKDWZH·GOLNHWRJREDFNDQGGRWKLQJVDOLWWOHEHWWHU \RXDUHKHUH



Chapter 1. Welcome to Design Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Table of Contents Chapter 2. Keeping your Objects in the know.............................................. 1 Section 2.1. The Weather Monitoring application overview.......................................................................................................... 3 Section 2.2. Unpacking the WeatherData class.............................................................................................................................. 4 Section 2.3. What do we know so far ?........................................................................................................................................... 5 Section 2.4. Taking a first, misguided SWAG at the Weather Station........................................................................................... 6 Section 2.5. Sharpen your pencil.................................................................................................................................................... 6 Section 2.6. What's wrong with our implementation?................................................................................................................... 7 Section 2.7. Meet the Observer Pattern.......................................................................................................................................... 8 Section 2.8. Publishers + Subscribers = Observer Pattern............................................................................................................ 9 Section 2.9. A day in the life of the Observer Pattern................................................................................................................... 10 Section 2.10. Five minute drama: a subject for observation........................................................................................................ 12 Section 2.11. Two weeks later........................................................................................................................................................ 14 Section 2.12. The Observer Pattern defined.................................................................................................................................. 15 Section 2.13. The Observer Pattern defined: the class diagram................................................................................................... 16 Section 2.14. The power of Loose Coupling.................................................................................................................................. 17 Section 2.15. Sharpen your pencil................................................................................................................................................. 18 Section 2.16. Cubicle conversation................................................................................................................................................ 19 Section 2.17. Designing the Weather Station............................................................................................................................... 20 Section 2.18. Implementing the Weather Station......................................................................................................................... 21 Section 2.19. Implementing the Subject interface in WeatherData............................................................................................. 22 Section 2.20. Now, let's build those display elements................................................................................................................. 23 Section 2.21. There are no Dumb Questions................................................................................................................................ 23 Section 2.22. Power up the Weather Station................................................................................................................................ 24 Section 2.23. Sharpen your pencil................................................................................................................................................ 25 Section 2.24. Using Java's built-in Observer Pattern.................................................................................................................. 28 Section 2.25. How Java's built-in Observer Pattern works.......................................................................................................... 29 Section 2.26. Reworking the Weather Station with the built-in support..................................................................................... 31 Section 2.27. Now, let's rework the CurrentConditionsDisplay................................................................................................... 32 Section 2.28. Exercise: Code Magnets.......................................................................................................................................... 33 Section 2.29. Running the new code............................................................................................................................................ 34 Section 2.30. The dark side of java.util.Observable..................................................................................................................... 35 Section 2.31. Other places you'll find the Observer Pattern in the JDK...................................................................................... 36 Section 2.32. And the code............................................................................................................................................................ 37 Section 2.33. Tools for your Design Toolbox................................................................................................................................ 38 Section 2.34. Exercise: Design Principle Challenge..................................................................................................................... 39 Section 2.35. Exercise solutions: Design Principle Challenge...................................................................................................... 41 Section 2.36. Code Magnets: Exercise solutions.......................................................................................................................... 42

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 1

the Observer Pattern

.HHSLQJ\RXU5 4 4 2EMHFWVLQWKHNQRZ +H\-HUU\,·P QRWLI\LQJHYHU\RQHWKDWWKH 3DWWHUQV*URXSPHHWLQJPRYHGWR 6DWXUGD\QLJKW:H·UHJRLQJWREH WDONLQJDERXWWKH2EVHUYHU3DWWHUQ 7KDWSDWWHUQLVWKHEHVW,W·VWKH %(67-HUU\

'RQ·WPLVVRXWZKHQVRPHWKLQJLQWHUHVWLQJKDSSHQV:H¶YHJRWD SDWWHUQWKDWNHHSV\RXUREMHFWVLQWKHNQRZZKHQVRPHWKLQJWKH\PLJKWFDUHDERXWKDSSHQV 2EMHFWVFDQHYHQGHFLGHDWUXQWLPHZKHWKHUWKH\ZDQWWREHNHSWLQIRUPHG7KH2EVHUYHU 3DWWHUQLVRQHRIWKHPRVWKHDYLO\XVHGSDWWHUQVLQWKH-'.DQGLW¶VLQFUHGLEO\XVHIXO%HIRUH ZH¶UHGRQHZH¶OODOVRORRNDWRQHWRPDQ\UHODWLRQVKLSVDQGORRVHFRXSOLQJ \HDKWKDW¶VULJKW ZHVDLGFRXSOLQJ :LWK2EVHUYHU\RX¶OOEHWKHOLIHRIWKH3DWWHUQV3DUW\

WKLVLVDQHZFKDSWHU



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 2

ZHDWKHUPRQLWRULQJVWDWLRQ

&RQJUDWXODWLRQV
)NC

/ 2AMA 7EATHER 3TREET -AIN  !LLEY /+ 4ORNADO

Copyright Safari Books Online #1673621 3TATEME

NTOF7O

RK

Q WJHQHUDWLR GRXUQH[ LO X E R W G HFWH EHLQJVHO WDWLRQ ODWLRQVRQ QLWRULQJ6 R 0 J &RQJUDWX HU WK HD : HQWSHQGLQ HG DV RQRXUSDW GLWLRQV ,QWHUQHWE HG Q R DV F E H HU E WK O ZHD ZLO GOLNH VFXUUHQW HUVWDWLRQ 7KHZHDWK REMHFWZKLFKWUDFN HWULFSUHVVXUH :H· H D P KUH DW R W ' :HDWKHU LW\DQGEDU DWLQLWLDOO\SURYLGHV DQGD UHKXPLG K V X W Q LF DW R VW HU WL WL S FD WD WHP WKHUV DSSOL FUHDWHDQ HU'DWD LWLRQVZHD IRU\RXWR UUHQWFRQG OWLPHDVWKH:HDWK FX  WV HQ P HD OH U H Q \ L OD HG S  GLV HQWV XSGDW UHFDVWDOO VWUHFHQWPHDVXUHP VLPSOHIR WKHU2 HPR K W HV LU X WLRQ:HD HDWKHUVWD REMHFWDFT HUVFDQ Z S OH R DE HO G HY  VDQH[SDQ DWRWKHUG K L W LV VR WK WLQ:H·G  , K 3 HU LJ )XUWK JWKHPU HDVHDQ$ OX HO U S R G W DQ WV V 5DPDZDQ QZHDWKHUGLVSOD\ URZ FH ZULWHWKHL WKDW$3, PRGHORQ XWRVXSSO\ EXVLQHVV  DW UH FK J HD D U H OLNHIRU\R R VZHKDY JHWKHPI DPDWKLQN SD\ QGWRFKDU R 5 WH W LQ J 2 H LQ HU R Z WK J  :HD RNHG HDUH HUVDUHKR HVWSDUWZ WKHFXVWRP VH1RZIRUWKHE X H\ RQ GLVSOD\WK V DDSSOLFDWL FNRSWLRQ QDQGDOSK LJ HV G \RXLQVWR U X VHHLQJ\R RUZDUGWR :HORRNI  6LQFHUHO\

R\RX

(2 XUFHÀOHVW HU'DWDVR XUULFDQH& WK + \ HD Q : Q K H K -R KWLQJW HRYHUQLJ 36:HDU



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 3

WKHREVHUYHUSDWWHUQ


LRQVLVRQHRI &XUUHQW&RQGLWWGLVSOD\V7KH HQ HU II  WKUHHGL ZHDWKHUVWDWV XVHUFDQDOVRJHW VW DQGDIRUHFD

GLVSOD\V

+XPLGLW\ VHQVRUGHYLFH

SXOOVGDWD

&XUUHQW &RQGLWLRQV 7HPSƒ +XPLGLW\ 3UHVVXUH

7HPSHUDWXUH VHQVRUGHYLFH

:HDWKHU'DWD REMHFW :HDWKHU6WDWLRQ

'LVSOD\GHYLFH

3UHVVXUH VHQVRUGHYLFH

:HDWKHU25DPDSURYLGHV

:KDWZHLPSOHPHQW


2XUMRELIZHFKRRVHWRDFFHSWLWLVWRFUHDWHDQDSSWKDW XVHVWKH:HDWKHU'DWDREMHFWWRXSGDWHWKUHHGLVSOD\VIRU FXUUHQWFRQGLWLRQVZHDWKHUVWDWVDQGDIRUHFDVW

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 4

ZHDWKHUGDWDFODVV

=VXIKSQVO\PM?MI\PMZ,I\IKTI[[ $VSURPLVHGWKHQH[WPRUQLQJWKH:HDWKHU'DWDVRXUFHÀOHVDUULYH 3HHNLQJLQVLGHWKHFRGHWKLQJVORRNSUHWW\VWUDLJKWIRUZDUG

:HDWKHU'DWD

JHW7HPSHUDWXUH JHW+XPLGLW\ JHW3UHVVXUH PHDVXUHPHQWV&KDQJHG RWKHUPHWKRGV

HQW  PRVWUHF WXUQWKH HUDWXUHKXPLGLW\ H U V G R K W H S P P H H H W U U K R 7KHVHW HDVXUHPHQWVI HVSHFWLYHO\ KH ZHDWKHUPPHWULFSUHVVXUHU UHVHWW DULDEOHVD HWXSGDWHG Y DQGEDUR VH H K W : VKRZWRJ FDUH+2 :HGRQ·W 'DWDREMHFWNQRZWDWLRQ U 6 H U K :HDW PWKH:HDWKH LQIRIUR

HU'DWD RIWKH:HDWK 7KHGHYHORSHUV DFOXHDERXWZKDWZH V REMHFWOHIWX QHHGWRDGG 5HPHPEHUWKLV&XUUHQW&RQ 21(RIWKUHHGLIIHUHQWGLVSGLWLRQVLVMXVW OD\VFUHHQV

&XUUHQW &RQGLWLRQV 7HPSƒ +XPLGLW\ 3UHVVXUH

   7KLVPHWKRGJHWVFDOOHG  ZKHQHYHUWKHZHDWKHUPHDVXUHPHQWV  KDYHEHHQXSGDWHG     SXEOLFYRLGPHDVXUHPHQWV&KDQJHG ^ 
:HDWKHU'DWDMDYD

2XUMRELVWRLPSOHPHQWPHDVXUHPHQWV&KDQJHG  VRWKDWLWXSGDWHVWKHWKUHHGLVSOD\VIRUFXUUHQW FRQGLWLRQVZHDWKHUVWDWVDQGIRUHFDVW

'LVSOD\GHYLFH



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 5

WKHREVHUYHUSDWWHUQ

?PI\LW_MSVW_[WNIZ '
5 7KH:HDWKHU'DWDFODVVKDVJHWWHUPHWKRGVIRUWKUHH

JHW7HPSHUDWXUH JHW+XPLGLW\ JHW3UHVVXUH

5 7KHPHDVXUHPHQWV&KDQJHG PHWKRGLVFDOOHGDQ\

PHDVXUHPHQWV&KDQJHG

PHDVXUHPHQWYDOXHVWHPSHUDWXUHKXPLGLW\DQG EDURPHWULFSUHVVXUH

WLPHQHZZHDWKHUPHDVXUHPHQWGDWDLVDYDLODEOH :H GRQ¶WNQRZRUFDUHKRZWKLVPHWKRGLVFDOOHGZHMXVW NQRZWKDWLWLV

:HDWKHU 6WDWV $YJWHPSƒ 0LQWHPSƒ 0D[WHPSƒ

5 :HQHHGWRLPSOHPHQWWKUHHGLVSOD\HOHPHQWVWKDW

XVHWKHZHDWKHUGDWDDFXUUHQWFRQGLWLRQVGLVSOD\D VWDWLVWLFVGLVSOD\DQGDIRUHFDVWGLVSOD\7KHVHGLVSOD\V PXVWEHXSGDWHGHDFKWLPH:HDWKHU'DWDKDVQHZ PHDVXUHPHQWV

&XUUHQW &RQGLWLRQV 7HPSƒ +XPLGLW\ 3UHVVXUH

'LVSOD\7ZR

)RUHFDVW

'LVSOD\2QH

77 7

'LVSOD\7KUHH

5 7KHV\VWHPPXVWEHH[SDQGDEOH²RWKHUGHYHORSHUV

FDQFUHDWHQHZFXVWRPGLVSOD\HOHPHQWVDQGXVHUV FDQDGGRUUHPRYHDVPDQ\GLVSOD\HOHPHQWVDVWKH\ ZDQWWRWKHDSSOLFDWLRQ&XUUHQWO\ZHNQRZDERXW RQO\WKHLQLWLDOWKUHHGLVSOD\W\SHV FXUUHQWFRQGLWLRQV VWDWLVWLFVDQGIRUHFDVW 

7 )XWXUHGLVSOD\V

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 6

¿UVWWU\ZLWKWKHZHDWKHUVWDWLRQ


SXEOLFFODVV:HDWKHU'DWD^ LQVWDQFHYDULDEOHGHFODUDWLRQV SXEOLFYRLGPHDVXUHPHQWV&KDQJHG ^ ÀRDWWHPS JHW7HPSHUDWXUH  ÀRDWKXPLGLW\ JHW+XPLGLW\  ÀRDWSUHVVXUH JHW3UHVVXUH 

*UDEWKHPRVWUHFHQWPHDVXUHPHWV E\FDOOLQJWKH:HDWKHU'DWD·VJHWWHU PHWKRGV DOUHDG\LPSOHPHQWHG 

FXUUHQW&RQGLWLRQV'LVSOD\XSGDWH WHPSKXPLGLW\SUHVVXUH  VWDWLVWLFV'LVSOD\XSGDWH WHPSKXPLGLW\SUHVVXUH  IRUHFDVW'LVSOD\XSGDWH WHPSKXPLGLW\SUHVVXUH  ` RWKHU:HDWKHU'DWDPHWKRGVKHUH `

1RZXSGDWH WKHGLVSOD\V

\HOHPHQWWR &DOOHDFKGLVSODOD\SDVVLQJLWWKH VS GL XSGDWHLWV DVXUHPHQWV PRVWUHFHQWPH

6KDUSHQ \RXU SHQFLO *I[MLWVW]ZÅZ[\QUXTMUMV\I\QWV_PQKPWN \PMNWTTW_QVOIXXTa' +PWW[MITT\PI\IXXTa

R,
R) ?MIZMKWLQVO\WKWVKZM\M

KWUUWVQV\MZNIKM

QUXTMUMV\I\QWV[VW\QV\MZNIKM[

R* .WZM^MZaVM_LQ[XTIaMTMUMV\_MVMML \WIT\MZKWLM

R+ ?MPI^MVW_Ia\WILLWZZMUW^M LQ[XTIaMTMUMV\[I\Z]V\QUM

R- ?MPI^MV¼\MVKIX[]TI\ML\PMXIZ\\PI\ KPIVOM[

R. ?MIZM^QWTI\QVOMVKIX[]TI\QWVWN \PM ?MI\PMZ,I\IKTI[[

'HILQLWLRQRI6:$*6FLHQWLILF:LOG$

*XHVV



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 7

WKHREVHUYHUSDWWHUQ

?PI\¼[_ZWVO_Q\PW]ZQUXTMUMV\I\QWV' 7KLQNEDFNWRDOOWKRVH&KDSWHUFRQFHSWVDQGSULQFLSOHV

SXEOLFYRLGPHDVXUHPHQWV&KDQJHG ^ ÀRDWWHPS JHW7HPSHUDWXUH  ÀRDWKXPLGLW\ JHW+XPLGLW\  ÀRDWSUHVVXUH JHW3UHVVXUH 

$UHDRIFKDQJHZHQHHG WRHQFDSVXODWHWKLV

FXUUHQW&RQGLWLRQV'LVSOD\XSGDWH WHPSKXPLGLW\SUHVVXUH  VWDWLVWLFV'LVSOD\XSGDWH WHPSKXPLGLW\SUHVVXUH  IRUHFDVW'LVSOD\XSGDWH WHPSKXPLGLW\SUHVVXUH  `

%\FRGLQJWRFRQFUHWHLPSOHPHQWDWLRQV ZHKDYHQRZD\WRDGGRUUHPRYH RWKHUGLVSOD\HOHPHQWVZLWKRXWPDNLQJ FKDQJHVWRWKHSURJUDP

$WOHDVWZHVHHPWREHXVLQJD FRPPRQLQWHUIDFHWRWDONWRWKH GLVSOD\HOHPHQWVWKH\DOOKDYHDQ XSGDWH PHWKRGWDNHVWKHWHPS KXPLGLW\DQGSUHVVXUHYDOXHV

8PP,NQRZ,·PQHZ KHUHEXWJLYHQWKDWZHDUHLQ WKH2EVHUYHU3DWWHUQFKDSWHU PD\EHZHVKRXOGVWDUWXVLQJLW"

:H·OOWDNHDORRNDW 2EVHUYHUWKHQFRPH EDFNDQGÀJXUHRXWKRZ WRDSSO\LWWRWKHZHDWKHU PRQLWRULQJDSS

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Page 8

Return to Table of Contents

PHHWWKHREVHUYHUSDWWHUQ

5MM\\PM7J[MZ ^MZ8I\\MZV
)VM_[XIXMZX]JTQ[PMZOWM[QV\WJ][QVM[[IVLJMOQV[ X]JTQ[PQVOVM_[XIXMZ[



AW][]J[KZQJM\WIXIZ\QK]TIZX]JTQ[PMZIVLM^MZa\QUM \PMZM¼[IVM_MLQ\QWVQ\OM\[LMTQ^MZML\WaW])[TWVOI[ aW]ZMUIQVI[]J[KZQJMZaW]OM\VM_VM_[XIXMZ[



AW]]V[]J[KZQJM_PMVaW]LWV¼\_IV\XIXMZ[IVaUWZM IVL\PMa[\WXJMQVOLMTQ^MZML



?PQTM\PMX]JTQ[PMZZMUIQV[QVJ][QVM[[XMWXTMPW\MT[ IQZTQVM[IVLW\PMZJ][QVM[[M[KWV[\IV\Ta[]J[KZQJMIVL ]V[]J[KZQJM\W\PMVM_[XIXMZ

0LVVZKDW·VJRLQJRQ LQ2EMHFWYLOOH"1RZD\RI FRXUVHZHVXEVFULEH



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 9

WKHREVHUYHUSDWWHUQ

8]JTQ[PMZ[;]J[KZQJMZ[%7J[MZ ^MZ8I\\MZV ,I\RXXQGHUVWDQGQHZVSDSHUVXEVFULSWLRQV\RXSUHWW\PXFK XQGHUVWDQGWKH2EVHUYHU3DWWHUQRQO\ZHFDOOWKHSXEOLVKHU WKH68%-(&7DQGWKHVXEVFULEHUVWKH2%6(59(56 /HW·VWDNHDFORVHUORRN

7KHREVHUYHUVKDYHVXEVFULEHGWR UHJLVWHUHGZLWK WKH6XEMHFW WRUHFHLYHXSGDWHVZKHQWKH 6XEMHFW·VGDWDFKDQJHV

HFWFKDQJHV :KHQGDWDLQWKH6XEM LHG WLI QR DUH UV WKHREVHUYH

FWPDQDJHV 6XEMHFWREMHG DWD RI W EL VRPH

' R

  LQW



FW2EMH

1HZGDWDYDOXHVDUH FRPPXQLFDWHGWRWKH REVHUYHUVLQVRPHIRUP ZKHQWKH\FKDQJH

F ' XFN2EMH

W

W &D W2EMHF



FW

6X EMH

W HF J2EM

0R

HF XVH2EM

W

2EVHUYHU2EMHFWV

DQ 7KLVREMHFWLVQ·W HVQ·W GR LW R V REVHUYHU WKH Q KH Z LHG JHWQRWLI DQJHV 6XEMHFW·VGDWDFK

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 10

DGD\LQWKHOLIHRIWKHREVHUYHUSDWWHUQ

)LIaQV\PMTQNMWN\PM7J[MZ ^MZ8I\\MZV

'XFNUHDOO\ZDQWVLQRQWKH DFWLRQWKRVHLQWV6XEMHFWLV VHQGLQJRXWZKHQHYHULWVVWDWH FKDQJHVORRNSUHWW\LQWHUHVWLQJ

7KH'XFNREMHFWLVQRZDQ RIÀFLDOREVHUYHU 'XFNLVSV\FKHGKH·VRQWKH OLVWDQGLVZDLWLQJZLWKJUHDW DQWLFLSDWLRQIRUWKHQH[W QRWLÀFDWLRQVRKHFDQJHWDQLQW

W HF

FW

J2EM

F ' XFN2EMH

W &D W2EMHF

0R

W

HF XVH2EM

W

2EVHUYHUV



6X EMH

LQW

' R

W HF J2EM

FW

$'XFNREMHFWFRPHVDORQJ DQGWHOOVWKH6XEMHFWWKDW LWZDQWVWREHFRPHDQ REVHUYHU

' R

µ  PH H LE U F V LQW 6X E EMH VX FW2EMH U H LVW HJ ´U

FW2EMH

F ' XFN2EMH

0R

W

W &D W2EMHF

HF XVH2EM

W

2EVHUYHUV



6X EMH

LQW

FW



7KH6XEMHFWJHWVDQHZ GDWDYDOXH

FW2EMH

1RZ'XFNDQGDOOWKHUHVWRIWKH REVHUYHUVJHWDQRWLÀFDWLRQWKDW WKH6XEMHFWKDVFKDQJHG

 

' R

J2EM

W HF

 F ' XFN2EMH

0R

W

W &D W2EMHF

HF XVH2EM

W

2EVHUYHUV



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 11

WKHREVHUYHUSDWWHUQ



6X EMH

LQW

' R

J2EM

W HF

FW

7KH0RXVHREMHFWDVNVWREH UHPRYHGDVDQREVHUYHU

FW2EMH

7KH0RXVHREMHFWKDVEHHQ JHWWLQJLQWVIRUDJHVDQGLVWLUHG RILWVRLWGHFLGHVLW·VWLPHWR VWRSEHLQJDQREVHUYHU

´UH PR YH FW X ' QV XFN2EMH XE VFU LEH P Hµ 0R

W &D W2EMHF

HF XVH2EM

W

2EVHUYHUV

 ' R

LQW

W HF

FW2EMH

7KH6XEMHFWDFNQRZOHGJHVWKH 0RXVH·VUHTXHVWDQGUHPRYHVLW IURPWKHVHWRIREVHUYHUV

F ' XFN2EMH

0R

J2EM

FW

0RXVHLVRXWWDKHUH

6X EMH

HF XVH2EM

W

W &D W2EMHF

W

2EVHUYHUV

7KH6XEMHFWKDVDQRWKHU QHZLQW 6X EMH

LQW

FW

$OOWKHREVHUYHUVJHWDQRWKHU QRWLÀFDWLRQH[FHSWIRUWKH 0RXVHZKRLVQRORQJHULQFOXGHG 'RQ·WWHOODQ\RQHEXWWKH0RXVH VHFUHWO\PLVVHVWKRVHLQWV PD\EHLW·OODVNWREHDQREVHUYHU DJDLQVRPHGD\





FW2EMH

 

' R

F ' XFN2EMH

0R

HF XVH2EM

W

J2EM

W HF

W &D W2EMHF

W 2EVHUYHUV

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 12

¿YHPLQXWHGUDPD

.Q^MUQV]\MLZIUI"I[]JRMK\NWZWJ[MZ ^I\QWV ,QWRGD\·VVNLWWZRSRVWEXEEOHVRIWZDUHGHYHORSHUV HQFRXQWHUDUHDOOLYHKHDGKXQWHU 7KLVLV 5RQ,·PORRNLQJIRUD -DYDGHYHORSPHQWSRVLWLRQ,·YH JRWÀYH\HDUVH[SHULHQFHDQG

8K\HDK \RXDQGHYHU\ERG\ HOVHEDE\,·PSXWWLQJ \RXRQP\OLVWRI-DYD GHYHORSHUVGRQ·WFDOOPH ,·OOFDOO\RX

 +HDGKXQWHU6XEMHFW

 ,·OODGG\RXWRWKHOLVW \RX·OONQRZDORQJZLWK HYHU\RQHHOVH

6RIWZDUH 'HYHORSHU +L,·P-LOO,·YH ZULWWHQDORWRI(-% V\VWHPV,·PLQWHUHVWHG LQDQ\MRE\RX·YHJRWZLWK -DYDGHYHORSPHQW

  6RIWZDUH 'HYHORSHU 

6XEMHFW

&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 13

WKHREVHUYHUSDWWHUQ



0HDQZKLOHIRU5RQDQG-LOOOLIHJRHV RQLID-DYDMREFRPHVDORQJWKH\·OO JHWQRWLÀHGDIWHUDOOWKH\DUHRE VHUYHUV

7KDQNV,·OO VHQGP\UHVXPH ULJKWRYHU 7KLVJX\LVDUHDOMHUN ZKRQHHGVKLP,·P ORRNLQJIRUP\RZQMRE

+H\ REVHUYHUVWKHUH·V D-DYDRSHQLQJGRZQDW -DYD%HDQV58VMXPS RQLW'RQ·WEORZLW %ZDKDKDPRQH\ LQWKHEDQNEDE\

 2EVHUYHU 2EVHUYHU

 6XEMHFW $UJKKK0DUNP\ ZRUGV-LOO\RX·OOQHYHUZRUN LQWKLVWRZQDJDLQLI,KDYH DQ\WKLQJWRGRZLWKLW
-LOOODQGVKHURZQMRE
2EVHUYHU

!

6XEMHFW \RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Page 14

Return to Table of Contents

WKHREVHUYHUSDWWHUQGH¿QHG

<_W_MMS[TI\MZ

-LOO·VORYLQJOLIHDQGQRORQJHUDQREVHUYHU 6KH·VDOVRHQMR\LQJWKHQLFHIDWVLJQLQJ ERQXVWKDWVKHJRWEHFDXVHWKHFRPSDQ\ GLGQ·WKDYHWRSD\DKHDGKXQWHU

%XWZKDWKDVEHFRPHRIRXUGHDU5RQ":HKHDU KH·VEHDWLQJWKHKHDGKXQWHUDWKLVRZQJDPH +H·VQRWRQO\VWLOODQREVHUYHUKH·VJRWKLVRZQ FDOOOLVWQRZDQGKHLVQRWLI\LQJKLVRZQREVHUYHUV 5RQ·VDVXEMHFWDQGDQREVHUYHUDOOLQRQH



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 15

WKHREVHUYHUSDWWHUQ



7KH2EVHUYHU3DWWHUQ GHILQHVDRQHWRPDQ\ UHODWLRQVKLSEHWZHHQDVHW RIREMHFWV

,ETSRELATETHISDEFINITIONTOHOWWEVEBEENTALKINGABOUTTHE PATTERN

21(720$1<5(/$7,216+,3

:KHQWKHVWDWHRIRQH REMHFWFKDQJHVDOORILWV GHSHQGHQWVDUHQRWLILHG

2EMHFWWKDW KROGVVWDWH   

' R

J2EM

W HF

 F ' XFN2EMH

0R

W

W &D W2EMHF

HF XVH2EM

$XWRPDWLFXSGDWHQRWLILFDWLRQ

W

2EVHUYHUV

W2EMHFW V

LQW

FW2EMH

'HSHQGHQ

6X EMH

FW



4HESUBJECTANDOBSERVERSDEFINETHEONE TO MANYRELATIONSHIP 4HEOBSERVERSAREDEPENDENTONTHESUBJECTSUCHTHATWHENTHE SUBJECTSSTATECHANGES THEOBSERVERSGETNOTIFIED$EPENDINGON THESTYLEOFNOTIFICATION THEOBSERVERMAYALSOBEUPDATEDWITH NEWVALUES !SYOULLDISCOVER THEREAREAFEWDIFFERENTWAYSTOIMPLEMENT THE/BSERVER0ATTERNBUTMOSTREVOLVEAROUNDACLASSDESIGNTHAT INCLUDES3UBJECTAND/BSERVERINTERFACES ,ETSTAKEALOOK \RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 16

ORRVHFRXSOLQJ


VHUYHUVQHHG $OOSRWHQWLDOREKH 2EVHUYHU W QW WRLPSOHPH LVLQWHUIDFH LQWHUIDFH7K KRGXSGDWH  MXVWKDVRQHPHW ZKHQWKH WKDWJHWVFDOOHG DQJHV 6XEMHFW·VVWDWHFK

(DFKVXEMHFW FDQKDYHPDQ\ REVHUYHUV OBSERVERS

LQWHUIDFH!!

LQWHUIDFH!!

6XEMHFW

2EVHUYHU

UHJLVWHU2EVHUYHU

XSGDWH

UHPRYH2EVHUYHU QRWLI\2EVHUYHUV

&RQFUHWH6XEMHFW

SUBJECT

XSGDWH

UHPRYH2EVHUYHU ^`

RWKHU2EVHUYHUVSHFLILF

ZD\V QRWLI\2EVHUYHUV ^` $FRQFUHWHVXEMHFWDO W MHF XE 6 KH VW LPSOHPHQW JHW6WDWH LRQWR LQWHUIDFH,QDGGLWPR VHW6WDWH YH WKHUHJLVWHUDQGUH WHVXEMHFW PHWKRGVWKHFRQFUH\2EVHUYHUV  LPSOHPHQWVDQRWLIHGWRXSGDWH PHWKRGWKDWLVXV VHUYHUV HFWPD\ 7KHFRQFUHWHVXEM DOOWKHFXUUHQWRE QJHV IRU GV KR HW P YH KD KD DOVR ZKHQHYHUVWDWHF LWVVWDWH QJ WL HW J QG D VHWWLQJ HU  ODW LV WK W RX PRUHDE

Q:

Q:

A:

A:

7HATDOESTHISHAVETODO WITHONE TO MANYRELATIONSHIPS

7ITHTHE/BSERVERPATTERN THE 3UBJECTISTHEOBJECTTHATCONTAINSTHE STATEANDCONTROLSIT3O THEREIS/.% SUBJECTWITHSTATE4HEOBSERVERS ON THEOTHERHAND USETHESTATE EVEN IFTHEYDONTOWNIT4HEREAREMANY OBSERVERSANDTHEYRELYONTHE3UBJECT TOTELLTHEMWHENITSSTATECHANGES 3OTHEREISARELATIONSHIPBETWEENTHE /.%3UBJECTTOTHE-!.9/BSERVERS



&RQFUHWH2EVHUYHU

UHJLVWHU2EVHUYHU ^`

PHWKRGV

&RQFUHWHREVHUYHUVFDQEH DQ\FODVVWKDWLPSOHPHQWVWKH 2EVHUYHULQWHUIDFH(DFK REVHUYHUUHJLVWHUVZLWKDFRQFUHWH VXEMHFWWRUHFHLYHXSGDWHV

(OWDOESDEPENDENCECOME INTOTHIS

"ECAUSETHESUBJECTISTHESOLE OWNEROFTHATDATA THEOBSERVERSARE DEPENDENTONTHESUBJECTTOUPDATE THEMWHENTHEDATACHANGES4HIS LEADSTOACLEANER//DESIGNTHAN ALLOWINGMANYOBJECTSTOCONTROLTHE SAMEDATA

&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Page 17

Return to Table of Contents

WKHREVHUYHUSDWWHUQ


+RZPDQ\ V GLIIHUHQWNLQG RX RIFKDQJHFDQ\ LGHQWLI\KHUH"

?MKIVZM][M[]JRMK\[WZWJ[MZ^MZ[QVLMXMVLMV\TaWN MIKPW\PMZ1N _M PI^MIVW\PMZ][MNWZI[]JRMK\WZIVWJ[MZ^MZ_MKIVMI[QTaZM][M\PMUJMKI][M\PM \_WIZMV¼\\QOP\TaKW]XTML +PIVOM[\WMQ\PMZ\PM[]JRMK\WZIVWJ[MZ^MZ_QTTVW\INNMK\\PMW\PMZ *MKI][M\PM\_WIZMTWW[MTaKW]XTML_MIZMNZMM\WUISMKPIVOM[\WMQ\PMZI[TWVOI[ \PMWJRMK\[[\QTTUMM\\PMQZWJTQOI\QWV[\WQUXTMUMV\\PM[]JRMK\WZWJ[MZ^MZQV\MZNIKM[

'HVLJQ3ULQFLSOH 6WULYHIRUORRVHO\FRXSOHGGHVLJQV EHWZHHQREMHFWVWKDWLQWHUDFW

/RRVHO\FRXSOHGGHVLJQVDOORZXVWREXLOGÁH[LEOH22 V\VWHPVWKDWFDQKDQGOHFKDQJHEHFDXVHWKH\PLQLPL]H WKHLQWHUGHSHQGHQF\EHWZHHQREMHFWV

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Page 18

Return to Table of Contents

SODQQLQJWKHZHDWKHUVWDWLRQ

6KDUSHQ \RXU SHQFLO %HIRUHPRYLQJRQWU\VNHWFKLQJRXWWKHFODVVHV\RX¶OOQHHGWRLPSOHPHQWWKH :HDWKHU6WDWLRQLQFOXGLQJWKH:HDWKHU'DWDFODVVDQGLWVGLVSOD\HOHPHQWV 0DNHVXUH\RXUGLDJUDPVKRZVKRZDOOWKHSLHFHV¿WWRJHWKHUDQGDOVRKRZ DQRWKHUGHYHORSHUPLJKWLPSOHPHQWKHURZQGLVSOD\HOHPHQW ,I\RXQHHGDOLWWOHKHOSUHDGWKHQH[WSDJH\RXUWHDPPDWHVDUHDOUHDG\ WDONLQJDERXWKRZWRGHVLJQWKH:HDWKHU6WDWLRQ



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 19

WKHREVHUYHUSDWWHUQ

+]JQKTMKWV^MZ[I\QWV %DFNWRWKH:HDWKHU6WDWLRQSURMHFW\RXUWHDPPDWHVKDYH DOUHDG\VWDUWHGWKLQNLQJWKURXJKWKHSUREOHP

6XH

6RKRZDUHZH JRLQJWREXLOGWKLVWKLQJ"

0DU\"?MTTQ\PMTX[\WSVW__M¼ZM][QVO\PM7J[MZ^MZ8I\\MZV 6XH":QOP\J]\PW_LW_MIXXTaQ\' 0DU\"0UU4M\¼[TWWSI\\PMLMÅVQ\QWVIOIQV" 4HE/BSERVER0ATTERNDEFINESAONE TO MANYDEPENDENCYBETWEENOBJECTSSOTHATWHENONE OBJECTCHANGESSTATE ALLITSDEPENDENTSARENOTIFIEDANDUPDATEDAUTOMATICALLY

0DU\"


Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 20

GHVLJQLQJWKHZHDWKHUVWDWLRQ

,M[QOVQVO\PM?MI\PMZ;\I\QWV 0W_LWM[\PQ[LQIOZIUKWUXIZM_Q\PaW]Z['

UIDFH FWLQWHLDU H M E X V  U LO X +HUH·VRRXOGORRNIDP WKLVVK

/HW·VDOVRFUHDWHDQ LQWHUIDFHIRUDOOGLVSOD\ HOHPHQWVWRLPSOHPHQW7KH GLVSOD\HOHPHQWVMXVWQHHGWR LPSOHPHQWDGLVSOD\ PHWKRG

RPSRQHQWV $OORXUZHDWKHUFEVHUYHU 2 LPSOHPHQWWKH JLYHVWKH LQWHUIDFH7KLV RQLQWHUIDFH 6XEMHFWDFRPP LWFRPHVWLPH WRWDONWRZKHQREVHUYHUV WRXSGDWHWKH OBSERVERS

LQWHUIDFH!!

LQWHUIDFH!!

LQWHUIDFH!!

'LVSOD\(OHPHQW

2EVHUYHU

6XEMHFW UHJLVWHU2EVHUYHU

GLVSOD\

XSGDWH

UHPRYH2EVHUYHU QRWLI\2EVHUYHUV

&XUUHQW&RQGLWLRQV JE SUB

:HDWKHU'DWD

CT

XSGDWH

7KLUG3DUW\'LVSOD\

GLVSOD\ ^GLVSOD\FXUUHQW

XSGDWH

PHDVXUHPHQWV`

UHJLVWHU2EVHUYHU 

GLVSOD\ ^GLVSOD\

UHPRYH2EVHUYHU 

VRPHWKLQJHOVHEDVHGRQ PHDVXUHPHQWV`

QRWLI\2EVHUYHUV JHW7HPSHUDWXUH JHW+XPLGLW\ JHW3UHVVXUH PHDVXUHPHQWV&KDQJHG

7KLVGLVSOD\HOHPHQW VKRZVWKHFXUUHQW PHDVXUHPHQWVIURPWK :HDWKHU'DWDREMHFW H

:HDWKHU'DWDQRZ LPSOHPHQWVWKH 6XEMHFWLQWHUIDFH

6WDWLVWLFV'LVSOD\ XSGDWH  GLVSOD\ ^GLVSOD\WKHDYHU DJHPLQDQGPD[PHDVXUH PHQWV`

7KLVRQHNHHSVWUDFN RIWKHPLQDYJPD[ PHDVXUHPHQWVDQG GLVSOD\VWKHP

)RUHFDVW'LVSOD\ XSGDWH GLVSOD\ ^GLVSOD\WKH

'HYHORSHUV FDQLPSOHPHQW WKH2EVHUYHU DQG'LVSOD\ LQWHUIDFHVWR FUHDWHWKHLURZQ GLVSOD\HOHPHQW

IRUHFDVW`

HU 7KLVGLVSOD\VKRZVWKHZHDWK WHU RPH EDU KH QW GR DVH VWE IRUHFD 7KHVHWKUHHGLVSOD\HOHPHQWVVKRXOGKDYHDSRLQWHUWR :HDWKHU'DWDODEHOHG´VXEMHFWµWRREXWER\ZRXOG WKLVGLDJUDPVWDUWWRORRNOLNHVSDJKHWWLLIWKH\GLG 

&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 21

WKHREVHUYHUSDWWHUQ

1UXTMUMV\QVO\PM?MI\PMZ;\I\QWV ?M¼ZMOWQVO\W[\IZ\W]ZQUXTMUMV\I\QWV][QVO\PMKTI[[LQIOZIUIVLNWTTW_QVO5IZa IVL;]M¼[TMILNZWUINM_XIOM[JIKSAW]¼TT[MMTI\MZQV\PQ[KPIX\MZ\PI\2I^I XZW^QLM[[WUMJ]QT\QV[]XXWZ\NWZ\PM7J[MZ^MZXI\\MZVPW_M^MZ_M¼ZMOWQVO\WOM\ W]ZPIVL[LQZ\aIVLZWTTW]ZW_VNWZVW_?PQTMQV[WUMKI[M[aW]KIVUISM][MWN  2I^I¼[J]QT\QV[]XXWZ\QVITW\WN KI[M[Q\¼[UWZMÆM`QJTM\WJ]QTLaW]ZW_VIVLQ\¼[ VW\ITT\PI\PIZL;WTM\¼[OM\[\IZ\ML_Q\P\PMQV\MZNIKM["

%RWKRIWKHVHPHWKRGVWDNHDQ

SXEOLFLQWHUIDFH6XEMHFW^ 2EVHUYHUDVDQDUJXPHQWWKDWLVWKH SXEOLFYRLGUHJLVWHU2EVHUYHU 2EVHUYHUR  2EVHUYHUWREHUHJLVWHUHGRUUHPRYHG SXEOLFYRLGUHPRYH2EVHUYHU 2EVHUYHUR  SXEOLFYRLGQRWLI\2EVHUYHUV  7KLVPHWKRGLVFDOOHGWRQRWLI\DOOREVHUYHUV `

ZKHQWKH6XEMHFW·VVWDWHKDVFKDQJHG

SXEOLFLQWHUIDFH2EVHUYHU^ SXEOLFYRLGXSGDWH ÀRDWWHPSÀRDWKXPLGLW\ÀRDWSUHVVXUH  `

7KHVHDUHWKHVWDWHYDOXHVWKH2EVHUYHUVJHWIURP WKH6XEMHFWZKHQDZHDWKHUPHDVXUHPHQWFKDQJHV SXEOLFLQWHUIDFH'LVSOD\(OHPHQW^ SXEOLFYRLGGLVSOD\  `

7KH2EVHUYHULQWHUIDFHLV LPSOHPHQWHGE\DOOREVHUYHUV VRWKH\DOOKDYHWRLPSOHPHQW WKHXSGDWH PHWKRG+HUH ZH·UHIROORZLQJ0DU\DQG 6XH·VOHDGDQGSDVVLQJWKH PHDVXUHPHQWVWRWKHREVHUYHUV

7KH'LVSOD\(OHPHQWLQWHUIDFHMXVWLQFOXGHV RQHPHWKRGGLVSOD\ WKDWZHZLOOFDOOZKHQ WKHGLVSOD\HOHPHQWQHHGVWREHGLVSOD\HG

YiX`e gfn\i 0DU\DQG6XHWKRXJKWWKDWSDVVLQJWKHPHDVXUHPHQWVGLUHFWO\WRWKH REVHUYHUVZDVWKHPRVWVWUDLJKWIRUZDUGPHWKRGRIXSGDWLQJVWDWH'R \RXWKLQNWKLVLVZLVH"+LQWLVWKLVDQDUHDRIWKHDSSOLFDWLRQWKDW PLJKWFKDQJHLQWKHIXWXUH",ILWGLGFKDQJHZRXOGWKHFKDQJHEHZHOO HQFDSVXODWHGRUZRXOGLWUHTXLUHFKDQJHVLQPDQ\SDUWVRIWKHFRGH" &DQ\RXWKLQNRIRWKHUZD\VWRDSSURDFKWKHSUREOHPRISDVVLQJWKH XSGDWHGVWDWHWRWKHREVHUYHUV" 'RQ¶WZRUU\ZH¶OOFRPHEDFNWRWKLVGHVLJQGHFLVLRQDIWHUZH¿QLVKWKH LQLWLDOLPSOHPHQWDWLRQ \RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 22

LPSOHPHQWLQJWKHZHDWKHUVWDWLRQ

1UXTMUMV\QVO\PM;]JRMK\QV\MZNIKMQV ?MI\PMZ,I\I

+HUHZHLPSOHPHQWWKH6XEMHFW,QWHUIDFH

:MUMUJMZW]ZÅZ[\I\\MUX\I\QUXTMUMV\QVO\PM?MI\PMZ,I\IKTI[[I\\PM JMOQVVQVOWN \PMKPIX\MZ'AW]UQOP\_IV\\WZMNZM[PaW]ZUMUWZa6W_ Q\¼[\QUM\WOWJIKSIVLLW\PQVO[_Q\P\PM7J[MZ^MZ8I\\MZVQVUQVL

5(0(0%(5ZHGRQ·WSURYLGH LPSRUWDQGSDFNDJHVWDWHPHQWVLQ WKHFRGHOLVWLQJV*HWWKHFRPSOHWH VRXUFHFRGHIURPWKHZLFNHGO\VPDUW ZHEVLWH
SXEOLFFODVV:HDWKHU'DWDLPSOHPHQWV6XEMHFW^ :HDWKHU'DWDQRZLPSOHPHQWV SULYDWH$UUD\/LVWREVHUYHUV WKH6XEMHFWLQWHUIDFH SULYDWHÀRDWWHPSHUDWXUH SULYDWHÀRDWKXPLGLW\ R :H·YHDGGHGDQ$UUD\/LVWW SULYDWHÀRDWSUHVVXUH ZH DQG UV UYH EVH H2 WK KROG  RU FUHDWHLWLQWKHFRQVWUXFW SXEOLF:HDWKHU'DWD ^ REVHUYHUV QHZ$UUD\/LVW  `  :KHQDQREVHUYHUUHJLVWHUVZHMXVW SXEOLFYRLGUHJLVWHU2EVHUYHU 2EVHUYHUR ^ DGGLWWRWKHHQGRIWKHOLVW REVHUYHUVDGG R  ` /LNHZLVHZKHQDQREVHUYHUZDQWVWRXQUHJLVWHU  ZHMXVWWDNHLWRIIWKHOLVW SXEOLFYRLGUHPRYH2EVHUYHU 2EVHUYHUR ^ LQWL REVHUYHUVLQGH[2I R  LI L!  ^ +HUH·VWKHIXQSDUWWKLVLVZKHUHZH REVHUYHUVUHPRYH L  HREVHUYHUVDERXWWKHVWDWH WHOODOOWK ` KH\DUHDOO2EVHUYHUVZH %HFDXVHW ` NQRZWKH\DOOLPSOHPHQWXSGDWH VR  ZHNQRZKRZWRQRWLI\WKHP SXEOLFYRLGQRWLI\2EVHUYHUV ^ IRU LQWL LREVHUYHUVVL]H L ^ 2EVHUYHUREVHUYHU  2EVHUYHU REVHUYHUVJHW L  REVHUYHUXSGDWH WHPSHUDWXUHKXPLGLW\SUHVVXUH  ` Q ` 2EVHUYHUVZKHWV HQ :HQRWLI\WKH P UH VX HD  P G ZHJHWXSGDWH SXEOLFYRLGPHDVXUHPHQWV&KDQJHG ^ WKHU6WDWLRQ IURPWKH:HD QRWLI\2EVHUYHUV  `  SXEOLFYRLGVHW0HDVXUHPHQWV ÀRDWWHPSHUDWXUHÀRDWKXPLGLW\ÀRDWSUHVVXUH ^ WKLVWHPSHUDWXUH WHPSHUDWXUH WKLVKXPLGLW\ KXPLGLW\ 2ND\ZKLOHZHZDQWHGWRVKLSDQLFHOLWWOH WKLVSUHVVXUH SUHVVXUH ZHDWKHUVWDWLRQZLWKHDFKERRNWKHSXEOLVKHU PHDVXUHPHQWV&KDQJHG  ZRXOGQ·WJRIRULW6RUDWKHUWKDQUHDGLQJ ` DFWXDOZHDWKHUGDWDRIIDGHYLFHZH·UH  JRLQJWRXVHWKLVPHWKRGWRWHVWRXUGLVSOD\ RWKHU:HDWKHU'DWDPHWKRGVKHUH HOHPHQWV2UIRUIXQ\RXFRXOGZULWHFRGH `

WRJUDEPHDVXUHPHQWVRIIWKHZHE



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 23

WKHREVHUYHUSDWWHUQ

6W_TM\¼[J]QTL\PW[MLQ[XTIaMTMUMV\[ 6W_\PI\_M¼^MOW\W]Z?MI\PMZ,I\IKTI[[[\ZIQOP\MVMLW]\Q\¼[\QUM\WJ]QTL\PM ,Q[XTIa-TMUMV\[?MI\PMZ7:IUIWZLMZML\PZMM"\PMK]ZZMV\KWVLQ\QWV[LQ[XTIa\PM [\I\Q[\QK[LQ[XTIaIVL\PMNWZMKI[\LQ[XTIa4M\¼[\ISMITWWSI\\PMK]ZZMV\KWVLQ\QWV[ LQ[XTIa#WVKMaW]PI^MIOWWLNMMTNWZ\PQ[LQ[XTIaMTMUMV\KPMKSW]\\PM[\I\Q[\QK[IVL NWZMKI[\LQ[XTIa[QV\PMPMILÅZ[\KWLMLQZMK\WZaAW]¼TT[MM\PMaIZM^MZa[QUQTIZ

EVHUYHU SOHPHQWV2URPWKH P L \ OD S LV I 7KLVG QJHWFKDQJHV VRLWFD 'DWDREMHFW :HDWKHU

,WDOVRLPSO HQWV'LVSOD\( EHFDXVHRXUHP OHPHQW UHTXLUHDOOG $3,LVJRLQJWR LV SO D\ H OH P LPSOHPHQWWK HQ LVLQWHUIDFHWVWR

SXEOLFFODVV&XUUHQW&RQGLWLRQV'LVSOD\LPSOHPHQWV2EVHUYHU'LVSOD\(OHPHQW^ SULYDWHÀRDWWHPSHUDWXUH SULYDWHÀRDWKXPLGLW\ SULYDWH6XEMHFWZHDWKHU'DWD 7KHFRQVWUXFWRULVSDVVHGWKH  ZHDWKHU'DWDREMHFW WKH6XEMHFW  SXEOLF&XUUHQW&RQGLWLRQV'LVSOD\ 6XEMHFWZHDWKHU'DWD ^ DQGZHXVHLWWRUHJLVWHUWKH WKLVZHDWKHU'DWD ZHDWKHU'DWD GLVSOD\DVDQREVHUYHU ZHDWKHU'DWDUHJLVWHU2EVHUYHU WKLV  `  SXEOLFYRLGXSGDWH ÀRDWWHPSHUDWXUHÀRDWKXPLGLW\ÀRDWSUHVVXUH ^ WKLVWHPSHUDWXUH WHPSHUDWXUH WKLVKXPLGLW\ KXPLGLW\ :KHQXSGDWH LVFDOOHGZH\ GLVSOD\  VDYHWKHWHPSDQGKXPLGLW ` DQGFDOOGLVSOD\   SXEOLFYRLGGLVSOD\ ^ 6\VWHPRXWSULQWOQ ³&XUUHQWFRQGLWLRQV³WHPSHUDWXUH ³)GHJUHHVDQG³KXPLGLW\³KXPLGLW\´  7KHGLVSOD\ PHWKRG ` MXVWSULQWVRXWWKHPRVW `

UHFHQWWHPSDQGKXPLGLW\

WKHUH DUH QR

'XPE 4XHVWLRQV

Q:

)SUPDATE THEBESTPLACETO CALLDISPLAY

THEWAYTHEDATAGETSDISPLAYED7E AREGOINGTOSEETHISWHENWEGETTO THEMODEL VIEW CONTROLLERPATTERN

A:

Q:

)NTHISSIMPLEEXAMPLEITMADE SENSETOCALLDISPLAY WHENTHEVALUES CHANGED(OWEVER YOUARERIGHT THEREAREMUCHBETTERWAYSTODESIGN

7HYDIDYOUSTOREAREFERENCE TOTHE3UBJECT)TDOESNTLOOK LIKEYOUUSEITAGAINAFTERTHE CONSTRUCTOR

A:

4RUE BUTINTHEFUTUREWE MAYWANTTOUN REGISTEROURSELVESAS ANOBSERVERANDITWOULDBEHANDY TOALREADYHAVEAREFERENCETOTHE SUBJECT

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 24

WHVWLQJWKHZHDWKHUVWDWLRQ

8W_MZ]X\PM?MI\PMZ;\I\QWV 

)LUVWOHW·VFUHDWHDWHVWKDUQHVV
KH

WHW )LUVWFUHDDW D :HDWKHU' REMHFW

SXEOLFFODVV:HDWKHU6WDWLRQ^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ :HDWKHU'DWDZHDWKHU'DWD QHZ:HDWKHU'DWD   &XUUHQW&RQGLWLRQV'LVSOD\FXUUHQW'LVSOD\   ,I\RXGRQ·W ZDQWWRQHZ&XUUHQW&RQGLWLRQV'LVSOD\ ZHDWKHU'DWD  6WDWLVWLFV'LVSOD\VWDWLVWLFV'LVSOD\ QHZ6WDWLVWLFV'LVSOD\ ZHDWKHU'DWD  H GRZQORDGWK )RUHFDVW'LVSOD\IRUHFDVW'LVSOD\ QHZ)RUHFDVW'LVSOD\ ZHDWKHU'DWD  Q

FRGH\RXFD W FRPPHQWRX ZHDWKHU'DWDVHW0HDVXUHPHQWV I  ROLQHV WKHVHWZZHDWKHU'DWDVHW0HDVXUHPHQWV I  LW DQGUXQZHDWKHU'DWDVHW0HDVXUHPHQWV I  ` `



6LPXODWHQHZZHDWKHU PHDVXUHPHQWV

&UHDWHWKHWKUHH GLVSOD\VDQG SDVVWKHPWKH :HDWKHU'DWDREMHFW

5XQWKHFRGHDQGOHWWKH2EVHUYHU3DWWHUQGRLWVPDJLF )LOH(GLW:LQGRZ+HOS6WRUP\:HDWKHU

MDYD:HDWKHU6WDWLRQ &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ $YJ0D[0LQWHPSHUDWXUH  )RUHFDVW,PSURYLQJZHDWKHURQWKHZD\ &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ $YJ0D[0LQWHPSHUDWXUH  )RUHFDVW:DWFKRXWIRUFRROHUUDLQ\ZHDWKHU &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ $YJ0D[0LQWHPSHUDWXUH  )RUHFDVW0RUHRIWKHVDPH 



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 25

WKHREVHUYHUSDWWHUQ

6KDUSHQ \RXU SHQFLO -RKQQ\+XUULFDQH:HDWKHU25DPD¶V&(2MXVWFDOOHGWKH\FDQ¶WSRVVLEO\VKLSZLWKRXWD+HDW,QGH[ GLVSOD\HOHPHQW+HUHDUHWKHGHWDLOV 7KHKHDWLQGH[LVDQLQGH[WKDWFRPELQHVWHPSHUDWXUHDQGKXPLGLW\WRGHWHUPLQHWKHDSSDUHQW WHPSHUDWXUH KRZKRWLVDFWXDOO\IHHOV 7RFRPSXWHWKHKHDWLQGH[\RXWDNHWKHWHPSHUDWXUH7DQGWKH UHODWLYHKXPLGLW\5+DQGXVHWKLVIRUPXOD

KHDWLQGH[  

  7 5+  7

5+  7  5+ 

7 5+  7 5+  7 5+   7  5+  7 5+   7 5+  7 5+   7 5+  7 5+

6RJHWW\SLQJ -XVWNLGGLQJ'RQ¶WZRUU\\RXZRQ¶WKDYHWRW\SHWKDWIRUPXODLQMXVWFUHDWH\RXURZQ+HDW,QGH['LVSOD\ MDYD¿OHDQGFRS\WKHIRUPXODIURPKHDWLQGH[W[WLQWRLW


QJH FKD W D K  ·VZ SXW +HUH KLVRXW QL W

G

MDYD:HDWKHU6WDWLRQ &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ $YJ0D[0LQWHPSHUDWXUH  )RUHFDVW,PSURYLQJZHDWKHURQWKHZD\ +HDWLQGH[LV &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ $YJ0D[0LQWHPSHUDWXUH  )RUHFDVW:DWFKRXWIRUFRROHUUDLQ\ZHDWKHU +HDWLQGH[LV &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ $YJ0D[0LQWHPSHUDWXUH  )RUHFDVW0RUHRIWKHVDPH +HDWLQGH[LV 

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 26

¿UHVLGHFKDWVXEMHFWDQGREVHUYHU


;]JRMK\

7J[MZ^MZ

1¼UOTIL_M¼ZMÅVITTaOM\\QVOIKPIVKM\WKPI\QV XMZ[WV ?MTT1LWUaRWJLWV¼\1'1IT_Ia[\MTTaW]_PI\¼[ OWQVOWV2][\JMKI][M1LWV¼\ZMITTaSVW__PW aW]IZMLWM[V¼\UMIV1LWV¼\KIZM)VLJM[QLM[1 LWSVW_\PMUW[\QUXWZ\IV\\PQVOIJW]\aW]¸ aW]QUXTMUMV\\PM7J[MZ^MZQV\MZNIKM

:MITTa'1\PW]OP\aW]LQLV¼\KIZMU]KPIJW]\ ][7J[MZ^MZ[

?MTTaMIPJ]\\PI\¼[R][\I[UITTXIZ\WN _PW1 IU)Va_Ia1SVW_ITW\UWZMIJW]\aW]

7PaMIPTQSM_PI\' ?MTTaW]¼ZMIT_Ia[XI[[QVOaW]Z[\I\MIZW]VL \W][7J[MZ^MZ[[W_MKIV[MM_PI\¼[OWQVO WVQV[QLMaW]?PQKPOM\[ITQ\\TMIVVWaQVOI\ \QUM[ ?MTTM`K]]][MUM1PI^M\W[MVLUa[\I\M_Q\PUa VW\QÅKI\QWV[[WITTaW]TIba7J[MZ^MZ[_QTTSVW_ _PI\PIXXMVML 7S_IQ\R][\IUQV]\MPMZM#ÅZ[\_M¼ZMVW\TIba _MR][\PI^MW\PMZ[\]NN \WLWQVJM\_MMVaW]Z WP[WQUXWZ\IV\VW\QÅKI\QWV[5Z;]JRMK\IVL [MKWVL_PaLWV¼\aW]TM\][KWUM\WaW]NWZ \PM[\I\M_M_IV\ZI\PMZ\PIVX][PQVOQ\W]\\W R][\M^MZaWVM' ?MTT1O]M[[\PI\UQOP\_WZS1¼LPI^M\WWXMV Ua[MTN ]XM^MVUWZM\PW]OP\WTM\ITTaW]7J[MZ^MZ[ KWUMQVIVLOM\\PM[\I\M\PI\aW]VMML


&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 27

WKHREVHUYHUSDWWHUQ

;]JRMK\

7J[MZ^MZ

AM[1KW]TLTM\aW]X]TTUa[\I\M*]\_WV¼\\PI\JM TM[[KWV^MVQMV\NWZaW]'1N aW]PI^M\WKWUM\WUM M^MZa\QUMaW]_IV\[WUM\PQVOaW]UQOP\PI^M\W UISMU]T\QXTMUM\PWLKITT[\WOM\ITT\PM[\I\MaW] _IV\
?MTT1KIV[MM\PMIL^IV\IOM[\WLWQVOQ\JW\P_Ia[ 1PI^MVW\QKML\PI\\PMZMQ[IJ]QT\QV2I^I7J[MZ^MZ 8I\\MZV\PI\ITTW_[aW]\W][MMQ\PMZX][PWZX]TT

?PaLWV¼\aW]R][\_ZQ\M[WUMX]JTQKOM\\MZ UM\PWL[\PI\_QTTTM\][X]TTW]\\PM[\I\M_M VMML'

,WV¼\JM[WX][Pa 
7PZMITTa'1\PQVS_M¼ZMOWQVO\WTWWSI\\PI\ VM`\ /ZMI\UIaJM1¼TTOM\\W[MMIOWWLM`IUXTMWN  X]TTIVLKPIVOMUaUQVL ?PI\][IOZMMWV[WUM\PQVO'1O]M[[\PMZM¼[ IT_Ia[PWXM

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 28

MDYD¶VEXLOWLQREVHUYHUSDWWHUQ

=[QVO2I^I¼[J]QT\QV 7J[MZ ^MZ8I\\MZV

:LWK-DYD·VEXLOWLQ VXSSRUWDOO\RXKDYHWRGRLV H[WHQG2EVHUYDEOHDQGWHOOLW ZKHQWRQRWLI\WKH2EVHUYHUV 7KH$3,GRHVWKHUHVWIRU\RX

;WNIZ_M¼^MZWTTMLW]ZW_VKWLMNWZ\PM 7J[MZ^MZ8I\\MZVJ]\2I^IPI[J]QT\QV[]XXWZ\ QV[M^MZITWN Q\[)81[
HFODVVNHHSV 7KH2EVHUYDOOEO\RXUREVHUYHUV WUDFNRID WKHPIRU\RX DQGQRWLILHV 2EVHUYDEOH

IDPLOLDU,Q 7KLVVKRXOGORDFRNWO\WKHVDPHDV IDFWLW·VH[ ODVVGLDJUDP  RXUSUHYLRXVF LQWHUIDFH!!

OBSERVERS

2EVHUYDEOHLVD DGG2EVHUYHU &/$66QRWDQ GHOHWH2EVHUYHU QRWLI\2EVHUYHUV LQWHUIDFHVR :HDWKHU'DWD VHW&KDQJHG H[WHQGV2EVHUYDEOH

2EVHUYHU XSGDWH

SUB

JEC

T

*HQHUDO'LVSOD\ XSGDWH GLVSOD\ 

:HDWKHU'DWD

ORRN JHW+XPLGLW\ RHVQ·W 7KLVGLDU+ROG WR JHW3UHVVXUH  LO W P ID ZH·OOJH WLJKW DVHF KLFKZHFDQ WKLVLQ +HUH·VRXU6XEMHFWZ UYDEOH:H EVH H2 WK DOO QRZDOVRF U UHPRYH  VWH HJL HU GRQ·WQHHGWK UV PHWKRGV DQGQRWLI\2EVHUYH WKDWEHKDYLRU DQ\PRUHZHLQKHULWV IURPWKHVXSHUFODV

6WDWLVWLFV'LVSOD\ XSGDWH  GLVSOD\

:HOHIWRXWWKH 'LVSOD\(OHPHQW LQWHUIDFHEXWDOO WKHGLVSOD\VVWLOO LPSOHPHQWLWWRR )RUHFDVW'LVSOD\ XSGDWH GLVSOD\

JHW7HPSHUDWXUH



WRPDNHWRWKHXSGDWH  7KHUHZLOOEHDIHZFKDQJHVEVHU YHUVEXWEDVLFDOO\LW·V H2 FUHW PHWKRGLQWKHFRQ 2EVHUYHULQWHUIDFH FRP HD WKHVDPHLGHDZHKDY KDWPRQ DOOHGE\WKH6XEMHFW ·VF ZLWKDQXSGDWH PHWKRGW

&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 29

WKHREVHUYHUSDWWHUQ

0W_2I^I¼[J]QT\QV7J[MZ ^MZ8I\\MZV_WZS[
)RUDQ2EMHFWWREHFRPHDQREVHUYHU )[][]ITQUXTMUMV\\PM7J[MZ^MZQV\MZNIKM\PQ[\QUM\PMRI^I]\QT7J[MZ^MZ QV\MZNIKMIVLKITTILL7J[MZ^MZWVIVa7J[MZ^IJTMWJRMK\4QSM_Q[M\WZMUW^M aW]Z[MTN I[IVWJ[MZ^MZR][\KITTLMTM\M7J[MZ^MZ

)RUWKH2EVHUYDEOHWRVHQGQRWLÀFDWLRQV .QZ[\WN ITTaW]VMML\WJM7J[MZ^IJTMJaM`\MVLQVO\PMRI^I]\QT7J[MZ^IJTM []XMZKTI[[.ZWU\PMZMQ\Q[I\_W[\MXXZWKM[[" 
WKDWWKHVWDWHKDVFKDQJHGLQ\RXUREMHFW  7KHQFDOORQHRIWZRQRWLI\2EVHUYHUV PHWKRGV

HLWKHUQRWLI\2EVHUYHUV RUQRWLI\2EVHUYHUV 2EMHFWDUJ

NHVDQ 7KLVYHUVLRQGDWDWDREMHFW DUELWUDU\ VVHGWR WKDWJHWVSDYHUZKHQLW HDFK2EVHU LVQRWLILHG

)RUDQ2EVHUYHUWRUHFHLYHQRWLÀFDWLRQV 1\QUXTMUMV\[\PM]XLI\MUM\PWLI[JMNWZMJ]\\PM[QOVI\]ZMWN \PM UM\PWLQ[IJQ\LQNNMZMV\"

GDWDREMHFW

XSGDWH 2EVHUYDEOHR2EMHFWDUJ

7KH6XEMHFWWKDWVHQW WKHQRWLILFDWLRQLVSDVVHG 7KLVZLOOEHWKHGDWDREMHFWWKDWZDV SDVVHGWRQRWLI\2EVHUYHUV RUQXOOLI LQDVWKLVDUJXPHQW DGDWDREMHFWZDVQ·WVSHFLILHG 1N aW]_IV\\W¹X][PºLI\I\W\PMWJ[MZ^MZ[aW]KIVXI[[\PMLI\II[ILI\IWJRMK\ \W\PMVW\QNa7J[MZ^MZIZOUM\PWL1N VW\\PMV\PM7J[MZ^MZPI[\W¹X]TTº\PMLI\I Q\_IV\[NZWU\PM7J[MZ^IJTMWJRMK\XI[[ML\WQ\0W_'4M\¼[ZM_WZS\PM?MI\PMZ ;\I\QWVIVLaW]¼TT[MM

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 30

EHKLQGWKHVFHQHV

:DLWEHIRUHZHJHW WRWKDWZK\GRZHQHHGWKLV VHW&KDQJHG PHWKRG":HGLGQ·W QHHGWKDWEHIRUH


%HKLQG WKH6FHQHV

KRG 7KHVHW&KDQJHG PHWRW  VHWVDFKDQJHGIODJW UXH

VHW&KDQJHG ^ FKDQJHG WUXH `

KH IRUW  H G R V RF ODV 3VHXGHUYDEOH& 2EV

QRWLI\2EVHUYHUV 2EMHFWDUJ ^ LI FKDQJHG ^ IRUHYHU\REVHUYHURQWKHOLVW^ FDOOXSGDWH WKLVDUJ ` FKDQJHG IDOVH ` `

QRWLI\2EVHUYHUV RQO\LI QRWLILHVLWVREVHUYHUV58( WKHFKDQJHGIODJLV7 $QGDIWHULWQRWLILHV WKHREVHUYHUVLWVHWVWKH FKDQJHGIODJEDFNWRIDOVH

QRWLI\2EVHUYHUV ^ QRWLI\2EVHUYHUV QXOO `

?PaQ[\PQ[VMKM[[IZa'
&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 31

WKHREVHUYHUSDWWHUQ

:M_WZSQVO\PM?MI\PMZ;\I\QWV_Q\P\PMJ]QT\QV[]XXWZ\ )LUVWOHW·VUHZRUN:HDWKHU'DWDWRXVH MDYDXWLO2EVHUYDEOH



0DNHVXUHZHDUHLPSRUWLQJWKH ULJKW2EVHUYHU2EVHUYDEOH





:HDUHQRZ VXEFODVVLQJ2EVHUYDEOH

:HGRQ·WQHHGWRNHHSWUDFNRI RXUREVHUYHUVDQ\PRUHRUPDQDJH WKHLUUHJLVWUDWLRQDQGUHPRYDO WKHVXSHUFODVVZLOOKDQGOHWKDW  VRZH·YHUHPRYHGWKHFRGHIRU UHJLVWHUDGGDQGQRWLI\

LPSRUWMDYDXWLO2EVHUYDEOH LPSRUWMDYDXWLO2EVHUYHU  SXEOLFFODVV:HDWKHU'DWDH[WHQGV2EVHUYDEOH^ SULYDWHÀRDWWHPSHUDWXUH  2XUFRQVWUXFWRUQRORQJHU SULYDWHÀRDWKXPLGLW\ QHHGVWRFUHDWHDGDWD SULYDWHÀRDWSUHVVXUH VWUXFWXUHWRKROG2EVHUYHUV  SXEOLF:HDWKHU'DWD ^` 1RWLFHZHDUHQ·WVHQGLQJDGDWDREMHFWZLWK  WKHQRWLI\2EVHUYHUV FDOO7KDWPHDQV SXEOLFYRLGPHDVXUHPHQWV&KDQJHG ^ VHW&KDQJHG  ZH·UHXVLQJWKH38//PRGHO QRWLI\2EVHUYHUV  `  SXEOLFYRLGVHW0HDVXUHPHQWV ÀRDWWHPSHUDWXUHÀRDWKXPLGLW\ÀRDWSUHVVXUH ^ WKLVWHPSHUDWXUH WHPSHUDWXUH WKLVKXPLGLW\ KXPLGLW\ WKLVSUHVVXUH SUHVVXUH  :HQRZILUVWFDOOVHW&KDQJHG WR PHDVXUHPHQWV&KDQJHG  LQGLFDWHWKHVWDWHKDVFKDQJHG ` EHIRUHFDOOLQJQRWLI\2EVHUYHUV   SXEOLFÀRDWJHW7HPSHUDWXUH ^ UHWXUQWHPSHUDWXUH `  SXEOLFÀRDWJHW+XPLGLW\ ^ UHWXUQKXPLGLW\ ` 7KHVHPHWKRGVDUHQ·WQHZEXW   EHFDXVHZHDUHJRLQJWRXVH´SXOOµ SXEOLFÀRDWJHW3UHVVXUH ^ ZHWKRXJKWZH·GUHPLQG\RX UHWXUQSUHVVXUH ` WKH\DUHKHUH7KH2EVHUYHUV ` ZLOOXVHWKHPWRJHWDWWKH



:HDWKHU'DWDREMHFW·VVWDWH

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 32

FXUUHQWFRQGLWLRQVUHZRUN

1RZOHW·VUHZRUNWKH&XUUHQW&RQGLWLRQV'LVSOD\



$JDLQPDNHVXUHZHDUHLPSRUWLQJ WKHULJKW2EVHUYHU2EVHUYDEOH 

:HQRZDUHLPSOHPHQWLQJWKH2EVHUYHULQWHUIDFHIURPMDYDXWLO

LPSRUWMDYDXWLO2EVHUYDEOH LPSRUWMDYDXWLO2EVHUYHU  SXEOLFFODVV&XUUHQW&RQGLWLRQV'LVSOD\LPSOHPHQWV2EVHUYHU'LVSOD\(OHPHQW^ 2EVHUYDEOHREVHUYDEOH SULYDWHÀRDWWHPSHUDWXUH  2XUFRQVWUXFWRUQRZWDNHVDQ SULYDWHÀRDWKXPLGLW\ 2EVHUYDEOHDQGZHXVHWKLVWR  DGGWKHFXUUHQWFRQGLWLRQV SXEOLF&XUUHQW&RQGLWLRQV'LVSOD\ 2EVHUYDEOHREVHUYDEOH ^ REMHFWDVDQ2EVHUYHU WKLVREVHUYDEOH REVHUYDEOH REVHUYDEOHDGG2EVHUYHU WKLV  `   :H·YHFKDQJHGWKH SXEOLFYRLGXSGDWH 2EVHUYDEOHREV2EMHFWDUJ ^ XSGDWH PHWKRG LI REVLQVWDQFHRI:HDWKHU'DWD ^ WRWDNHERWKDQ :HDWKHU'DWDZHDWKHU'DWD  :HDWKHU'DWD REV 2EVHUYDEOHDQGWKH WKLVWHPSHUDWXUH ZHDWKHU'DWDJHW7HPSHUDWXUH  RSWLRQDOGDWDDUJXPHQW WKLVKXPLGLW\ ZHDWKHU'DWDJHW+XPLGLW\  GLVSOD\  ` `  SXEOLFYRLGGLVSOD\ ^  ,QXSGDWH ZHILUVW 6\VWHPRXWSULQWOQ ³&XUUHQWFRQGLWLRQV³WHPSHUDWXUH PDNHVXUHWKHREVHUYDEOH ³)GHJUHHVDQG³KXPLGLW\³KXPLGLW\´  LVRIW\SH:HDWKHU'DWD ` DQGWKHQZHXVHLWV `

JHWWHUPHWKRGVWR REWDLQWKHWHPSHUDWXUH DQGKXPLGLW\ PHDVXUHPHQWV$IWHU WKDWZHFDOOGLVSOD\ 



&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 33

WKHREVHUYHUSDWWHUQ

&RGH0DJQHWV ([HUFLVH

4HE&ORECAST$ISPLAYCLASSISALLSCRAMBLEDUPONTHEFRIDGE#ANYOU RECONSTRUCTTHECODESNIPPETSTOMAKEITWORK3OMEOFTHECURLY BRACESFELLONTHEFLOORANDTHEYWERETOOSMALLTOPICKUP SOFEEL FREETOADDASMANYOFTHOSEASYOUNEED

OH YDE VHU 2E \ D SO 'LV DVW UHF R )  ^ OLF GLVSOD\  SXE UYDEOH H REV REVHUYD EOHDGG2EVHUYHU WKLV 

LI REVHUYDEOHLQVWDQFHRI:HDWKHU'DWD ^

PSOHPHQWV SXEOLFFODVV)RUHFDVW'LVSOD\L 2EVHUYHU'LVSOD\(OHPHQW^

^ GGLVSOD\ SXEOLFYRL RGHKHUH F D\ SO LV G `

 UH UH W3UHVVX X V V 3UH DWDJH ' UHQW FXU ZHDWKHU  H  U X  V H V U H VX 3U ODVW HQW3UHV FXUU SULYDWHÀRD WFXUUHQW3UH VVXUH  SULYDWHÀRD I WODVW3UHVVX UH :HDWKHU'DWDZH DWKHU'DWD  :HDWKHU'DWD R EVHUYDEOH

DEOH YDEOHREVHUY XSGDWH 2EVHU SXEOLFYRLG ^  UJ 2EMHFWD

EVHUYDEOH LPSRUWMDYDXWLO2 EVHUYHU LPSRUWMDYDXWLO2 \RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Page 34

Return to Table of Contents

WHVWGULYH

:]VVQVO\PMVM_KWLM -XVWWREHVXUHOHW·VUXQWKHQHZFRGH )LOH(GLW:LQGRZ+HOS7U\7LKLV$W+RPH

MDYD:HDWKHU6WDWLRQ )RUHFDVW,PSURYLQJZHDWKHURQWKHZD\ $YJ0D[0LQWHPSHUDWXUH  &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ )RUHFDVW:DWFKRXWIRUFRROHUUDLQ\ZHDWKHU $YJ0D[0LQWHPSHUDWXUH  &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ )RUHFDVW0RUHRIWKHVDPH $YJ0D[0LQWHPSHUDWXUH  &XUUHQWFRQGLWLRQV)GHJUHHVDQGKXPLGLW\ 

+PPGR\RXQRWLFHDQ\WKLQJGLIIHUHQW"/RRNDJDLQ AW]¼TT[MMITT\PM[IUMKITK]TI\QWV[J]\Ua[\MZQW][Ta\PMWZLMZWN \PM\M`\W]\X]\Q[ LQNNMZMV\?PaUQOP\\PQ[PIXXMV'
1HYHUGHSHQGRQRUGHURIHYDOXDWLRQRIWKH 2EVHUYHUQRWLÀFDWLRQV


&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Page 35

Return to Table of Contents

WKHREVHUYHUSDWWHUQ

'RHVQ·W MDYDXWLO2EVHUYDEOH YLRODWHRXU22GHVLJQSULQFLSOH RISURJUDPPLQJWRLQWHUIDFHV QRWLPSOHPHQWDWLRQV"


2EVHUYDEOHLVDFODVV AW]ITZMILaSVW_NZWUW]ZXZQVKQXTM[\PQ[Q[IJILQLMIJ]\_PI\PIZULWM[Q\ZMITTa KI][M' .QZ[\JMKI][M7J[MZ^IJTMQ[IKTI[[aW]PI^M\W[]JKTI[[Q\
2EVHUYDEOHSURWHFWVFUXFLDOPHWKRGV 1N aW]TWWSI\\PM7J[MZ^IJTM)81\PM[M\+PIVOMLUM\PWLQ[XZW\MK\ML;W_PI\'?MTT \PQ[UMIV[aW]KIV¼\KITT[M\+PIVOML]VTM[[aW]¼^M[]JKTI[[ML7J[MZ^IJTM
:KDWWRGR" 7J[MZ^IJTMUIa[MZ^MaW]ZVMML[QN aW]KIVM`\MVLRI^I]\QT7J[MZ^IJTM7V\PMW\PMZ PIVLaW]UIaVMML\WZWTTaW]ZW_VQUXTMUMV\I\QWVI[_MLQLI\\PMJMOQVVQVOWN \PM KPIX\MZ1VMQ\PMZKI[MaW]SVW_\PM7J[MZ^MZ8I\\MZV_MTTIVLaW]¼ZMQVIOWWLXW[Q\QWV \W_WZS_Q\PIVa)81\PI\UISM[][MWN \PMXI\\MZV

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 36

REVHUYHUDQGVZLQJ

7\PMZXTIKM[aW]¼TTNQVL\PM7J[MZ ^MZ8I\\MZV QV\PM2,3
$OLWWOHEDFNJURXQG

 ,I\RX·UHFXULRXVDEWHRXW UQLQ WKH2EVHUYHU3DW WW KH -DYD%HDQVFKHFNRXLVWHQHU H/ QJ KD \& HUW RS 3U LQWHUIDFH

4M\¼[\ISMITWWSI\I[QUXTMXIZ\WN \PM;_QVO)81\PM2*]\\WV1N aW]TWWS]VLMZ \PMPWWLI\2*]\\WV¼[[]XMZKTI[[)J[\ZIK\*]\\WVaW]¼TT[MM\PI\Q\PI[ITW\WN ILL ZMUW^MTQ[\MVMZUM\PWL[
$OLWWOHOLIHFKDQJLQJDSSOLFDWLRQ 7SIaW]ZIXXTQKI\QWVQ[XZM\\a[QUXTMAW]¼^MOW\IJ]\\WV\PI\[Ia[¹;PW]TL1LW Q\'ºIVL_PMVaW]KTQKSWV\PI\J]\\WV\PMTQ[\MVMZ[WJ[MZ^MZ[OM\\WIV[_MZ\PM Y]M[\QWVQVIVa_Ia\PMa_IV\?M¼ZMQUXTMUMV\QVO\_W[]KPTQ[\MVMZ[KITTML\PM )VOMT4Q[\MVMZIVL\PM,M^QT4Q[\MVMZ0MZM¼[PW_\PMIXXTQKI\QWVJMPI^M["

HUIDFH +HUH·VRXUIDQF\LQW

WSXWZKHQ $QGKHUH·VWKHRXXW WRQ HE WK ZHFOLFNRQ )LOH(GLW:LQGRZ+HOS+H0DGH0H'R,W

'HYLODQVZHU $QJHODQVZHU 

MDYD6ZLQJ2EVHUYHU([DPSOH &RPHRQGRLW 'RQ¶WGRLW\RXPLJKWUHJUHWLW 

&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 37

WKHREVHUYHUSDWWHUQ

)VL\PMKWLM
SSOLFDWLRQWKDW 6LPSOH6ZLQJDI UDPHDQG D HV DW UH MXVWF LQLW Q WR XW E WKURZVD

SXEOLFFODVV6ZLQJ2EVHUYHU([DPSOH^ -)UDPHIUDPH  SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 6ZLQJ2EVHUYHU([DPSOHH[DPSOH QHZ6ZLQJ2EVHUYHU([DPSOH  H[DPSOHJR  `  SXEOLFYRLGJR ^ 0DNHVWKHGHYLODQG IUDPH QHZ-)UDPH  -%XWWRQEXWWRQ QHZ-%XWWRQ ³6KRXOG,GRLW"´  DQJHOREMHFWVOLVWHQHUV EXWWRQDGG$FWLRQ/LVWHQHU QHZ$QJHO/LVWHQHU  REVHUYHUV RIWKHEXWWRQ EXWWRQDGG$FWLRQ/LVWHQHU QHZ'HYLO/LVWHQHU  IUDPHJHW&RQWHQW3DQH DGG %RUGHU/D\RXW&(17(5EXWWRQ  6HWIUDPHSURSHUWLHVKHUH `  FODVV$QJHO/LVWHQHULPSOHPHQWV$FWLRQ/LVWHQHU^ SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ 6\VWHPRXWSULQWOQ ³'RQ¶WGRLW\RXPLJKWUHJUHWLW´  ` +HUHDUHW `

FODVVGHILQLW WKHREVHUYHKH LRQVIRU UV

FODVV'HYLO/LVWHQHULPSOHPHQWV$FWLRQ/LVWHQHU^ FODVVHV EXWW GHILQHGDVLQQHU  KH\GRQ·WKDY SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ HWREH  6\VWHPRXWSULQWOQ ³&RPHRQGRLW´  ` ` ` SGDWH WKH

5DWKHUWKDQX DFWLRQ3HUIRUPHG PHWKRG JHWVFDOOHGZKHQWKHVWDWH LQWKHVXEMHFW LQWKLVFDVH WKHEXWWRQ FKDQJHV

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 38

\RXUGHVLJQWRROER[


:MDD=LHGAFLK

ƒ 7KH2EVHUYHU3DWWHUQGHILQHV DRQHWRPDQ\UHODWLRQVKLS EHWZHHQREMHFWV

ƒ 6XEMHFWVRUDVZHDOVRNQRZ WKHP2EVHUYDEOHVXSGDWH 2EVHUYHUVXVLQJDFRPPRQ LQWHUIDFH

22%DVLFV V

223ULQFLSOH

ƒ 2EVHUYHUVDUHORRVHO\FRXSOHG

$EVWUDFWLRQ RQ (QFDSVXODWL P LV 3RO\PRUSK H ,QKHULWHQF

LQWKDWWKH2EVHUYDEOHNQRZV QRWKLQJDERXWWKHPRWKHU WKDQWKDWWKH\LPSOHPHQWWKH 2EVHUYHU,QWHUIDFH

 ZKDWYDULHV (QFDSVXODWH  HU RVLWLRQRY )DYRUFRPS H LQKHULWDQF RW LQWHUIDFHVQ 3URJUDPWRLRQV LPSOHPHQWDW G RRVHO\FRXSOH 6WULYHIRUOZHHQREMHFWVWKDW GHVLJQVEHW LQWHUDFW

ƒ
HVW +HUH·V\RXUQHZ HPEHU SULQFLSOH5HPGGHVLJQVDUH ORRVHO\FRXSOH H[LEOHDQG PXFKPRUHIOFKDQJH UHVLOLHQWWR

223DWWHLQUHVQDVIDPLO\RIDOJRULWKPVR PDQ\

HI W HIDNLQHVHVWDKHRPQH RUVLWVRKPW KDW 6WUDWHJ\GDFUKYRQHUH GP DQG VH H OJ FW 2HVE 6WUF\DWEHJHW\ZOHHHWVQWREKHMHD HQFDSVXODW DOOLWV EOHGHQ HDHQ GHS WKHVDWVXWVHDLWWH WHG LQWHUFKDQJ FOLHFQWKDVQJ PFW MH UR E I R \ QH X WO R HQ QG G D SGD ZKHQHQ YDU\LQGHS DUHQRWLILHG GHSHQGHQWVOO\ DXWRPDWLFD

$QHZSDWWHUQIRUFRPPXQLFDWLQJVWDWHWRD VHWRIREMHFWVLQDORRVHO\FRXSOHGPDQQHU:H KDYHQ·WVHHQWKHODVWRIWKH2EVHUYHU3DWWHUQ MXVWZDLWXQWLOZHWDONDERXW09& 

ƒ 'RQ·WGHSHQGRQDVSHFLILF RUGHURIQRWLILFDWLRQIRU\RXU 2EVHUYHUV

ƒ -DYDKDVVHYHUDO LPSOHPHQWDWLRQVRIWKH 2EVHUYHU3DWWHUQLQFOXGLQJ WKHJHQHUDOSXUSRVHMDYDXWLO 2EVHUYDEOH

ƒ :DWFKRXWIRULVVXHVZLWK WKHMDYDXWLO2EVHUYDEOH LPSOHPHQWDWLRQ

ƒ 'RQ·WEHDIUDLGWRFUHDWH \RXURZQ2EVHUYDEOH LPSOHPHQWDWLRQLIQHHGHG

ƒ 6ZLQJPDNHVKHDY\XVHRIWKH 2EVHUYHU3DWWHUQDVGRPDQ\ *8,IUDPHZRUNV

ƒ
&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 39

WKHREVHUYHUSDWWHUQ

([HUFLVH

'HVLJQ3ULQFLSOH&KDOOHQJH &OREACHDESIGNPRINCIPLE DESCRIBEHOWTHE/BSERVER0ATTERN MAKESUSEOFTHEPRINCIPLE

'HVLJQ3ULQFLSOH ,GHQWLI\WKHDVSHFWVRI\RXUDSSOLFDWLRQWKDWYDU\ DQGVHSDUDWHWKHPIURPZKDWVWD\VWKHVDPH

'HVLJQ3ULQFLSOH 3URJUDPWRDQLQWHUIDFHQRWDQLPSOHPHQWDWLRQ

7KLVLVDKDUGRQHKLQWWKLQNDERXWKRZREVHUYHUV DQGVXEMHFWVZRUNWRJHWKHU 'HVLJQ3ULQFLSOH )DYRUFRPSRVLWLRQRYHULQKHULWDQFH

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 40

FURVVZRUGSX]]OH






















 







 

















  0#/3 *# '0   ,-1 , ',1#/$!#  #3'* ," ,%#* /#  1- 1&# 211-,

 +.*#+#,1 1&'0 +#1&-" 1- %#1 ,-1'$'#"  '** %-1 -,# -$ &#/ -4,  2//#,1-,"'1'-,0'0.*6 '+.*#+#,10 1&'0 ',1#/$!#  -4 1- %#1 6-2/0#*$ -$$ 1&#  0#/3#/ *'01  -2 $-/%-1 1&'0 '$ 6-2/# ,-1 %#11',% ,-1'$'#" 4&#, 6-2 1&',) 6-2 0&-2*" #   ,# 2 (#!1 *')#0 1- 1*) 1-  - 0#/3#/0  -,1 !-2,1 -, 1&'0 $-/ ,-1'$'!1'-,  #+.#/12/# &2+'"'16 ,"    0#/3#/0 /#  -, 1&# 2 (#!1  /-%/+ 1- ,  ,-1 , '+.*#+#,11'-,   2 (#!1 '0 0'+'*/ 1-  

 -, 40 -1& ,  0#/3#/ ,"    -2 4,1 1- )##. 6-2/ !-2.*',% 

 # 060 6-2 0&-2*" %- $-/ '1   !, +,%# 6-2/ - 0#/3#/0 $-/ 6-2  3 $/+#4-/) 4'1& *-10 -$  0#/3#/0  #1&#/+0  ,+#" $1#/ 1&'0 )'," -$ 01-/+    0#/3#/0 *')# 1- #  4&#, 0-+#1&',% ,#4 &..#,0   &# #1&#/1 !*00  1&# 2 (#!1 ',1#/$!#   # "'",1 4,1 ,6 +-/# ',10 0- &# /#+-3#" &'+0#*$    *+-01 $-/%-1 1&#  ',"#5 "'0.*6  2 (#!1 ','1'**6 4,1#" 1-  ** 1&# "1 1-  0#/3#/

&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 41

WKHREVHUYHUSDWWHUQ

([HUFLVH VROXWLRQV

6KDUSHQ \RXU SHQFLO *I[MLWVW]ZÅZ[\QUXTMUMV\I\QWV_PQKPWN \PMNWTTW_QVOIXXTa' +PWW[MITT\PI\IXXTa

R) ?MIZMKWLQVO\WKWVKZM\M

R,
QUXTMUMV\I\QWV[VW\QV\MZNIKM[

R* .WZM^MZaVM_LQ[XTIaMTMUMV\_MVMML

R- ?MPI^MV¼\MVKIX[]TI\ML_PI\KPIVOM[ 

\WIT\MZKWLM

R+ ?MPI^MVW_Ia\WILLLQ[XTIa

R. ?MIZM^QWTI\QVOMVKIX[]TI\QWVWN \PM

MTMUMV\[I\Z]V\QUM

?MI\PMZ,I\IKTI[[

'HVLJQ 3ULQFLSOH &KDOOHQJH 'HVLJQ3ULQFLSOH ,GHQWLI\WKHDVSHFWVRI\RXUDSSOLFDWLRQWKDW YDU\DQGVHSDUDWHWKHPIURPZKDWVWD\VWKH VDPH

'HVLJQ3ULQFLSOH 3URJUDPWRDQLQWHUIDFHQRWDQLPSOHPHQWDWLRQ

'HVLJQ3ULQFLSOH )DYRUFRPSRVLWLRQRYHULQKHULWDQFH

7KHWKLQJWKDWYDULHVLQWKH2EVHUYHU3DWWHUQ LVWKHVWDWHRIWKH6XEMHFWDQGWKHQXPEHUDQG W\SHVRI2EVHUYHUV:LWKWKLVSDWWHUQ\RXFDQ YDU\WKHREMHFWVWKDWDUHGHSHQGHQWRQWKHVWDWH RIWKH6XEMHFWZLWKRXWKDYLQJWRFKDQJHWKDW 6XEMHFW7KDW·VFDOOHGSODQQLQJDKHDG

%RWKWKH6XEMHFWDQG2EVHUYHUXVHLQWHUIDFHV 7KH6XEMHFWNHHSVWUDFNRIREMHFWVLPSOHPHQW LQJWKH2EVHUYHULQWHUIDFHZKLOHWKHREVHUYHUV UHJLVWHUZLWKDQGJHWQRWLILHGE\WKH6XEMHFW LQWHUIDFH$VZH·YHVHHQWKLVNHHSVWKLQJVQLFH DQGORRVHO\FRXSOHG

7KH2EVHUYHU3DWWHUQXVHVFRPSRVLWLRQWRFRPSRVH DQ\QXPEHURI2EVHUYHUVZLWKWKHLU6XEMHFWV 7KHVHUHODWLRQVKLSVDUHQ·WVHWXSE\VRPHNLQGRI LQKHULWDQFHKLHUDUFK\1RWKH\DUHVHWXSDW UXQWLPHE\FRPSRVLWLRQ

\RXDUHKHUH



Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 2. Keeping your Objects in the know

Return to Table of Contents

Page 42

H[HUFLVHVROXWLRQV

&RGH0DJQHWV

([HUFLVH VROXWLRQV

HUYDEOH LPSRUWMDYDXWLO2EV HUYHU LPSRUWMDYDXWLO2EV HQWV SXEOLFFODVV)RUHFDVW'LVSOD\LPSOHP 2EVHUYHU'LVSOD\(OHPHQW^

SULYDWHÀRDW FXUUHQW3UHV VXUH  SULYDWHÀRDW I ODVW3UHVVXU H

EVHUYDEOH SXEOLF)RUHFDVW'LVSOD\ 2 REVHUYDEOH ^

:HDWKHU'DWDZHD WKHU'DWD  :HDWKHU'DWD RE VHUYDEOH REVHUYD EOHDGG2EVHUYHU WKLV  ` DEOH YDEOHREVHUY XSGDWH 2EVHU SXEOLFYRLG UJ ^ 2EMHFWD LI REVHUYDEOHLQVWDQFHRI:HDWKHU'DWD ^

ODVW3UHVVXUH FXUUHQW3UHVVXUH FXUUHQW3UHVVXUH ZHDWKHU'DWDJHW3UHVVXUH 

GLVSOD\ 

`

`

GLVSOD\ ^ SXEOLFYRLG D\FRGHKHUH GLVSO



`











`  











#





!





#

 



















!





#



!



!















#





























#



















!

"













 

 







 













"



%







 "





 





 

 







 



 

!







!

$ 













 







 

"





















"

! 



"













&KDSWHU

Chapter 2. Keeping your Objects in the know Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

3 the DecoratorPattern

g Decorating

h

Objects g

I used to think real men subclassed everything. That was until I learned the power of extension at runtime, rather than at compile time. Now look at me!

Just call this chapter “Design Eye for the Inheritance Guy.” We’ll re-examine the typical overuse of inheritance and you’ll learn how to decorate your classes at runtime using a form of object composition. Why? Once you know the techniques of decorating, you’ll be able to give your (or someone else’s) objects new responsibilities without making any code changes to the underlying classes.

this is a new chapter

www.it-ebooks.info

79

the starbuzz story

Welcome to Starbuzz Coffee Starbuzz Coffee has made a name for itself as the fastest growing coffee shop around. If you’ve seen one on your local corner, look across the street; you’ll see another one. Because they’ve grown so quickly, they’re scrambling to update their ordering systems to match their beverage offerings. When they first went into business they designed their classes like this...

stract class, Beverage is an abbe verages subclassed by all ff ee shop. offered in the co

The description instance variable is set in each subclass and holds a description of the beverage, like “Most Excellent Dark Roast”. The getDescription() method returns the description.

Beverage description

The cost() method is abstract; subclassses need to define their own implementation.

getDescription() cost() // Other useful methods...

DarkRoast

HouseBlend cost()

cost()

Decaf cost()

Espresso cost()

Each subclass implements cost() to return the cost of the beverage.

80

Chapter 3

www.it-ebooks.info

the decorator pattern

In addition to your coffee, you can also ask for several condiments like steamed milk, soy, and mocha (otherwise known as chocolate), and have it all topped off with whipped milk. Starbuzz charges a bit for each of these, so they really need to get them built into their order system. Here’s their first attempt... Beverage description getDescription() cost() // Other useful methods...

DarkRoastWithSteamedMilk andMocha

HouseBlendWithSteamedMilk andMocha HouseBlendWithSteamedMilk cost() andCaramel HouseBlendWithWhipandMocha

cost()

cost()

cost()

DecafWithSteamedMilk andCaramel

DarkRoastWithSteamedMilk andCaramel

cost()

HouseBlendWithMocha cost() HouseBlendWithSoyandMocha

EspressoWithSteamedMilk andMocha

DecafWithSteamedMilk andMocha

cost()

EspressoWithSteamedMilk andCaramel

EspressoWithWhipandMocha

cost()

DecafWithWhipandMocha

cost() DarkRoastWithWhipandMocha

cost()

cost()

HouseBlendWithSteamedMilk andSoycost() cost()

HouseBlendWithWhip

cost()

cost()

HouseBlendWithSoy cost()

DarkRoastWithSteamedMilk andSoy

HouseBlendWithSteamedMilk cost() cost()

cost() DarkRoastWithSteamedMilk

cost() HouseBlendWithSteamedMilk andWhip

cost() HouseBlendWithWhipandSoy

cost()

EspressoWithSteamedMilk DecafWithSoy andSoy DecafWithSteamedMilk cost() andSoy EspressoWithSteamedMilk cost()

DarkRoastWithSoy cost() DecafWithSteamedMilk cost() DecafWithSoyandMocha DarkRoastWithSoy DarkRoastWithSoyandMocha cost() DecafWithSoy cost() DecafWithSoyandMocha cost() EspressoWhip cost() cost()

cost()

DecafWithWhip cost()

DarkRoastWithWhip

cost()

cost()

EspressoWithSteamedMilk andWhip DecafWithSteamedMilk DarkRoastWithSteamedMilk cost() andWhip andWhip EspressoWithWhipandSoy DecafWithWhipandSoy cost() DarkRoastWithWhipandSoy cost() cost()

cost()

EspressoWithMocha

cost() DecafWithMocha

cost()

DarkRoastWithMocha

cost() cost()

cost()

mputes the Each cost method coalo ng with the cost of the coffee the order. other condiments in

Whoa! Can you say “class explosion?”

you are here 4

www.it-ebooks.info

81

violating design principles

A

brain power

It’s pretty obvious that Starbuzz has created a maintenance nightmare for themselves. What happens when the price of milk goes up? What do they do when they add a new caramel topping? Thinking beyond the maintenance problem, which of the design principles that we’ve covered so far are they violating? Hint: they’re violating two of them in a big way! This is stupid; why do we need all these classes? Can’t we just use instance variables and inheritance in the superclass to keep track of the condiments?

Well, let’s give it a try. Let’s start with the Beverage base class and add instance variables to represent whether or not each beverage has milk, soy, mocha and whip...

Beverage

New boolean values for each condiment.

description milk soy mocha whip

Now we’ll implement cost() in Beverage (instead of keeping it abstract), so that it can calculate the costs associated with the condiments for a particular beverage instance. Subclasses will still override cost(), but they will also invoke the super version so that they can calculate the total cost of the basic beverage plus the costs of the added condiments.

getDescription() cost() hasMilk() setMilk() hasSoy() setSoy() hasMocha() setMocha() hasWhip() setWhip()

e boolean These get and setndthiments. values for the co

// Other useful methods..

82

Chapter 3

www.it-ebooks.info

the decorator pattern Beverage description milk soy mocha whip

Now let’s add in the subclasses, one for each beverage on the menu:

e st() will calculate th The superclass coth ile wh , condiments costs for all of ste() in the subclasses the overridden cofunctionality to will extend that that specific include costs for beverage type. needs to compute Each cost() methobedverage and then the cost of the ents by calling the add in the condim tation of cost(). superclass implemen

getDescription() cost() hasMilk() setMilk() hasSoy() setSoy() hasMocha() setMocha() hasWhip() setWhip() // Other useful methods..

DarkRoast

HouseBlend

Decaf

cost()

cost()

Sharpen your pencil

cost()

Espresso cost()

Write the cost( ) methods for the following classes (pseudo-Java is okay):

public class Beverage { public double cost() {

public class DarkRoast extends Beverage { public DarkRoast() { description = “Most Excellent Dark Roast”; } public double cost() {

}

}

}

}

you are here 4

www.it-ebooks.info

83

impact of change

See, five classes total. This is definitely the way to go.

I’m not so sure; I can see some potential problems with this approach by thinking about how the design might need to change in the future.

Sharpen your pencil What requirements or other factors might change that will impact this design?

Price changes for condiments will force us to alter existing code. New condiments will force us to add new methods and alter the cost method in the superclass. We may have new beverages. For some of these beverages (iced tea?), the condiments may not be appropriate, yet the Tea subclass will still inherit methods like hasWhip(). What if a customer wants a double mocha?

rn:

Your tu

84

Chapter 3

www.it-ebooks.info

aw in this is s e As w pter 1, idea! Cha ery bad av

the decorator pattern

Master and Student... Master: Grasshopper, it has been some time since our last meeting. Have you been deep in meditation on inheritance? Student: Yes, Master. While inheritance is powerful, I have learned that it doesn’t always lead to the most flexible or maintainable designs. Master: Ah yes, you have made some progress. So, tell me my student, how then will you achieve reuse if not through inheritance? Student: Master, I have learned there are ways of “inheriting” behavior at runtime through composition and delegation. Master: Please, go on... Student: When I inherit behavior by subclassing, that behavior is set statically at compile time. In addition, all subclasses must inherit the same behavior. If however, I can extend an object’s behavior through composition, then I can do this dynamically at runtime. Master: Very good, Grasshopper, you are beginning to see the power of composition. Student: Yes, it is possible for me to add multiple new responsibilities to objects through this technique, including responsibilities that were not even thought of by the designer of the superclass. And, I don’t have to touch their code! Master: What have you learned about the effect of composition on maintaining your code? Student: Well, that is what I was getting at. By dynamically composing objects, I can add new functionality by writing new code rather than altering existing code. Because I’m not changing existing code, the chances of introducing bugs or causing unintended side effects in pre-existing code are much reduced. Master: Very good. Enough for today, Grasshopper. I would like for you to go and meditate further on this topic... Remember, code should be closed (to change) like the lotus flower in the evening, yet open (to extension) like the lotus flower in the morning.

you are here 4

www.it-ebooks.info

85

the open-closed principle

The Open-Closed Principle Grasshopper is on to one of the most important design principles:

Design Principle Classes should be open for extension, but closed for modification.

Come on in; we’re open. Feel free to extend our classes with any new behavior you like. If your needs or requirements change (and we know they will), just go ahead and make your own extensions. Sorry, we’re closed. That’s right, we spent a lot of time getting this code correct and bug free, so we can’t let you alter the existing code. It must remain closed to modification. If you don’t like it, you can speak to the manager.

Our goal is to allow classes to be easily extended to incorporate new behavior without modifying existing code. What do we get if we accomplish this? Designs that are resilient to change and flexible enough to take on new functionality to meet changing requirements.

86

Chapter 3

www.it-ebooks.info

the decorator pattern

there are no

Dumb Questions

Q:

Open for extension and closed for modification? That sounds very contradictory. How can a design be both?

A:

That’s a very good question. It certainly sounds contradictory at first. After all, the less modifiable something is, the harder it is to extend, right? As it turns out, though, there are some clever OO techniques for allowing systems to be extended, even if we can’t change the underlying code. Think about the Observer Pattern (in Chapter 2)... by adding new Observers, we can extend the Subject at any time, without adding code to the Subject. You’ll see quite a few more ways of extending behavior with other OO design techniques.

Q:

Okay, I understand Observable, but how do I generally design something to be extensible, yet closed for modification?

A:

Usually, you can’t. Making OO design flexible and open to extension without the modification of existing code takes time and effort. In general, we don’t have the luxury of tying down every part of our designs (and it would probably be wastefu). Following the Open-Closed Principle usually introduces new levels of abstraction, which adds complexity to our code. You want to concentrate on those areas that are most likely to change in your designs and apply the principles there.

Q:

How do I know which areas of change are more important?

A:

That is partly a matter of experience in designing OO systems and also a matter of the knowing the domain you are working in. Looking at other examples will help you learn to identify areas of change in your own designs.

A:

While it may seem like a contradiction, there are techniques for allowing code to be extended without direct modification.

Q:

Be careful when choosing the areas of code that need to be extended; applying the Open-Closed Principle EVERYWHERE is wasteful, unnecessary, and can lead to complex, hard to understand code.

Many of the patterns give us time tested designs that protect your code from being modified by supplying a means of extension. In this chapter you’ll see a good example of using the Decorator pattern to follow the OpenClosed principle.

How can I make every part of my design follow the Open-Closed Principle?

you are here 4

www.it-ebooks.info

87

meet the decorator pattern

Meet the Decorator Pattern

Okay, enough of the “Object Oriented Design Club.” We have real problems here! Remember us? Starbuzz Coffee? Do you think you could use some of those design principles to actually help us?

Okay, we’ve seen that representing our beverage plus condiment pricing scheme with inheritance has not worked out very well – we get class explosions, rigid designs, or we add functionality to the base class that isn’t appropriate for some of the subclasses. So, here’s what we’ll do instead: we’ll start with a beverage and “decorate” it with the condiments at runtime. For example, if the customer wants a Dark Roast with Mocha and Whip, then we’ll:

1

Take a DarkRoast object

2

Decorate it with a Mocha object

3

Decorate it with a Whip object

4

Call the cost() method and rely on delegation to add on the condiment costs

Okay, but how do you “decorate” an object, and how does delegation come into this? A hint: think of decorator objects as “wrappers.” Let’s see how this works...

88

Chapter 3

www.it-ebooks.info

the decorator pattern

Constructing a drink order with Decorators 1

We start with our DarkRoast object.

cost()

DarkRoast

2

t DarkRoaasnd has t a h t r e b Remem from Beverage mputes inherits method that co a cost() of the drink. the cost

The customer wants Mocha, so we create a Mocha object and wrap it around the DarkRoast.

or. Its ject is a decorisatdecorating, The Mocha obth object it type mirrors Beeverage. (By “mirror”, in this case, a the same type..) we mean it is

cost()

cost()

DarkRoast

Mocha

3

oo, st() method tn treat co a s a h a ch o e ca So, M olymorphism w and through p wrapped in Mocha as any Beveragetoo (because Mocha is a a Beverage, Beverage). subtype of

The customer also wants Whip, so we create a Whip decorator and wrap Mocha with it.

cost()

cost()

Whip

cost()

DarkRoast

Mocha

Whip is a decorator, so it also mirrors DarkRoast’s type and includes a cost() method.

So, a DarkRoast wrapped in Mocha and Whip is still a Beverage and we can do anything with it we can do with a DarkRoast, including call its cost() method. you are here 4

www.it-ebooks.info

89

decorator characteristics

4

Now it’s time to compute the cost for the customer. We do this by calling cost() on the outermost decorator, Whip, and Whip is going to delegate computing the cost to the objects it decorates. Once it gets a cost, it will add on the cost of the Whip.

in (You’ll see how ) s. ge a few pa

Mocha. 2 Whip calls cost() on t() on the 1 First, we call cos , Whip. tor ora dec st mo out

$1.29

.10

3

cost()

.20

cost()

Whip 5

Whip adds its total, 10 cents, to the result from Mocha, and returns the final result—$1.29.

5

Mocha calls cost() on DarkRoast.

cost()

t .99 D ar k Ro as

Mocha

4

Dar kRoast returns its cost, 99 cents.

Mocha adds its cost, 20 cents, to the result from Dar kRoast, and returns the new total, $1.19.

Okay, here’s what we know so far... ß Decorators have the same supertype as the objects they decorate. ß You can use one or more decorators to wrap an object. ß Given that the decorator has the same supertype as the object it decorates, we can pass around a decorated object in place of the original (wrapped) object.

ß The decorator adds its own behavior either before and/or after delegating to the object it decorates to do the rest of the job.

ß Objects can be decorated at any time, so we can decorate objects dynamically at runtime with as many decorators as we like.

Now let’s see how this all really works by looking at the Decorator Pattern definition and writing some code. 90

Chapter 3

www.it-ebooks.info

t Key Poin

!

the decorator pattern

The Decorator Pattern defined Let’s first take a look at the Decorator Pattern description: The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.

While that describes the role of the Decorator Pattern, it doesn’t give us a lot of insight into how we’d apply the pattern to our own implementation. Let’s take a look at the class diagram, which is a little more revealing (on the next page we’ll look at the same structure applied to the beverage problem).

Each component can be used on its own, or wrapped by a decorator.

Component

component

methodA() methodB()

The ConcreteComponent is the object we’re going to dynamically add new behavior to. It extends Component.

// other methods

Decorator

ConcreteComponent methodA()

methodA()

methodB()

methodB()

// other methods

// other methods

ConcereteDecoratorA Component wrappedObj

s an The ConcreteDecoratorehathing th r fo ble instance varia t it decorates (the Componen s). ap wr r the Decorato

Each decorator HAS-A (wraps) a component, which means the decorator has an instance variable that holds a reference to a component.

ent the Decorators implem abstract same interfacemorponent they class as the co corate. are going to de ConcereteDecoratorB Component wrappedObj Object newState

methodA() methodB()

methodA()

newBehavior() // other methods

methodB() // other methods

e Decorators can extendt.th en on mp state of the co

Decorators can add new methods; however, new behavior is typically added by doing computation before or after an existing method in the component. you are here 4

www.it-ebooks.info

91

decorating beverages

Decorating our Beverages Okay, let’s work our Starbuzz beverages into this framework...

r Beverage acts asneou class. nt po m abstract co

component

Beverage description

getDescription() cost() // other useful methods

CondimentDecorator

DarkRoast

HouseBlend cost()

cost()

getDescription()

Decaf

Espresso cost()

cost()

e concretper r u o f e e Th nents, on compo e type. coffe

Milk

Whip

Soy

Mocha

Beverage beverage

Beverage beverage

Beverage beverage

Beverage beverage

cost()

cost()

cost()

cost()

getDescription()

getDescription()

getDescription()

getDescription()

And here are our condiment decorators; notice they need to implement not only cost() but also getDescription(). We’ll see why in a moment...

A

brain power

Before going further, think about how you’d implement the cost() method of the coffees and the condiments. Also think about how you’d implement the getDescription() method of the condiments.

92

Chapter 3

www.it-ebooks.info

the decorator pattern

Cubicle Conversation Some confusion over Inheritance versus Composition

ry

Ma

Okay, I’m a little confused...I thought we weren’t going to use inheritance in this pattern, but rather we were going to rely on composition instead.

Sue: What do you mean? Mary: Look at the class diagram. The CondimentDecorator is extending the Beverage class. That’s inheritance, right? Sue: True. I think the point is that it’s vital that the decorators have the same type as the objects they are going to decorate. So here we’re using inheritance to achieve the type matching, but we aren’t using inheritance to get behavior. Mary: Okay, I can see how decorators need the same “interface” as the components they wrap because they need to stand in place of the component. But where does the behavior come in? Sue: When we compose a decorator with a component, we are adding new behavior. We are acquiring new behavior not by inheriting it from a superclass, but by composing objects together. Mary: Okay, so we’re subclassing the abstract class Beverage in order to have the correct type, not to inherit its behavior. The behavior comes in through the composition of decorators with the base components as well as other decorators. Sue: That’s right. Mary: Ooooh, I see. And because we are using object composition, we get a whole lot more flexibility about how to mix and match condiments and beverages. Very smooth. Sue: Yes, if we rely on inheritance, then our behavior can only be determined statically at compile time. In other words, we get only whatever behavior the superclass gives us or that we override. With composition, we can mix and match decorators any way we like... at runtime. Mary: And as I understand it, we can implement new decorators at any time to add new behavior. If we relied on inheritance, we’d have to go in and change existing code any time we wanted new behavior. Sue: Exactly. Mary: I just have one more question. If all we need to inherit is the type of the component, how come we didn’t use an interface instead of an abstract class for the Beverage class? Sue: Well, remember, when we got this code, Starbuzz already had an abstract Beverage class. Traditionally the Decorator Pattern does specify an abstract component, but in Java, obviously, we could use an interface. But we always try to avoid altering existing code, so don’t “fix” it if the abstract class will work just fine. you are here 4

www.it-ebooks.info

93

decorator training

New barista training

Okay, I need for you to make me a double mocha, soy latte with whip.

Make a picture for what happens when the order is for a “double mocha soy lotte with whip” beverage. Use the menu to get the correct prices, and draw your picture using the same format we used earlier (from a few pages back): Mocha. 2 Whip calls cost() on

3

) on the 1 First, we call cost( outmost decorator, Whip.

$1.29

.10

cost()

.20

cost()

Whip 5

Whip adds its total, 10 cents, to the result from Mocha, and returns the final result—$1.29.

5

Mocha calls cost() on DarkRoast.

was for This picturoeast mocha a “dark r rage. whip” beve

cost()

t .99 D ar k Ro as

Mocha

4

DarkRoast returns its cost, 99 cents.

Mocha adds its cost, 20 cents, to the result from DarkRoast, and returns the new total, $1.19.

Sharpen your pencil

Draw your picture here.

Starbuzz Coffee

Coffees House Blend .89 Dark Roast .99 Decaf 1.05 Espresso 1.99 Condiments Steamed Milk .10 Mocha .20 Soy .15 Whip .10

bu tar zz

u tarb zz

ffee S Co

fe Cof e S

le “doub ke a whip” a m n h ca oy, : you te wit nd, S ! HINTha soy lat HouseBle and Whip moc ombining Mocha by c shots of two

94

Chapter 3

www.it-ebooks.info

the decorator pattern

Writing the Starbuzz code It’s time to whip this design into some real code. Let’s start with the Beverage class, which doesn’t need to change from Starbuzz’s original design. Let’s take a look:

public abstract class Beverage { String description = “Unknown Beverage”; public String getDescription() { return description; } public abstract double cost(); }

abstract Beverage is an two methods class with the n() and cost(). getDescriptio

getDescription is already implemented for us, but we need to implement cost() in the subclasses.

Beverage is simple enough. Let’s implement the abstract class for the Condiments (Decorator) as well:

to be First, we needle with a Beverage, interchangeab the Beverage class. so we extend public abstract class CondimentDecorator extends Beverage { public abstract String getDescription(); }

We’re also going to require that the condiment decorators all reimplement the getDescription() method. Again, we’ll see why in a sec...

you are here 4

www.it-ebooks.info

95

implementing the beverages

Coding beverages Now that we’ve got our base classes out of the way, let’s implement some beverages. We’ll start with Espresso. Remember, we need to set a description for the specific beverage and also implement the cost() method.

public class Espresso extends Beverage { public Espresso() { description = “Espresso”; } public double cost() { return 1.99; } }

public double cost() { return .89; }

Okay, here’s another Beverage. All we do is set the appropriate description, “House Blend Coffee,” and then return the correct cost: 89¢. You can create the other two Beverage classses (DarkRoast and Decaf) in exactly the same way.

96

we To take care of the description,the for or uct str con set this in the instance class. Remember the description ge. variable is inherited from Bevera

’t spresso. We djuonst E an of st co e to compute th this class, we Finally, we needabout adding in condiments in.99. need to worry the price of an Espresso: $1 need to return

public class HouseBlend extends Beverage { public HouseBlend() { description = “House Blend Coffee”; }

}

d the Beverage First we exthiens is a beverage. class, since t

Chapter 3

www.it-ebooks.info

Coffee Starbuzz s Coffee Blend House oast R Dark Decaf so Espres

.89 .99 1.05 1.99

ents Condim d Milk Steame Mocha Soy Whip

.10 .20 .15 .10

the decorator pattern

Coding condiments If you look back at the Decorator Pattern class diagram, you’ll see we’ve now written our abstract component (Beverage), we have our concrete components (HouseBlend), and we have our abstract decorator (CondimentDecorator). Now it’s time to implement the concrete decorators. Here’s Mocha:

tor tDecora n e im d n o Mocha is a decorator, so we e Mocha with at ti an mber, Cverage. st e in m to e g in R We’re go extend CondimentDecorator. Be Beverage using: extends a reference to a e variable to hold th (1) An instancewrapping. public class Mocha extends CondimentDecorator { beverage we are Beverage beverage; t this instance (2) A way to seject we are wrapping. public Mocha(Beverage beverage) { variable to theinob pass the beverage this.beverage = beverage; ere, we’re go g tothe decorator’s H } we’re wrapping to constructor. public String getDescription() { return beverage.getDescription() + “, Mocha”; } public double cost() { return .20 + beverage.cost(); } }

beverage ute the cost of oullr to mp co to ed e ne we w No delegate the ca mpth we t, rs Fi . ha e the oc ut M th co wi ng, so that it can to the result. ti ra co de ’re we ct je ob e cost of Mocha cost; then, we add th

We want our description to not only include the beverage - say “Dark Roast” - but also to include each item decorating the beverage, for instance, “Dark Roast, Mocha”. So we first delegate to the object we are decorating to get its description, then append “, Mocha” to that description.

On the next page we’ll actually instantiate the beverage and wrap it with all its condiments (decorators), but first... Sharpen your pencil

Write and compile the code for the other Soy and Whip condiments. You’ll need them to finish and test the application.

you are here 4

www.it-ebooks.info

97

testing the beverages

Serving some coffees Congratulations. It’s time to sit back, order a few coffees and marvel at the flexible design you created with the Decorator Pattern.

Here’s some test code to make orders: public class StarbuzzCoffee { public static void main(String args[]) { Beverage beverage = new Espresso(); System.out.println(beverage.getDescription() + “ $” + beverage.cost());

s condimentt. o n , o s s e nd cos an espr Order upt its description a and prin

oast object. Make a DarkR Beverage beverage2 = new DarkRoast(); Wrap it with a Mocha. beverage2 = new Mocha(beverage2); Wrap it in a second Mocha. beverage2 = new Mocha(beverage2); beverage2 = new Whip(beverage2); Wrap it in a Whip. System.out.println(beverage2.getDescription() + “ $” + beverage2.cost()); Beverage beverage3 = new HouseBlend(); beverage3 = new Soy(beverage3); beverage3 = new Mocha(beverage3); beverage3 = new Whip(beverage3); System.out.println(beverage3.getDescription() + “ $” + beverage3.cost());

Finally, give us a HouseBlend with Soy, Mocha, and Whip.

} }

Now, let’s get those orders in:

We’re going to see a much better way of creating decorated objects when we cover the Factory and Builder Design Patterns.

File Edit Window Help CloudsInMyCoffee

% java StarbuzzCoffee Espresso $1.99 Dark Roast Coffee, Mocha, Mocha, Whip $1.49 File Edit Window Help CloudsInMyCoffee House Blend Coffee, Soy, Mocha, Whip $1.34 %

98

Chapter 3

www.it-ebooks.info

the decorator pattern

there are no

Dumb Questions

Q:

I’m a little worried about code that might test for a specfic concrete component – say, HouseBlend – and do something, like issue a discount. Once I’ve wrapped the HouseBlend with decorators, this isn’t going to work anymore.

A:

That is exactly right. If you have code that relies on the concrete component’s type, decorators will break that code. As long as you only write code against the abstract component type, the use of decorators will remain transparent to your code. However, once you start writing code against concrete components, you’ll want to rethink your application design and your use of decorators.

Q:

Wouldn’t it be easy for some client of a beverage to end up with a decorator that isn’t the outermost decorator? Like if I had a DarkRoast with Mocha, Soy, and Whip, it would be easy to write code that somehow ended up with a reference to Soy instead of Whip, which means it would not including Whip in the order.

A:

You could certainly argue that you have to manage more objects with the Decorator Pattern and so there is an increased chance that coding errors will introduce the kinds of problems you suggest. However, decorators are typically created by using other patterns like Factory and Builder. Once we’ve covered these patterns, you’ll see that the creation of the concrete component with its decorator is “well encapsulated” and doesn’t lead to these kinds of problems.

Q:

Can decorators know about the other decorations in the chain? Say, I wanted my getDecription() method to print “Whip, Double Mocha” instead of “Mocha, Whip, Mocha”? That would require that my outermost decorator know all the decorators it is wrapping.

A:

Decorators are meant to add behavior to the object they wrap. When you need to peek at multiple layers into the decorator chain, you are starting to push the decorator beyond its true intent. Nevertheless, such things are possible. Imagine a CondimentPrettyPrint decorator that parses the final decription and can print “Mocha, Whip, Mocha” as “Whip, Double Mocha.” Note that getDecription() could return an ArrayList of descriptions to make this easier.

Sharpen your pencil Our friends at Starbuzz have introduced sizes to their menu. You can now order a coffee in tall, grande, and venti sizes (translation: small, medium, and large). Starbuzz saw this as an intrinsic part of the coffee class, so they’ve added two methods to the Beverage class: setSize() and getSize(). They’d also like for the condiments to be charged according to size, so for instance, Soy costs 10¢, 15¢ and 20¢ respectively for tall, grande, and venti coffees. How would you alter the decorator classes to handle this change in requirements?

you are here 4

www.it-ebooks.info

99

decorators in java i/o

Real World Decorators: Java I/O The large number of classes in the java.io package is... overwhelming. Don’t feel alone if you said “whoa” the first (and second and third) time you looked at this API. But now that you know the Decorator Pattern, the I/O classes should make more sense since the java.io package is largely based on Decorator. Here’s a typical set of objects that use decorators to add functionality to reading data from a file:

A text file for reading.

ered

e InputStr

a

ff

m

ne Nu mberInputStrea

LineNumberInputStream is also a concrete decorator. It adds the ability to count the line numbers as it reads data.

m

Li

Bu

FileInputStream

BufferedInputStream is a concrete decorator. BufferedInputStream adds behavior in two ways: it buffers input to improve performance, and also augments the interface with a new method readLine() for reading character-based input, a line at a time.

BufferedInputStream and LineNumberInputStream both extend FilterInputStream, which acts as the abstract decorator class.

100

Chapter 3

www.it-ebooks.info

hat’s component tary e h t is m a e r FileInputStr ted. The Java I/O lib g a in r d o c lu e c nts, in being d ral compone BufferInputStream, e v se s e li p p su others. eam, String FileInputStr putStream and a fewent from ByteArrayIn give us a base compon All of thesead bytes. which to re

the decorator pattern

Decorating the java.io classes ent. ract compon st b a r u o ’s Here

FilterInputStream is an abstract decorator.

InputStream

FileInputStream

StringBufferInputStream

PushbackInputStream

These InputStreams act as the concrete components that we will wrap with decorators. There are a few more we didn’t show, like ObjectInputStream.

FilterInputStream

ByteArrayInputStream

BufferedInputStream

DataInputStream

LineNumberInputStream

crete decorators.

And finally, here are all our con

You can see that this isn’t so different from the Starbuzz design. You should now be in a good position to look over the java.io API docs and compose decorators on the various input streams. You’ll see that the output streams have the same design. And you’ve probably already found that the Reader/Writer streams (for character-based data) closely mirror the design of the streams classes (with a few differences and inconsistencies, but close enough to figure out what’s going on). Java I/O also points out one of the downsides of the Decorator Pattern: designs using this pattern often result in a large number of small classes that can be overwhelming to a developer trying to use the Decorator-based API. But now that you know how Decorator works, you can keep things in perspective and when you’re using someone else’s Decorator-heavy API, you can work through how their classes are organized so that you can easily use wrapping to get the behavior you’re after.

you are here 4

www.it-ebooks.info

101

write your own i/o decorator

Writing your own Java I/O Decorator Okay, you know the Decorator Pattern, you’ve seen the I/O class diagram. You should be ready to write your own input decorator. How about this: write a decorator that converts all uppercase characters to lowercase in the input stream. In other words, if we read in “I know the Decorator Pattern therefore I RULE!” then your decorator converts this to “i know the decorator pattern therefore i rule!”

t to import e g r o f ’t n o D t shown) java.io... (no

No problem. I just have to extend the FilterInputStream class and override the read() methods.

First, extend the FilterInputStream, the abstract decorator for all InputStreams.

public class LowerCaseInputStream extends FilterInputStream { public LowerCaseInputStream(InputStream in) { super(in); } public int read() throws IOException { int c = super.read(); return (c == -1 ? c : Character.toLowerCase((char)c)); }

}

public int read(byte[] b, int offset, int len) throws IOException { int result = super.read(b, offset, len); for (int i = offset; i < offset+result; i++) { b[i] = (byte)Character.toLowerCase((char)b[i]); Now we need to implement two } read methods. They take a return result; byte (or an array of bytes) } convert each byte (that

and represents a character) to lowercase if it’s an uppercase character.

REMEMBER: we don’t provide import and package statements in the code listings. Get the complete source code from the wickedlysmart web site. You’ll find the URL on page xxxiii in the Intro. 102

Chapter 3

www.it-ebooks.info

the decorator pattern

Test out your new Java I/O Decorator Write some quick code to test the I/O decorator: public class InputTest { public static void main(String[] args) throws IOException { int c; try { m InputStream in = ileInputStrea new LowerCaseInputStream( Set up the tFe it, first with new BufferedInputStream( and decoradInputStream new FileInputStream(“test.txt”))); Buffere while((c = in.read()) >= 0) { System.out.print((char)c); } in.close(); } catch (IOException e) { e.printStackTrace(); } } }

a brand new and then ouInr putStream filter. LowerCase

I know the Decorator Pattern therefore I RULE!

Just use the stream to read characters until the end of file and print as we go.

test.txt file

You need tfoile. make this

Give it a spin: File Edit Window Help DecoratorsRule

% java InputTest i know the decorator pattern therefore i rule! %

you are here 4

www.it-ebooks.info

103

decorator interview

Patterns Exposed This week’s interview:

Confessions of a Decorator HeadFirst: Welcome Decorator Pattern. We’ve heard that you’ve been a bit down on yourself lately? Decorator: Yes, I know the world sees me as the glamorous design pattern, but you know, I’ve got my share of problems just like everyone. HeadFirst: Can you perhaps share some of your troubles with us? Decorator: Sure. Well, you know I’ve got the power to add flexibility to designs, that much is for sure, but I also have a dark side. You see, I can sometimes add a lot of small classes to a design and this occasionally results in a design that’s less than straightforward for others to understand. HeadFirst: Can you give us an example? Decorator: Take the Java I/O libraries. These are notoriously difficult for people to understand at first. But if they just saw the classes as a set of wrappers around an InputStream, life would be much easier. HeadFirst: That doesn’t sound so bad. You’re still a great pattern, and improving this is just a matter of public education, right? Decorator: There’s more, I’m afraid. I’ve got typing problems: you see, people sometimes take a piece of client code that relies on specific types and introduce decorators without thinking through everything. Now, one great thing about me is that you can usually insert decorators transparently and the client never has to know it’s dealing with a decorator. But like I said, some code is dependent on specific types and when you start introducing decorators, boom! Bad things happen. HeadFirst: Well, I think everyone understands that you have to be careful when inserting decorators, I don’t think this is a reason to be too down on yourself. Decorator: I know, I try not to be. I also have the problem that introducing decorators can increase the complexity of the code needed to instantiate the component. Once you’ve got decorators, you’ve got to not only instantiate the component, but also wrap it with who knows how many decorators. HeadFirst: I’ll be interviewing the Factory and Builder patterns next week – I hear they can be very helpful with this? Decorator: That’s true; I should talk to those guys more often. HeadFirst: Well, we all think you’re a great pattern for creating flexible designs and staying true to the Open-Closed Principle, so keep your chin up and think positively! Decorator: I’ll do my best, thank you. 104

Chapter 3

www.it-ebooks.info

the decorator pattern

Tools for your Design Toolbox

BULLET POINTS

You’ve got another chapter under your belt and a new principle and pattern in the toolbox.

ß Inheritance is one form of extension, but not necessarily the best way to achieve flexibility in our designs.

ß In our designs we should allow behavior to be extended without the need to modify existing code.

OO Basincs Abstractio tion s OO Principle Encapsulaphism Polymor hat varies. w e t la su p a Enc nchee. ritance eritaIn h in r e v o n ositio Favor comp not interfaces, Program to s. ion implementat gns coupled desi ly se o lo r o Strive f eract. ts that int c je b o n e e w bet for

ld be open r u o h s s e s s la o C ut closed f extension b n. modificatio

ß Composition and delegation can often be used to add new behaviors at runtime.

ß The Decorator Pattern provides an alternative to subclassing for extending behavior.

ß The Decorator Pattern involves a set of decorator classes that are used to wrap concrete components.

ß We now have the Open-Closed g Principle to guide us. We’re goin to strive to design our system so that the closed parts are . isolated from our new extensions

Decorator classes mirror the type of the components they decorate. (In fact, they are the same type as the components they decorate, either through inheritance or interface implementation.)

ß Decorators change the behavior

OO Patterr-ndsefineysofa aolgneor-itthom-s,tmhaanty

bys-erdvefeinyesbaetfwameilenkeosbjethcetms soddaitllioitnsal O g e t a r St depenedaecnhcone, andrm-aanAgtets ascthaotareit, hm o ch lg pddaytneadmically. encapsuwlahteensDoenc.e oSortbrajeattcetgy slettsoietahdne aaonbdjecutit able ilritme ienclioetnifts thaat fulesexib. le a interchdanegpeernedseptnolytnsib r tending nden f o s provide vary indaeupteoDmeactoicralltyor o subclassing for ex t alternative y. t functionali designs n for creatingOr was it er t t pa st ir f r . And here’s ou the Open-Closed Principle ern we’ve that satisfy st? Is there another patt really the fir lows this principle as well? used that fol www.it-ebooks.info

of their components by adding new functionality before and/or after (or even in place of) method calls to the component.

ß You can wrap a component with any number of decorators.

ß Decorators are typically transparent to the client of the component; that is, unless the client is relying on the component’s concrete type.

ß Decorators can result in many small objects in our design, and overuse can be complex. you are here 4

105

exercise solutions

Exercise solutions public class Beverage { // declare instance variables for milkCost, // soyCost, mochaCost, and whipCost, and // getters and setters for milk, soy, mocha // and whip.

public class DarkRoast extends Beverage { public DarkRoast() { description = “Most Excellent Dark Roast”; }

public float cost() { float condimentCost = 0.0; if (hasMilk()) { condimentCost += milkCost; } if (hasSoy()) { condimentCost += soyCost; } if (hasMocha()) { condimentCost += mochaCost; } if (hasWhip()) { condimentCost += whipCost; } return condimentCost;

public float cost() { return 1.99 + super.cost();

}

}

} }

New barista training

“double mocha soy lotte with whip” on Mocha 2 Whip calls cost() another Mocha. 3 Mocha calls cost() on the Mocha calls cost() on Soy. First, we call cost() on 4 Next, 1 outmost decorator, Whip. Soy calls 5 Last topping! cost() on HouseBlend.

6

offee

tarbu

zz C

$1.54

.10

cost()

cost() cost()

.20

S

W

.15

.20

M

hip

Mo

cha

oc

ha

cost()

So

y

11 Finally, the result returns to

Whip’s cost(), which adds .10 and we have a final cost of $1.54.

106

Chapter 3

www.it-ebooks.info

cost()

.89 nd HouseBle

7

8

9

HouseBlend’s cost() method returns .89 cents and pops off the stack. Soy’s cost() method adds .15 and returns the result, and pops off the stack.

The second Mocha’s cost() method adds .20 and returns the result, and pops off the stack.

method The first Mocha’s cost() result, adds .20 and returns the and pops off the stack.

the decorator pattern

Exercise solutions Our friends at Starbuzz have introduced sizes to their menu. You can now order a coffee in tall, grande, and venti sizes (for us normal folk: small, medium, and large). Starbuzz saw this as an intrinsic part of the coffee class, so they’ve added two methods to the Beverage class: setSize() and getSize(). They’d also like for the condiments to be charged according to size, so for instance, Soy costs 10¢, 15¢, and 20¢ respectively for tall, grande, and venti coffees. How would you alter the decorator classes to handle this change in requirements?

public class Soy extends CondimentDecorator { Beverage beverage; public Soy(Beverage beverage) { this.beverage = beverage; } public getSize() { return beverage.getSize(); }

propagate the Now we need thoo d to the wrapped getSize() mete should also move this beverage. W he abstract class since method to t l condiment decorators. it’s used in al

public String getDescription() { return beverage.getDescription() + “, Soy”; } public double cost() { double cost = beverage.cost(); if (getSize() == Beverage.TALL) { cost += .10; } else if (getSize() == Beverage.GRANDE) { cost += .15; } else if (getSize() == Beverage.VENTI) { cost += .20; } return cost; }

Here we get the size (which propagates all the way to the concrete beverage) and then add the appropriate cost.

}

you are here 4

www.it-ebooks.info

107

Chapter 4. Baking with OO Goodness

Table of Contents Chapter 4. Baking with OO Goodness.......................................................... 1 Section 4.1. Brain Power................................................................................................................................................................. 3 Section 4.2. Identifying the aspects that vary................................................................................................................................. 4 Section 4.3. But the pressure is on to add more pizza types.......................................................................................................... 5 Section 4.4. Encapsulating object creation..................................................................................................................................... 6 Section 4.5. Building a simple pizza factory................................................................................................................................... 7 Section 4.6. There are no Dumb Questions.................................................................................................................................... 7 Section 4.7. Reworking the PizzaStore class.................................................................................................................................. 8 Section 4.8. The Simple Factory defined........................................................................................................................................ 9 Section 4.9. Franchising the pizza store....................................................................................................................................... 10 Section 4.10. A framework for the pizza store.............................................................................................................................. 12 Section 4.11. Allowing the subclasses to decide............................................................................................................................ 13 Section 4.12. Let's make a PizzaStore............................................................................................................................................ 15 Section 4.13. Declaring a factory method...................................................................................................................................... 17 Section 4.14. Let's see how it works: ordering pizzas with the pizza factory method.................................................................. 18 Section 4.15. Let's check out how these pizzas are really made to order... Behind the Scenes.................................................... 19 Section 4.16. We're just missing one thing: PIZZA!..................................................................................................................... 20 Section 4.17. Now we just need some concrete subclasses... how about defining New York and Chicago style cheese pizzas?..... 21 Section 4.18. It's finally time to meet the Factory Method Pattern............................................................................................. 23 Section 4.19. Another perspective: parallel class hierarchies...................................................................................................... 24 Section 4.20. Design Puzzle.......................................................................................................................................................... 25 Section 4.21. Factory Method Pattern defined............................................................................................................................. 26 Section 4.22. There are no Dumb Questions................................................................................................................................ 27 Section 4.23. A very dependent PizzaStore.................................................................................................................................. 29 Section 4.24. Looking at object dependencies............................................................................................................................. 30 Section 4.25. The Dependency Inversion Principle...................................................................................................................... 31 Section 4.26. Applying the Principle............................................................................................................................................ 32 Section 4.27. Inverting your thinking........................................................................................................................................... 34 Section 4.28. A few guidelines to help you follow the Principle.................................................................................................. 35 Section 4.29. Meanwhile, back at the PizzaStore......................................................................................................................... 36 Section 4.30. Families of ingredients........................................................................................................................................... 37 Section 4.31. Building the ingredient factories............................................................................................................................ 38 Section 4.32. Building the New York ingredient factory.............................................................................................................. 39 Section 4.33. Sharpen your pencil................................................................................................................................................ 40 Section 4.34. Reworking the pizzas............................................................................................................................................... 41 Section 4.35. Reworking the pizzas, continued............................................................................................................................ 42 Section 4.36. Code Up Close......................................................................................................................................................... 43 Section 4.37. Revisiting our pizza stores...................................................................................................................................... 44 Section 4.38. What have we done?............................................................................................................................................... 45 Section 4.39. More pizza for Ethan and Joel................................................................................................................................ 46 Section 4.40. Abstract Factory Pattern defined........................................................................................................................... 48 Section 4.41. Patterns Exposed..................................................................................................................................................... 50 Section 4.42. Factory Method and Abstract Factory compared................................................................................................... 52 Section 4.43. Tools for your Design Toolbox................................................................................................................................ 54 Section 4.44. Exercise solutions................................................................................................................................................... 56 Section 4.45. Sharpen your pencil................................................................................................................................................ 56 Section 4.46. Design Puzzle Solution............................................................................................................................................ 57 Section 4.47. A very dependent PizzaStore.................................................................................................................................. 58 Section 4.48. Sharpen your pencil................................................................................................................................................ 58 Section 4.49. Sharpen your pencil................................................................................................................................................ 59 Section 4.50. Puzzle Solution....................................................................................................................................................... 60

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 1

the Factory Pattern

4

5

%DNLQJZLWK22*RRGQHVV

4

*HWUHDG\WREDNHVRPHORRVHO\FRXSOHG22GHVLJQV7KHUHLVPRUHWR PDNLQJREMHFWVWKDQMXVWXVLQJWKHQHZRSHUDWRU
WKLVLVDQHZFKDSWHU



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 2

WKLQNLQJDERXW³QHZ´

2ND\LW·VEHHQWKUHHFKDSWHUV DQG\RXVWLOOKDYHQ·WDQVZHUHGP\ TXHVWLRQDERXWQHZ:HDUHQ·WVXSSRVHG WRSURJUDPWRDQLPSOHPHQWDWLRQEXW HYHU\WLPH,XVHQHZWKDW·VH[DFWO\ ZKDW,·PGRLQJULJKW"

:KHQ\RXVHH´QHZµWKLQN´FRQFUHWHµ AM[_PMVaW]][MVM_aW]IZMKMZ\IQVTaQV[\IV\QI\QVOIKWVKZM\M KTI[[[W\PI\¼[LMÅVQ\MTaIVQUXTMUMV\I\QWVVW\IVQV\MZNIKM)VL Q\¼[IOWWLY]M[\QWV#aW]¼^MTMIZVML\PI\\aQVOaW]ZKWLM\WI KWVKZM\MKTI[[KIVUISMQ\UWZMNZIOQTMIVLTM[[ÆM`QJTM 'XFNGXFN QHZ0DOODUG'XFN 

:HZDQWWRXVHLQWHUI WRNHHSFRGHIOH[LEO DFHV H

HDQ %XWZHKDYHWRFUHDW FODVV WH FUH FRQ D RI QFH WD LQV

?PMVaW]PI^MI_PWTM[M\WN ZMTI\MLKWVKZM\MKTI[[M[WN\MVaW]¼ZM NWZKML\W_ZQ\MKWLMTQSM\PQ[" 'XFNGXFN LI SLFQLF ^ GXFN QHZ0DOODUG'XFN  `HOVHLI KXQWLQJ ^ GXFN QHZ'HFR\'XFN  `HOVHLI LQ%DWK7XE ^ GXFN QHZ5XEEHU'XFN  `

LIIHUHQW :HKDYHDEXQFKRIG RQ·WNQRZ HG Z DQG GXFNFODVVHV QHZHQHHG XQWLOUXQWLPHZKLFKR H LDW QW WRLQVWD

0MZM_M¼^MOW\[M^MZITKWVKZM\MKTI[[M[JMQVOQV[\IV\QI\MLIVL\PM LMKQ[QWVWN _PQKP\WQV[\IV\QI\MQ[UILMI\Z]V\QUMLMXMVLQVOWV [WUM[M\WN KWVLQ\QWV[ ?PMVaW][MMKWLMTQSM\PQ[aW]SVW_\PI\_PMVQ\KWUM[\QUMNWZ KPIVOM[WZM`\MV[QWV[aW]¼TTPI^M\WZMWXMV\PQ[KWLMIVLM`IUQVM _PI\VMML[\WJMILLMLWZLMTM\ML7N\MV\PQ[SQVLWN KWLMMVL[ ]XQV[M^MZITXIZ\[WN \PMIXXTQKI\QWVUISQVOUIQV\MVIVKMIVL ]XLI\M[UWZMLQNÅK]T\IVLMZZWZXZWVM 

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 3

WKHIDFWRU\SDWWHUQ

%XW\RXKDYHWRFUHDWH DQREMHFWDWVRPHSRLQWDQG -DYDRQO\JLYHVXVRQHZD\WR FUHDWHDQREMHFWULJKW"6R ZKDWJLYHV"

:KDW·VZURQJZLWK´QHZµ"
5HPHPEHUWKD EH´RSHQIRUHWGHVLJQVVKRXOG FORVHGIRUPRG[WHQVLRQEXW VHH&KDSWHU LILFDWLRQµ IRUDUHYLHZ

YiX`e gfn\i +RZPLJKW\RXWDNHDOOWKHSDUWVRI\RXUDSSOLFDWLRQWKDWLQVWDQWLDWHFRQFUHWHFODVVHVDQG VHSDUDWHRUHQFDSVXODWHWKHPIURPWKHUHVWRI\RXUDSSOLFDWLRQ"

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 4

LGHQWLI\ZKDWYDULHV

1LMV\QNaQVO\PMI[XMK\[\PI\^IZa 4M\¼[[IaaW]PI^MIXQbbI[PWXIVLI[IK]\\QVOMLOMXQbbI[\WZM W_VMZQV7JRMK\^QTTMaW]UQOP\MVL]X_ZQ\QVO[WUMKWLMTQSM\PQ[" 3L]]DRUGHU3L]]D ^ 

3L]]DSL]]D QHZ3L]]D 



SL]]DSUHSDUH 



SL]]DEDNH 



SL]]DFXW 



SL]]DER[ 



UHWXUQSL]]D

)RUIOH[LELOLW\ZHUHDOO\ZDQW WKLVWREHDQDEVWUDFWFODVVRU LQWHUIDFHEXWZHFDQ·WGLUHFWO\ LQVWDQWLDWHHLWKHURIWKRVH 

`

%XW\RXQHHGPRUHWKDQRQHW\SHRISL]]D

;W\PMVaW]¼LILL[WUMKWLM\PI\LM\MZUQVM[\PMIXXZWXZQI\M\aXMWN XQbbI IVL\PMVOWM[IJW]\UISQVO\PMXQbbI"

:H·UHQRZSDVVLQJLQ WKHW\SHRISL]]DWR RUGHU3L]]D

3L]]DRUGHU3L]]D 6WULQJW\SH ^ 

3L]]DSL]]D

LI W\SHHTXDOV ³FKHHVH´ ^ SL]]D QHZ&KHHVH3L]]D  `HOVHLI W\SHHTXDOV ³JUHHN´ ^ SL]]D QHZ*UHHN3L]]D  

`HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^

SL]]D QHZ3HSSHURQL3L]]D  ` 

SL]]DSUHSDUH 



SL]]DEDNH 



SL]]DFXW 



SL]]DER[ 



UHWXUQSL]]D

`



%DVHGRQWKHW\SHRISL]]DZH LQVWDQWLDWHWKHFRUUHFWFRQFUHWH DQGDVVLJQLWWRWKHSL]]DLQVWDQ FODVV YDULDEOH1RWHWKDWHDFKSL]]D FH KDVWRLPSOHPHQWWKH3L]]DLQW KHUH HUIDFH

2QFHZHKDYHD3L]]DZHSUHSDUHLW \RXNQRZUROOWKHGRXJKSXWRQWKH VDXFHDQGDGGWKHWRSSLQJV FKHHVH  WKHQZHEDNHLWFXWLWDQGER[LW (DFK3L]]DVXEW\SH &KHHVH3L]]D 9HJJLH3L]]DHWF NQRZVKRZWR SUHSDUHLWVHOI

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 5

WKHIDFWRU\SDWWHUQ

*]\\PMXZM[[]ZMQ[WV\WILLUWZMXQbbI\aXM[ AW]ZMITQbM\PI\ITTWN aW]ZKWUXM\Q\WZ[PI^MILLMLIKW]XTMWN \ZMVLaXQbbI[\W \PMQZUMV]["\PM+TIU8QbbIIVL\PM>MOOQM8QbbI7J^QW][TaaW]VMML\WSMMX ]X_Q\P\PMKWUXM\Q\QWV[WaW]¼TTILL\PM[MQ\MU[\WaW]ZUMV])VLaW]PI^MV¼\ JMMV[MTTQVOUIVa/ZMMS8QbbI[TI\MTa[WaW]LMKQLM\W\ISM\PI\WNN \PMUMV]"

3L]]DRUGHU3L]]D 6WULQJW\SH ^

FORVHG HLV127 7KLVFRGGLILFDWLRQ,I HV IRUPR ]D6KRSFKDQJ H WKH3L] DRIIHULQJVZ LWVSL]] JHWLQWRWKLV KDYHWR GPRGLI\LW FRGHDQ



3L]]DSL]]D

LI W\SHHTXDOV ³FKHHVH´ ^

ULHV 7KLVLVZKDWYD $VWKHSL]]D HV VHOHFWLRQFKDQJ O RYHUWLPH\RX·O WKLV KDYHWRPRGLI\ HU FRGHRYHUDQGRY

SL]]D QHZ&KHHVH3L]]D  `HOVHLI W\SHHTXDOV ³JUHHN´ ^ SL]]D QHZ*UHHN3L]]D  

`HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^

SL]]D QHZ3HSSHURQL3L]]D  

`HOVHLI W\SHHTXDOV ³FODP´ ^

SL]]D QHZ&ODP3L]]D  

`HOVHLI W\SHHTXDOV ³YHJJLH´ ^

SL]]D QHZHJJLH3L]]D  ` 

SL]]DSUHSDUH 



SL]]DEDNH 



SL]]DFXW 



SL]]DER[ 



UHWXUQSL]]D

`

7KLVLVZKDWZHH[SHFWWRVWD\ WKHVDPH)RUWKHPRVWSDUW SUHSDULQJFRRNLQJDQGSDFNDJLQJ DSL]]DKDVUHPDLQHGWKHVDPH IRU\HDUVDQG\HDUV6RZH GRQ·WH[SHFWWKLVFRGHWRFKDQJH MXVWWKHSL]]DVLWRSHUDWHVRQ

+TMIZTaLMITQVO_Q\P_PQKPKWVKZM\MKTI[[Q[QV[\IV\QI\MLQ[ZMITTaUM[[QVO]XW]Z WZLMZ8QbbIUM\PWLIVLXZM^MV\QVOQ\NZWUJMQVOKTW[MLNWZUWLQÅKI\QWV*]\VW_ \PI\_MSVW__PI\Q[^IZaQVOIVL_PI\Q[V¼\Q\¼[XZWJIJTa\QUM\WMVKIX[]TI\MQ\

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 6

HQFDSVXODWHREMHFWFUHDWLRQ

-VKIX[]TI\QVOWJRMK\KZMI\QWV ;WVW__MSVW__M¼LJMJM\\MZWNN UW^QVO\PMWJRMK\KZMI\QWV W]\WN \PMWZLMZ8QbbIUM\PWL*]\PW_'?MTT_PI\ _M¼ZMOWQVO\WLWQ[\ISM\PMKZMI\QWVKWLMIVLUW^MQ\W]\ QV\WIVW\PMZWJRMK\\PI\Q[WVTaOWQVO\WJMKWVKMZVML_Q\P KZMI\QVOXQbbI[

LI W\SHHTXDOV ³FKHHVH´ ^ SL]]D QHZ&KHHVH3L]]D  

`HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^

SL]]D QHZ3HSSHURQL3L]]D  

`HOVHLI W\SHHTXDOV ³FODP´ ^

SL]]D QHZ&ODP3L]]D  

`HOVHLI W\SHHTXDOV ³YHJJLH´ ^

SL]]D QHZ9HJJLH3L]]D  `

3L]]DRUGHU3L]]D 6WULQJW\SH ^ 

3L]]DSL]]D



SL]]DSUHSDUH 



SL]]DEDNH 



SL]]DFXW 



SL]]DER[ 



UHWXUQSL]]D

`

 )LUVWZHSXOOWKHREMHFW  WKH RI XW HR FRG RQ FUHDWL RUGHU3L]]D0HWKRG

:KDW·V JRLQJ WRJRK

HUH"

LQDQREMHFWWKDW 7KHQZHSODFHWKDWFRGH RXWKRZWRFUHDWH LVRQO\JRLQJWRZRUU\DE HFWQHHGVDSL]]D REM HU RWK Q\ ID SL]]DV, WRFRPHWR FW EMH HR WK VLV FUHDWHGWKL

LP S

6

.IK\WZQM[PIVLTM\PMLM\IQT[WN WJRMK\KZMI\QWV7VKM_MPI^M I;QUXTM8QbbI.IK\WZaW]ZWZLMZ8QbbIUM\PWLR][\JMKWUM[ IKTQMV\WN \PI\WJRMK\)Va\QUMQ\VMML[IXQbbIUQ\I[S[ \PMXQbbINIK\WZa\WUISMWVM/WVMIZM\PMLIa[_PMV\PM WZLMZ8QbbIUM\PWLVMML[\WSVW_IJW]\/ZMMS^MZ[][+TIU XQbbI[6W_\PMWZLMZ8QbbIUM\PWLR][\KIZM[\PI\Q\OM\[I XQbbI_PQKPQUXTMUMV\[\PM8QbbIQV\MZNIKM[W\PI\Q\KIVKITT XZMXIZMJISMK]\IVLJW`

WR U\

:H·YHJRWDQDPHIRUWKLVQHZREMHFWZH FDOOLWD)DFWRU\

OH3L]]D)DF

?M¼^M[\QTTOW\INM_LM\IQT[\WÅTTQVPMZM#NWZQV[\IVKM_PI\LWM[ \PMWZLMZ8QbbIUM\PWLZMXTIKMQ\[KZMI\QWVKWLM_Q\P'4M\¼[ QUXTMUMV\I[QUXTMNIK\WZaNWZ\PMXQbbI[\WZMIVLÅVLW]\ 

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 7

WKHIDFWRU\SDWWHUQ

*]QTLQVOI[QUXTMXQbbINIK\WZa ?M¼TT[\IZ\_Q\P\PMNIK\WZaQ\[MTN?PI\_M¼ZMOWQVO\WLWQ[LMÅVMIKTI[[\PI\MVKIX[]TI\M[\PMWJRMK\ KZMI\QWVNWZITTXQbbI[0MZMQ\Q[

H3L]]D)DFWRU\,WKDV +HUH·VRXUQHZFODVVWKH6LPSO IRULWVFOLHQWV ]DV SL] RQHMRELQOLIHFUHDWLQJ

SXEOLFFODVV6LPSOH3L]]D)DFWRU\^ SXEOLF3L]]DFUHDWH3L]]D 6WULQJW\SH ^ 3L]]DSL]]D QXOO

D Q HILQH PHWKRGL H G  H Z K WR   W W  V V D L U ]  )L WH3L] 7KLV LOOXVH FUHD IDFWRU\ OLHQWVZ FWV WKH KRGDOOF QHZREMH PHW QWLDWH LQVWD

LI W\SHHTXDOV ³FKHHVH´ ^ SL]]D QHZ&KHHVH3L]]D  `HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^ SL]]D QHZ3HSSHURQL3L]]D  `HOVHLI W\SHHTXDOV ³FODP´ ^ SL]]D QHZ&ODP3L]]D  `HOVHLI W\SHHTXDOV ³YHJJLH´ ^ SL]]D QHZ9HJJLH3L]]D  ` UHWXUQSL]]D ` `

+HUH·VWKHFRGHZH SOXFNHGRXWRIWKH RUGHU3L]]D PHWKRG

7KLVFRGHLVVWLOOSDUDPHWHUL]HGE\ WKHW\SHRIWKHSL]]DMXVWOLNHRXU RULJLQDORUGHU3L]]D PHWKRGZDV

Q:

:KDW·VWKHDGYDQWDJHRIWKLV" ,WORRNVOLNHZHDUHMXVWSXVKLQJWKH SUREOHPRIIWRDQRWKHUREMHFW

A:

2QHWKLQJWRUHPHPEHULVWKDWWKH 6LPSOH3L]]D)DFWRU\PD\KDYHPDQ\FOLHQWV :H·YHRQO\VHHQWKHRUGHU3L]]D PHWKRG KRZHYHUWKHUHPD\EHD3L]]D6KRS0HQX FODVVWKDWXVHVWKHIDFWRU\WRJHWSL]]DV IRUWKHLUFXUUHQWGHVFULSWLRQDQGSULFH:H PLJKWDOVRKDYHD+RPH'HOLYHU\FODVVWKDW KDQGOHVSL]]DVLQDGLIIHUHQWZD\WKDQRXU

there are no Dumb Questions 3L]]D6KRSFODVVEXWLVDOVRDFOLHQWRIWKH IDFWRU\ 6RE\HQFDSVXODWLQJWKHSL]]DFUHDWLQJ LQRQHFODVVZHQRZKDYHRQO\RQH SODFHWRPDNHPRGLILFDWLRQVZKHQWKH LPSOHPHQWDWLRQFKDQJHV 'RQ·WIRUJHWZHDUHDOVRMXVWDERXWWR UHPRYHWKHFRQFUHWHLQVWDQWLDWLRQVIURPRXU FOLHQWFRGH

Q:

,·YHVHHQDVLPLODUGHVLJQZKHUH DIDFWRU\OLNHWKLVLVGHILQHGDVDVWDWLF PHWKRG:KDWLVWKHGLIIHUHQFH"

A:

'HILQLQJDVLPSOHIDFWRU\DVD VWDWLFPHWKRGLVDFRPPRQWHFKQLTXHDQG LVRIWHQFDOOHGDVWDWLFIDFWRU\:K\XVHD VWDWLFPHWKRG"%HFDXVH\RXGRQ·WQHHG WRLQVWDQWLDWHDQREMHFWWRPDNHXVHRIWKH FUHDWHPHWKRG%XWUHPHPEHULWDOVRKDV WKHGLVDGYDQDJHWKDW\RXFDQ·WVXEFODVVDQG FKDQJHWKHEHKDYLRURIWKHFUHDWHPHWKRG \RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 8

VLPSOHIDFWRU\

:M_WZSQVO\PM8QbbI;\WZMKTI[[ 6W_Q\¼[\QUM\WÅ`]XW]ZKTQMV\KWLM?PI\_M_IV\\WLWQ[ZMTaWV\PM NIK\WZa\WKZMI\M\PMXQbbI[NWZ][0MZMIZM\PMKPIVOM["

1RZZHJLYH3L]]D6WRUHDUHIHUHQFH WRD6LPSOH3L]]D)DFWRU\ SXEOLFFODVV3L]]D6WRUH^ 6LPSOH3L]]D)DFWRU\IDFWRU\  3L]]D6WRUHJHWVWKHIDFWRU\SDV SXEOLF3L]]D6WRUH 6LPSOH3L]]D)DFWRU\IDFWRU\ ^ VHGWR LWLQWKHFRQVWUXFWRU WKLVIDFWRU\ IDFWRU\ `  SXEOLF3L]]DRUGHU3L]]D 6WULQJW\SH ^ 3L]]DSL]]D  SL]]D IDFWRU\FUHDWH3L]]D W\SH   SL]]DSUHSDUH  $QGWKHRUGHU3L]]D PHWKRGXVHVWKH SL]]DEDNH  IDFWRU\WRFUHDWHLWVSL]]DVE\VLPSO\ SL]]DFXW  SDVVLQJRQWKHW\SHRIWKHRUGHU SL]]DER[  UHWXUQSL]]D ` RWKHUPHWKRGVKHUH `

1RWLFHWKDWZH·YHUHSODFHGWKHQHZ RSHUDWRUZLWKDFUHDWHPHWKRGRQWKH IDFWRU\REMHFW1RPRUHFRQFUHWH LQVWDQWLDWLRQVKHUH

YiX`e gfn\i :HNQRZWKDWREMHFWFRPSRVLWLRQDOORZVXVWRFKDQJHEHKDYLRUG\QDPLFDOO\DWUXQWLPH DPRQJ RWKHUWKLQJV EHFDXVHZHFDQVZDSLQDQGRXWLPSOHPHQWDWLRQV+RZPLJKWZHEHDEOHWRXVH WKDWLQWKH3L]]D6WRUH":KDWIDFWRU\LPSOHPHQWDWLRQVPLJKWZHEHDEOHWRVZDSLQDQGRXW"

:HGRQ¶WNQRZDERXW\RXEXWZH¶UHWKLQNLQJ1HZ


&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 9

WKHIDFWRU\SDWWHUQ


)LUVW +HDG DEOH RU +RQ WLRQ 0HQ


3DWWHUQ +RQRUDEOH 0HQWLRQ

2][\JMKI][M;QUXTM.IK\WZaQ[V¼\I:-)4XI\\MZVLWM[V¼\UMIV_M[PW]TLV¼\KPMKSW]\ PW_Q\¼[X]\\WOM\PMZ4M\¼[\ISMITWWSI\\PMKTI[[LQIOZIUWN W]ZVM_8QbbI;\WZM"

7KLVLVWKHIDFWRU\ZKHUHZHFUHDWH SL]]DVLWVKRXOGEHWKHRQO\SDUW RIRXUDSSOLFDWLRQWKDWUHIHUVWR FRQFUHWH3L]]DFODVVHV

3L]]D6WRUH RUGHU3L]]D

RI 7KLVLVWKHSURGXFWD WKHIDFWRU\SL]] ]D :H·YHGHILQHG3L]  DVV FO FW UD VW DE DVDQ ZLWKVRPHKHOSIXO W LPSOHPHQWDWLRQVWKD FDQEHRYHUULGGHQ

3L]]D

6LPSOH3L]]D)DFWRU\ FUHDWH3L]]D

SUHSDUH EDNH FXW

QWRIWKH 7KLVLVWKHFOLH 6WRUH ]D L] 3 \ IDFWRU JKWKH QRZJRHVWKURXDFWRU\WRJHW ) ]D 6LPSOH3L] L]]D LQVWDQFHVRIS

GLVRIWHQ 7KHFUHDWHPHWKR \ DOO WLF GHFODUHGVWD

7KHVHDUHRXUFRQFUHWHSURGXFWV SURGXFWQHHGVWRLPSOHPHQWWKH3(DFK LQWHUIDFH  ZKLFKLQWKLVFDVHP L]]D ´H[WHQGWKHDEVWUDFW3L]]DFODVVµHDQV EHFRQFUHWH$VORQJDVWKDW·VWK DQG LWFDQEHFUHDWHGE\WKHIDFWRU\ HFDVH DQG KDQGHGEDFNWRWKHFOLHQW

ER[

3HSSHURQL3L]]D

&KHHVH3L]]D

9HJJLH3L]]D

&ODP3L]]D


-XVWDQRWKHUUHPLQGHULQGHVLJQSDWWHUQVWKHSKUDVH´LPSOHPHQWDQLQWHUIDFHµGRHV127DOZD\VPHDQ ´ZULWHDFODVVWKHLPSOHPHQWVD-DYDLQWHUIDFHE\XVLQJWKH´LPSOHPHQWVµNH\ZRUGLQWKHFODVVGHFODUDWLRQµ,Q WKHJHQHUDOXVHRIWKHSKUDVHDFRQFUHWHFODVVLPSOHPHQWLQJDPHWKRGIURPDVXSHUW\SH ZKLFKFRXOGEHD FODVV25LQWHUIDFH LVVWLOOFRQVLGHUHGWREH´LPSOHPHQWLQJWKHLQWHUIDFHµRIWKDWVXSHUW\SH \RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 10

SL]]DIUDQFKLVH

.ZIVKPQ[QVO\PMXQbbI[\WZM AW]Z7JRMK\^QTTM8QbbI;\WZMPI[LWVM[W_MTT\PI\aW]¼^M\ZW]VKML \PMKWUXM\Q\QWVIVLVW_M^MZaWVM_IV\[I8QbbI;\WZMQV\PMQZ W_VVMQOPJWZPWWL)[\PMNZIVKPQ[MZaW]_IV\\WMV[]ZM\PM Y]ITQ\aWN \PMNZIVKPQ[MWXMZI\QWV[IVL[WaW]_IV\\PMU\W][M aW]Z\QUM\M[\MLKWLM *]\_PI\IJW]\ZMOQWVITLQNNMZMVKM['-IKPNZIVKPQ[MUQOP\ _IV\\WWNNMZLQNNMZMV\[\aTM[WN XQbbI[6M_AWZS+PQKIOWIVL +ITQNWZVQI\WVIUMINM_LMXMVLQVOWV_PMZM\PMNZIVKPQ[M [\WZMQ[TWKI\MLIVL\PM\I[\M[WN \PMTWKITXQbbIKWVVWQ[[M]Z[



1

L]]D)DFWR

2QHIUDQFKLVHZDQWVDIDFWRU\ WKDWPDNHV1<VW\OHSL]]DV WKLQFUXVWWDVW\VDXFHDQG MXVWDOLWWOHFKHHVH



  3L ]

<3

U\


&

KL FDJ

FW RU\

]D6WRUH

D R3L]]D)

$QRWKHUIUDQFKLVH ZDQWVDIDFWRU\WKDW PDNHV&KLFDJRVW\OH SL]]DVWKHLUFXVWRPHUV OLNHSL]]DVZLWKWKLFN FUXVWULFKVDXFHDQG WRQVRIFKHHVH

?M¼^M[MMVWVMIXXZWIKP 1N _M\ISMW]\;QUXTM8QbbI.IK\WZaIVLKZMI\M\PZMMLQNNMZMV\ NIK\WZQM[6A8QbbI.IK\WZa+PQKIOW8QbbI.IK\WZaIVL +ITQNWZVQI8QbbI.IK\WZa\PMV_MKIVR][\KWUXW[M\PM8QbbI;\WZM _Q\P\PMIXXZWXZQI\MNIK\WZaIVLINZIVKPQ[MQ[OWWL\WOW


&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 11

WKHIDFWRU\SDWWHUQ

1<3L]]D)DFWRU\Q\)DFWRU\ QHZ1<3L]]D)DFWRU\  3L]]D6WRUHQ\6WRUH QHZ3L]]D6WRUH Q\)DFWRU\  Q\6WRUHRUGHU ³9HJJLH´ 

+HUHZHFUHDWHDIDFWRU\ IRUPDNLQJ1<VW\OHSL]]DV 7KHQZHFUHDWHD3L]]D6WRUHDQGSDVVLW DUHIHUHQFHWRWKH1<IDFWRU\ DQGZKHQZHPDNHSL]]DVZH JHW1<VW\OHGSL]]DV

&KLFDJR3L]]D)DFWRU\FKLFDJR)DFWRU\ QHZ&KLFDJR3L]]D)DFWRU\  3L]]D6WRUHFKLFDJR6WRUH QHZ3L]]D6WRUH FKLFDJR)DFWRU\  FKLFDJR6WRUHRUGHU ³9HJJLH´ 

/LNHZLVHIRUWKH&KLFDJRSL]]DVWRUHVZHFUHDWH DIDFWRU\IRU&KLFDJRSL]]DVDQGFUHDWHDVWRUH WKDWLVFRPSRVHGZLWKD&KLFDJRIDFWRU\:KHQ ZHPDNHSL]]DVZHJHWWKH&KLFDJRIODYRUHG RQHV

*]\aW]¼LTQSMITQ\\TMUWZMY]ITQ\aKWV\ZWT ;WaW]\M[\UIZSM\ML\PM;QUXTM.IK\WZaQLMIIVL_PI\aW] NW]VL_I[\PI\\PMNZIVKPQ[M[_MZM][QVOaW]ZNIK\WZa\W KZMI\MXQbbI[J]\[\IZ\QVO\WMUXTWa\PMQZW_VPWUMOZW_V XZWKML]ZM[NWZ\PMZM[\WN \PMXZWKM[["\PMa¼LJISM\PQVO[I TQ\\TMLQNNMZMV\Ta\PMa¼LNWZOM\\WK]\\PMXQbbIIVL\PMa¼L][M \PQZLXIZ\aJW`M[

,·YHEHHQPDNLQJSL]]DIRU \HDUVVR,WKRXJKW,·GDGGP\ RZQ´LPSURYHPHQWVµWRWKH 3L]]D6WRUHSURFHGXUHV

:M\PQVSQVO\PMXZWJTMUIJQ\aW][MM\PI\_PI\aW]¼LZMITTa TQSM\WLWQ[KZMI\MINZIUM_WZS\PI\\QM[\PM[\WZMIVL\PM XQbbIKZMI\QWV\WOM\PMZaM\[\QTTITTW_[\PQVO[\WZMUIQV ÆM`QJTM 1VW]ZMIZTaKWLMJMNWZM\PM;QUXTM8QbbI.IK\WZa_MPIL \PMXQbbIUISQVOKWLM\QML\W\PM8QbbI;\WZMJ]\Q\_I[V¼\ ÆM`QJTM;WPW_KIV_MPI^MW]ZXQbbIIVLMI\Q\\WW'

RRG 1RWZKDW\RXZDQWLQDJ QWWRNQRZ IUDQFKLVH
\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 12

OHWWKHVXEFODVVHVGHFLGH

)NZIUM_WZSNWZ\PMXQbbI[\WZM
3L]]D6WRUHLVQRZDEVWUDFW VHHZK\EHORZ  SXEOLFDEVWUDFWFODVV3L]]D6WRUH^

 

SXEOLF3L]]DRUGHU3L]]D 6WULQJW\SH ^  3L]]DSL]]D





SL]]D FUHDWH3L]]D W\SH 

   

   

SL]]DSUHSDUH  SL]]DEDNH  SL]]DFXW  SL]]DER[ 

  

 `

UHWXUQSL]]D

 `

DEVWUDFWFUHDWH3L]]D 6WULQJW\SH 

1RZFUHDWH3L]]DLVEDFNWREHLQJD FDOOWRDPHWKRGLQWKH3L]]D6WRUH UDWKHUWKDQRQDIDFWRU\REMHFW

$OOWKLVORRNVMXVWWKHVDPH

1RZZH·YHPRYHGRXUIDFWRU\ REMHFWWRWKLVPHWKRG

2XU´IDFWRU\PHWKRGµLVQRZ DEVWUDFWLQ3L]]D6WRUH

6W__M¼^MOW\I[\WZM_IQ\QVONWZ[]JKTI[[M[#_M¼ZMOWQVO\WPI^MI []JKTI[[NWZMIKPZMOQWVIT\aXM6A8QbbI;\WZM+PQKIOW8QbbI;\WZM +ITQNWZVQI8QbbI;\WZMIVLMIKP[]JKTI[[Q[OWQVO\WUISM\PMLMKQ[QWVIJW]\ _PI\UISM[]XIXQbbI4M\¼[\ISMITWWSI\PW_\PQ[Q[OWQVO\W_WZS



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 13

WKHIDFWRU\SDWWHUQ

)TTW_QVO\PM[]JKTI[[M[\WLMKQLM :MUMUJMZ\PM8QbbI;\WZMITZMILaPI[I_MTTPWVMLWZLMZ[a[\MUQV\PMWZLMZ8QbbI UM\PWLIVLaW]_IV\\WMV[]ZM\PI\Q\¼[KWV[Q[\MV\IKZW[[ITTNZIVKPQ[M[ ?PI\^IZQM[IUWVO\PMZMOQWVIT8QbbI;\WZM[Q[\PM[\aTMWN XQbbI[\PMaUISM·6M_AWZS 8QbbIPI[\PQVKZ][\+PQKIOW8QbbIPI[\PQKSIVL[WWV·IVL_MIZMOWQVO\WX][PITT \PM[M^IZQI\QWV[QV\W\PMKZMI\M8QbbIUM\PWLIVLUISMQ\ZM[XWV[QJTMNWZKZMI\QVO\PM ZQOP\SQVLWN XQbbI
(DFKVXEFODVVRYHUULGHVWKHFUHDWH3L]]D  PHWKRGZKLOHDOOVXEFODVVHVPDNHXVH RIWKHRUGHU3L]]D PHWKRGGHILQHG LQ3L]]D6WRUH:HFRXOGPDNHWKH RUGHU3L]]D PHWKRGILQDOLIZHUHDOO\ ZDQWHGWRHQIRUFHWKLV

3L]]D6WRUH FUHDWH3L]]D RUGHU3L]]D

,IDIUDQFKLVHZDQWV1<VW\OH SL]]DVIRULWVFXVWRPHUVLW XVHVWKH1<VXEFODVVZKLFKKDV LWVRZQFUHDWH3L]]D PHWKRG FUHDWLQJ1<VW\OHSL]]DV

1<6W\OH3L]]D6WRUH

&KLFDJR6W\OH3L]]D6WRUH FUHDWH3L]]D

FUHDWH3L]]D

5HPHPEHUFUHDWH3L]]D LV DEVWUDFWLQ3L]]D6WRUHVRDOO SL]]DVWRUHVXEW\SHV0867 LPSOHPHQWWKHPHWKRG

6LPLODUO\E\XVLQJWKH &KLFDJRVXEFODVVZHJHWDQ LPSOHPHQWDWLRQRIFUHDWH3L]]D  ZLWK&KLFDJRLQJUHGLHQWV

SXEOLF3L]]DFUHDWH3L]]D W\SH ^

SXEOLF3L]]DFUHDWH3L]]D W\SH ^

LI W\SHHTXDOV ³FKHHVH´ ^

LI W\SHHTXDOV ³FKHHVH´ ^

SL]]D QHZ&KLFDJR6W\OH&KHHVH3L]]D 

SL]]D QHZ1<6W\OH&KHHVH3L]]D 

`HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^

`HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^

SL]]D QHZ&KLFDJR6W\OH3HSSHURQL3L]]D 

SL]]D QHZ1<6W\OH3HSSHURQL3L]]D 

`HOVHLI W\SHHTXDOV ³FODP´ ^

`HOVHLI W\SHHTXDOV ³FODP´ ^

SL]]D QHZ&KLFDJR6W\OH&ODP3L]]D 

SL]]D QHZ1<6W\OH&ODP3L]]D 

`HOVHLI W\SHHTXDOV ³YHJJLH´ ^

`HOVHLI W\SHHTXDOV ³YHJJLH´ ^

SL]]D QHZ&KLFDJR6W\OH9HJJLH3L]]D 

SL]]D QHZ1<6W\OH9HJJLH3L]]D 

`

`

`

`

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 14

KRZGRVXEFODVVHVGHFLGH"

,GRQ·WJHWLW7KH 3L]]D6WRUHVXEFODVVHVDUHMXVW VXEFODVVHV+RZDUHWKH\GHFLGLQJ DQ\WKLQJ",GRQ·WVHHDQ\ORJLFDOGHFLVLRQ PDNLQJFRGHLQ1<6W\OH3L]]D6WRUH

?MTT\PQVSIJW]\Q\NZWU\PMXWQV\WN ^QM_WN \PM8QbbI;\WZM¼[WZLMZ8QbbIUM\PWL"Q\Q[ LMÅVMLQV\PMIJ[\ZIK\8QbbI;\WZMJ]\KWVKZM\M\aXM[IZMWVTaKZMI\MLQV\PM[]JKTI[[M[

3L]]D6WRUH FUHDWH3L]]D RUGHU3L]]D

WKHDEVWUDFW RUGHU3L]]D LVGHILQHGLQ VHV6RWKH FODV VXE WKH RW HQ 3L]]D6WRU FODVVLVDFWXDOO\ VXE FK ZKL HD PHWKRGKDVQRLG WKHSL]]DV QJ DNL GP UXQQLQJWKHFRGHDQ

6W_\W\ISM\PQ[ITQ\\TMN]Z\PMZ\PMWZLMZ8QbbIUM\PWLLWM[ITW\WN \PQVO[_Q\PI 8QbbIWJRMK\TQSMXZMXIZMJISMK]\JW`J]\JMKI][M8QbbIQ[IJ[\ZIK\WZLMZ8QbbIPI[ VWQLMI_PI\ZMITKWVKZM\MKTI[[M[IZMQV^WT^ML1VW\PMZ_WZL[Q\¼[LMKW]XTML 3L]]D6WRUH

SL]]D FUHDWH3L]]D  SL]]DSUHSDUH 

FUHDWH3L]]D

SL]]DEDNH 

RUGHU3L]]D

SL]]DFXW  SL]]DER[ 

3L]]D WRDFWXDOO\JHW RUGHU3L]]D FDOOVFUHDWHFKNLQGRISL]]DZLOOLW ZKL XW % DSL]]DREMHFW HWKRGFDQ·WGHFLGHLW JHW"7KHRUGHU3L]]D P RHVGHFLGH" RG ZK GRHVQ·WNQRZKRZ6R ?PMVWZLMZ8QbbIKITT[KZMI\M8QbbIWVMWN aW]Z[]JKTI[[M[_QTTJMKITTMLQV\WIK\QWV\W KZMI\MIXQbbI?PQKPSQVLWN XQbbI_QTTJMUILM'?MTT\PI\¼[LMKQLMLJa\PMKPWQKMWN  XQbbI[\WZMaW]WZLMZNZWU6A;\aTM8QbbI;\WZMWZ+PQKIOW;\aTM8QbbI;\WZM

1<6W\OH3L]]D6WRUH FUHDWH3L]]D

&KLFDJR6W\OH3L]]D6WRUH FUHDWH3L]]D

;WQ[\PMZMIZMIT\QUMLMKQ[QWV\PI\[]JKTI[[M[UISM'6WJ]\NZWU\PMXMZ[XMK\Q^MWN  WZLMZ8QbbIQN aW]KPW[MI6A;\aTM8QbbI;\WZM\PI\[]JKTI[[OM\[\WLM\MZUQVM_PQKP XQbbIQ[UILM;W\PM[]JKTI[[M[IZMV¼\ZMITTa¹LMKQLQVOº·Q\_I[aW]_PWLMKQLMLJa KPWW[QVO_PQKP[\WZMaW]_IV\ML·J]\\PMaLWLM\MZUQVM_PQKPSQVLWN XQbbIOM\[UILM



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 15

WKHIDFWRU\SDWWHUQ

4M\¼[UISMI8QbbI;\WZM *MQVOINZIVKPQ[MPI[Q\[JMVMÅ\[AW]OM\ITT\PM8QbbI;\WZM N]VK\QWVITQ\aNWZNZMM)TT\PMZMOQWVIT[\WZM[VMML\WLWQ[[]JKTI[[ 8QbbI;\WZMIVL[]XXTaIKZMI\M8QbbIUM\PWL\PI\QUXTMUMV\[ \PMQZ[\aTMWN 8QbbI?M¼TT\ISMKIZMWN \PMJQO\PZMMXQbbI[\aTM[NWZ \PMNZIVKPQ[MM[ 0MZM¼[\PM6M_AWZSZMOQWVIT[\aTM"

3L]]DDQGWKH FUHDWH3L]]D UHWXUQVD HIRUZKLFK VLEO SRQ UHV OO\ IX VLV VXEFODV LDWHV FRQFUHWH3L]]DLWLQVWDQW

7KH1<3L]]D6WRUHH[WHQGV 3L]]D6WRUHVRLWLQKHULWVWKH RUGHU3L]]D PHWKRG DPRQJRWKHUV 

SXEOLFFODVV1<3L]]D6WRUHH[WHQGV3L]]D6WRUH^ 3L]]DFUHDWH3L]]D 6WULQJLWHP ^ LI LWHPHTXDOV ³FKHHVH´ ^ UHWXUQQHZ1<6W\OH&KHHVH3L]]D  `HOVHLI LWHPHTXDOV ³YHJJLH´ ^ UHWXUQQHZ1<6W\OH9HJJLH3L]]D  `HOVHLI LWHPHTXDOV ³FODP´ ^ UHWXUQQHZ1<6W\OH&ODP3L]]D  `HOVHLI LWHPHTXDOV ³SHSSHURQL´ ^ UHWXUQQHZ1<6W\OH3HSSHURQL3L]]D  `HOVHUHWXUQQXOO ` `

:H·YHJRWWRLPSOHPHQW FUHDWH3L]]D VLQFHLWLV DEVWUDFWLQ3L]]D6WRUH +HUH·VZKHUHZHFUHDWHRXU FRQFUHWHFODVVHV)RUHDFKW\SH RI3L]]DZHFUHDWHWKH1<VW\OH

1RWHWKDWWKHRUGHU3L]]D PHWKRGLQWKH VXSHUFODVVKDVQRFOXHZKLFK3L]]DZHDUHFUHDWLQJLW MXVWNQRZVLWFDQSUHSDUHEDNHFXWDQGER[LW 7VKM_M¼^MOW\W]Z8QbbI;\WZM[]JKTI[[M[J]QT\Q\_QTTJM\QUM \W[MMIJW]\WZLMZQVO]XIXQbbIWZ\_W*]\JMNWZM_MLW\PI\ _PaLWV¼\aW]\ISMIKZIKSI\J]QTLQVO\PM+PQKIOW;\aTMIVL +ITQNWZVQI;\aTMXQbbI[\WZM[WV\PMVM`\XIOM

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 16

IDFWRU\PHWKRG

6KDUSHQ \RXU SHQFLO ?M¼^MSVWKSMLW]\\PM6A8QbbI;\WZMR][\\_WUWZM\WOWIVL_M¼TTJMZMILa\WNZIVKPQ[M  ?ZQ\M\PM+PQKIOWIVL+ITQNWZVQI8QbbI;\WZMQUXTMUMV\I\QWV[PMZM"



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 17

WKHIDFWRU\SDWWHUQ

,MKTIZQVOINIK\WZaUM\PWL ?Q\PR][\IKW]XTMWN \ZIV[NWZUI\QWV[\W\PM8QbbI;\WZM_M¼^MOWVMNZWU PI^QVOIVWJRMK\PIVLTM\PMQV[\IV\QI\QWVWN W]ZKWVKZM\MKTI[[M[\WI[M\WN  []JKTI[[M[\PI\IZMVW_\ISQVOWV\PI\ZM[XWV[QJQTQ\a4M\¼[\ISMIKTW[MZTWWS"

I 7KHVXEFODVVHVR GOHREMHFW 3L]]D6WRUHKDQ XVLQWKH LQVWDQWLDWLRQIRUHWKRG FUHDWH3L]]D P

SXEOLFDEVWUDFWFODVV3L]]D6WRUH^

SXEOLF3L]]DRUGHU3L]]D 6WULQJW\SH ^ 3L]]DSL]]D

1<6W\OH3L]]D6WRUH FUHDWH3L]]D

SL]]D FUHDWH3L]]D W\SH  SL]]DSUHSDUH  SL]]DEDNH  SL]]DFXW  SL]]DER[ 

&KLFDJR6W\OH3L]]D6WRUH FUHDWH3L]]D

UHWXUQSL]]D ` SURWHFWHGDEVWUDFW3L]]DFUHDWH3L]]D 6WULQJW\SH  RWKHUPHWKRGVKHUH `

$OOWKHUHVSRQVLELOLW\IRU LQVWDQWLDWLQJ3L]]DVKDVEHHQ PRYHGLQWRDPHWKRGWKDW DFWVDVDIDFWRU\

&RGH8S&ORVH )NIK\WZaUM\PWLPIVLTM[WJRMK\KZMI\QWVIVLMVKIX[]TI\M[Q\QV I[]JKTI[[
RGPD\EH $IDFWRU\PHWK RUQRW  HG UL] WH PH UD SD VHYHUDO WRVHOHFWDPRQJSURGXFW D RI V RQ YDULDWL

DEVWUDFW3URGXFWIDFWRU\0HWKRG 6WULQJW\SH

$IDFWRU\PHWKRG DEVWUDFWVRWKHVX LV $IDFWRU\PHWKRGUHWXUQV DUHFRXQWHGRQWRKEFODVVHV D3URGXFWWKDWLVW\SLFDOO\ REMHFWFUHDWLRQ DQGOH XVHGZLWKLQPHWKRGVGHILQHG LQWKHVXSHUFODVV

ODWHVWKHFOLHQW WKH $IDFWRU\PHWKRGLVR LNHRUGHU3L]]D  VO ODV HUF VXS FRGHLQWKH GRIFRQFUHWH IURPNQRZLQJZKDWNLQHDWHG FU 3URGXFWLVDFWXDOO\

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 18

RUGHULQJDSL]]D

4M\¼[[MMPW_Q\_WZS["WZLMZQVOXQbbI[_Q\P \PMXQbbINIK\WZaUM\PWL

,OLNH1<6W\OHSL]]D\RX NQRZWKLQFULVS\FUXVW ZLWKDOLWWOHFKHHVHDQG UHDOO\JRRGVDXFH

(WKDQ

,OLNH&KLFDJRVW\OHGHHSGLVK SL]]DZLWKWKLFNFUXVWDQG WRQVRIFKHHVH

-RHO

(WKDQQHHGVWRRUGHU KLVSL]]DIURPD1< SL]]DVWRUH

-RHOQHHGVWRRUGHUKLV SL]]DIURPD&KLFDJR SL]]DVWRUH6DPHSL]]D RUGHULQJPHWKRGEXW GLIIHUHQWNLQGRISL]]D

;WPW_LW\PMaWZLMZ'





.QZ[\2WMTIVL-\PIVVMMLIVQV[\IVKMWN I8QbbI;\WZM2WMTVMML[\WQV[\IV\QI\MI +PQKIOW8QbbI;\WZMIVL-\PIVVMML[I6A8QbbI;\WZM



?Q\PI8QbbI;\WZMQVPIVLJW\P-\PIVIVL2WMTKITT\PMWZLMZ8QbbIUM\PWLIVLXI[[ QV\PM\aXMWN XQbbI\PMa_IV\KPMM[M^MOOQMIVL[WWV







&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 19

WKHIDFWRU\SDWWHUQ

4M\¼[KPMKSW]\PW_\PM[MXQbbI[IZM ZMITTaUILM\WWZLMZ



%HKLQG WKH6FHQHV

/HW·VIROORZ(WKDQ·VRUGHUÀUVWZHQHHGD1<3L]]D6WRUH 3L]]D6WRUHQ\3L]]D6WRUH QHZ1<3L]]D6WRUH 

&UHDWHVDLQVWDQFHRI 1<3L]]D6WRUH   Q \3

1RZWKDWZHKDYHDVWRUHZHFDQWDNHDQRUGHU

LVFDOOHGRQ 7KHRUGHU3L]]D PHWKRG  WKHPHWKRG QFH VWD HLQ WRU ]D6 3L] WKHQ\ UHUXQV  GHILQHGLQVLGH3L]]D6WR



L]]D6WR

U

FUHDWH3L]]D ³FKHHVH´

Q\3L]]D6WRUHRUGHU3L]]D ³FKHHVH´ 

H





7KHRUGHU3L]]D PHWKRGWKHQFDOOVWKHFUHDWH3L]]D  PHWKRG 3L]]DSL]]D FUHDWH3L]]D ³FKHHVH´ 

5HPHPEHUFUHDWH3L]]D WKHIDFWRU\ PHWKRGLVLPSOHPHQWHGLQWKHVXEFODVV,Q WKLVFDVHLWUHWXUQVD1<&KHHVH3L]]D





   3L]]D

)LQDOO\ZHKDYHWKHXQSUHSDUHGSL]]DLQKDQGDQGWKH RUGHU3L]]D PHWKRGÀQLVKHVSUHSDULQJLW SL]]DSUHSDUH  SL]]DEDNH  SL]]DFXW  SL]]DER[ 

RGJHWV 7KHRUGHU3L]]D PHWK RZLQJ NQ RXW LWK Z ]]D 3L EDFND VVLWLV H[DFWO\ZKDWFRQFUHWHFOD

GHILQHG $OORIWKHVHPHWKRGVDUH UQHG HWX DU L]] LFS FLI VSH KH LQW RG IURPWKHIDFWRU\PHWK WKH FUHDWH3L]]D GHILQHGLQ 1<3L]]D6WRUH

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 20

WKHSL]]DFODVVHV

?M¼ZMR][\UQ[[QVOWVM\PQVO"81BB) 7]Z8QbbI;\WZMQ[V¼\OWQVO\WJM^MZaXWX]TIZ _Q\PW]\[WUMXQbbI[[WTM\¼[QUXTMUMV\\PMU" WUDFW ZLWKDQDEV :H·OOVWDUW DQGDOOWKHFRQFUHWH 3L]]DFODVV HULYHIURPWKLV SL]]DVZLOOG DW\SHRIGRXJKD

(DFK3L]]DKDVDQDPH SXEOLFDEVWUDFWFODVV3L]]D^ V 6WULQJQDPH W\SHRIVDXFHDQGDVHWRIWRSSLQJ 6WULQJGRXJK 6WULQJVDXFH $UUD\/LVWWRSSLQJV QHZ$UUD\/LVW   YRLGSUHSDUH ^ 7KHDEVWUDFWFODVVSURYLGHV 6\VWHPRXWSULQWOQ ³3UHSDULQJ³QDPH  VRPHEDVLFGHIDXOWVIRUEDNLQJ 6\VWHPRXWSULQWOQ ³7RVVLQJGRXJK´  FXWWLQJDQGER[LQJ 6\VWHPRXWSULQWOQ ³$GGLQJVDXFH´  6\VWHPRXWSULQWOQ ³$GGLQJWRSSLQJV³  IRU LQWL LWRSSLQJVVL]H L ^ 6\VWHPRXWSULQWOQ ³³WRSSLQJVJHW L  ` 3UHSDUDWLRQIROORZVD ` QXPEHURIVWHSVLQD  SDUWLFXODUVHTXHQFH YRLGEDNH ^ 6\VWHPRXWSULQWOQ ³%DNHIRUPLQXWHVDW´  `  YRLGFXW ^ 6\VWHPRXWSULQWOQ ³&XWWLQJWKHSL]]DLQWRGLDJRQDOVOLFHV´  `  YRLGER[ ^ 6\VWHPRXWSULQWOQ ³3ODFHSL]]DLQRI¿FLDO3L]]D6WRUHER[´  `  SXEOLF6WULQJJHW1DPH ^ UHWXUQQDPH ` ` 5(0(0%(5ZHGRQ·WSURYLGHLPSRUWDQGSDFNDJHVWDWHPHQWVLQWKH FRGHOLVWLQJV*HWWKHFRPSOHWHVRXUFHFRGHIURPWKHZLFNHGO\VPDUW ZHEVLWH
&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 21

WKHIDFWRU\SDWWHUQ

6W__MR][\VMML[WUMKWVKZM\M[]JKTI[[M[PW_IJW]\LMNQVQVO 6M_AWZSIVL+PQKIOW[\aTMKPMM[MXQbbI['

SXEOLFFODVV1<6W\OH&KHHVH3L]]DH[WHQGV3L]]D^ SXEOLF1<6W\OH&KHHVH3L]]D ^ QDPH ³1<6W\OH6DXFHDQG&KHHVH3L]]D´ GRXJK ³7KLQ&UXVW'RXJK´ VDXFH ³0DULQDUD6DXFH´  WRSSLQJVDGG ³*UDWHG5HJJLDQR&KHHVH´  ` `

7KH1<3L]]DKDVLWVRZQ  PDULQDUDVW\OHVDXFHDQGWKLQFUXVW

$QGRQHWRSSLQJUHJJLDQR

FKHHVH

7KH&KLFDJR3L]]DXVHVSOXP WRPDWRHVDVDVDXFHDORQJ ZLWKH[WUDWKLFNFUXVW

SXEOLFFODVV&KLFDJR6W\OH&KHHVH3L]]DH[WHQGV3L]]D^ SXEOLF&KLFDJR6W\OH&KHHVH3L]]D ^ QDPH ³&KLFDJR6W\OH'HHS'LVK&KHHVH3L]]D´ GRXJK ³([WUD7KLFN&UXVW'RXJK´ VDXFH ³3OXP7RPDWR6DXFH´  WRSSLQJVDGG ³6KUHGGHG0R]]DUHOOD&KHHVH´  7KH&KLFDJRVW\OHGHHS ` GLVKSL]]DKDVORWVRI  PR]]DUHOODFKHHVH YRLGFXW ^ 6\VWHPRXWSULQWOQ ³&XWWLQJWKHSL]]DLQWRVTXDUHVOLFHV´  ` `

7KH&KLFDJRVW\OHSL]]DDOVRRYHUULGHVWKHFXW  PHWKRGVRWKDWWKHSLHFHVDUHFXWLQWRVTXDUHV

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 22

PDNHVRPHSL]]DV

AW]¼^M_IQ\MLTWVOMVW]OP\QUMNWZ[WUMXQbbI[ ZR ZHFUHDWHW

)LUVW SXEOLFFODVV3L]]D7HVW'ULYH^ RUHV GLIIHUHQWVW  SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 7KHQXVHRQHRQHVWRUH 3L]]D6WRUHQ\6WRUH QHZ1<3L]]D6WRUH  WRPDNH(WKDQ·VRUGHU 3L]]D6WRUHFKLFDJR6WRUH QHZ&KLFDJR3L]]D6WRUH   3L]]DSL]]D Q\6WRUHRUGHU3L]]D ³FKHHVH´  6\VWHPRXWSULQWOQ ³(WKDQRUGHUHGD³SL]]DJHW1DPH ³?Q´   SL]]D FKLFDJR6WRUHRUGHU3L]]D ³FKHHVH´  6\VWHPRXWSULQWOQ ³-RHORUGHUHGD³SL]]DJHW1DPH ³?Q´  ` ` $QGWKHRWKHUIRU-RHO·V

)LOH(GLW:LQGRZ+HOS
MDYD3L]]D7HVW'ULYH 3UHSDULQJ1<6W\OH6DXFHDQG&KHHVH3L]]D 7RVVLQJGRXJK $GGLQJVDXFH $GGLQJWRSSLQJV *UDWHG5HJLDQRFKHHVH %DNHIRUPLQXWHVDW &XWWLQJWKHSL]]DLQWRGLDJRQDOVOLFHV 3ODFHSL]]DLQRI¿FLDO3L]]D6WRUHER[ (WKDQRUGHUHGD1<6W\OH6DXFHDQG&KHHVH3L]]D 3UHSDULQJ&KLFDJR6W\OH'HHS'LVK&KHHVH3L]]D 7RVVLQJGRXJK $GGLQJVDXFH $GGLQJWRSSLQJV 6KUHGGHG0R]]DUHOOD&KHHVH %DNHIRUPLQXWHVDW &XWWLQJWKHSL]]DLQWRVTXDUHVOLFHV 3ODFHSL]]DLQRI¿FLDO3L]]D6WRUHER[ -RHORUGHUHGD&KLFDJR6W\OH'HHS'LVK&KHHVH3L]]D



%RWKSL]]DVJHWSUHSDUHG  WKHWRSSLQJVDGGHGDQGWKH  SL]]DVEDNHGFXWDQGER[HG 2XUVXSHUFODVVQHYHUKDGWR V NQRZWKHGHWDLOVWKHVXEFODV KDQGOHGDOOWKDWMXVWE\ LQVWDQWLDWLQJWKHULJKWSL]]D

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 23

WKHIDFWRU\SDWWHUQ

1\¼[NQVITTa\QUM\WUMM\\PM.IK\WZa5M\PWL8I\\MZV )TTNIK\WZaXI\\MZV[MVKIX[]TI\MWJRMK\KZMI\QWV

2IWHQWKHFUHDWRUFRQWDLQVFRGHWKDW GHSHQGVRQDQDEVWUDFWSURGXFWZKLFK LVSURGXFHGE\DVXEFODVV7KHFUHDWRU QHYHUUHDOO\NQRZVZKLFKFRQFUHWH SURGXFWZDVSURGXFHG

3L]]D6WRUH FUHDWH3L]]D RUGHU3L]]D

&KLFDJR3L]]D6WRUH

1<3L]]D6WRUH

FUHDWH3L]]D

FUHDWH3L]]D

7KHFUH LVRXUIDDWH3L]]D PHWK SURGXFHVFWRU\PHWKRG RG ,W SURGXFW V

6LQFHHDFKIUDQFKLVHJHWVLWV RZQVXEFODVVRI3L]]D6WRUH LW·VIUHHWRFUHDWHLWV RZQVW\OHRISL]]DE\ LPSOHPHQWLQJFUHDWH3L]]D 

RGXFH &ODVVHVWKDWSU HG DOO F UH D SURGXFWV V FRQFUHWHFUHDWRU


7KHVHDUHWKHFRQFUHWH SURGXFWVDOOWKHSL]]DVWKDW DUHSURGXFHGE\RXUVWRUHV 1<6W\OH&KHHVH3L]]D

)DFWRULHVSURGXFHSURGXFWV DQGLQWKH3L]]D6WRUHRXU SURGXFWLVD3L]]D

&KLFDJR6W\OH&KHHVH3L]]D

1<6W\OH3HSSHURQL3L]]D

1<6W\OH&ODP3L]]D 1<6W\OH9HJJLH3L]]D

&KLFDJR6W\OH3HSSHURQL3L]]D &KLFDJR6W\OH&ODP3L]]D

&KLFDJR6W\OH9HJJLH3L]]D

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 24

FUHDWRUVDQGSURGXFWV

)VW\PMZXMZ[XMK\Q^M"XIZITTMTKTI[[PQMZIZKPQM[ ?M¼^M[MMV\PI\\PMNIK\WZaUM\PWLXZW^QLM[INZIUM_WZSJa[]XXTaQVOIV WZLMZ8QbbIUM\PWL\PI\Q[KWUJQVML_Q\PINIK\WZaUM\PWL)VW\PMZ_Ia\WTWWS I\\PQ[XI\\MZVI[INZIUM_WZSQ[QV\PM_IaQ\MVKIX[]TI\M[XZWL]K\SVW_TMLOMQV\W MIKPKZMI\WZ 4M\¼[TWWSI\\PM\_WXIZITTMTKTI[[PQMZIZKPQM[IVL[MMPW_\PMaZMTI\M"


1RWLFHKRZWKHVH FODVVKLHUDUFKLHVDUH SDUDOOHOERWKKDYH DEVWUDFWFODVVHVWKDW DUHH[WHQGHGE\ FRQFUHWHFODVVHVZKLFK
1<6W\OH&KHHVH3L]]D

&KLFDJR6W\OH&KHHVH3L]]D

1<6W\OH3HSSHURQL3L]]D

1<6W\OH&ODP3L]]D 1<6W\OH9HJJLH3L]]D

&KLFDJR3L]]D6WRUH

1<3L]]D6WRUH

FUHDWH3L]]D

FUHDWH3L]]D

&KLFDJR6W\OH3HSSHURQL3L]]D &KLFDJR6W\OH&ODP3L]]D

&KLFDJR6W\OH9HJJLH3L]]D

HV VXODW UH QFDS KRZWR H  D6WR H ] U  ] R L W W 3 X 6 R H L]]D HDER KLFDJ OOWK WR 1<3 QRZOHGJ SL]]DV KH& VXODWHVD RXWKRZ L]]DV  H 7 K  N S 7 WKH W\OH S E HQFD OHGJHD JRVW\OH DOO H1<V Z D R F Q L N H&K PDN PDN QJWKLVNQ \WRHQFDSVXODWL

HWKRGLVWKHNH 7KHIDFWRU\P



RZOHGJH

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 25

WKHIDFWRU\SDWWHUQ

'HVLJQ3X]]OH ?MVMMLIVW\PMZSQVLWN XQbbINWZ\PW[MKZIba+ITQNWZVQIV[KZIbaQVIOWWL_Ia WN KW]Z[M,ZI_IVW\PMZXIZITTMT[M\WN KTI[[M[\PI\aW]¼LVMML\WILLIVM_ +ITQNWZVQIZMOQWV\WW]Z8QbbI;\WZM

3L]]D6WRUH FUHDWH3L]]D RUGHU3L]]D


&KLFDJR3L]]D6WRUH FUHDWH3L]]D

FUHDWH3L]]D

1<6W\OH&KHHVH3L]]D

KHUH UDZLQJ

&KLFDJR6W\OH&KHHVH3L]]D

1<6W\OH3HSSHURQL3L]]D

1<6W\OH&ODP3L]]D 1<6W\OH9HJJLH3L]]D

&KLFDJR6W\OH3HSSHURQL3L]]D

&KLFDJR6W\OH&ODP3L]]D

&KLFDJR6W\OH9HJJLH3L]]D

7SIaVW__ZQ\M\PMÅ^MUW[\JQbIZZM\PQVO[aW]KIV\PQVSWN \WX]\WVIXQbbI
\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 26

IDFWRU\PHWKRGGH¿QHG

.IK\WZa5M\PWL8I\\MZVLMNQVML 1\¼[\QUM\WZWTTW]\\PMWNÅKQITLMÅVQ\QWVWN \PM.IK\WZa5M\PWL8I\\MZV"


)[_Q\PM^MZaNIK\WZa\PM.IK\WZa5M\PWL8I\\MZVOQ^M[][I_Ia\WMVKIX[]TI\M\PM QV[\IV\QI\QWV[WN KWVKZM\M\aXM[4WWSQVOI\\PMKTI[[LQIOZIUJMTW_aW]KIV[MM\PI\\PM IJ[\ZIK\+ZMI\WZOQ^M[aW]IVQV\MZNIKM_Q\PIUM\PWLNWZKZMI\QVOWJRMK\[IT[WSVW_VI[\PM ¹NIK\WZaUM\PWLº)VaW\PMZUM\PWL[QUXTMUMV\MLQV\PMIJ[\ZIK\+ZMI\WZIZM_ZQ\\MV\W WXMZI\MWVXZWL]K\[XZWL]KMLJa\PMNIK\WZaUM\PWL7VTa[]JKTI[[M[IK\]ITTaQUXTMUMV\ \PMNIK\WZaUM\PWLIVLKZMI\MXZWL]K\[ )[QV\PMWNÅKQITLMÅVQ\QWVaW]¼TTWN\MVPMIZLM^MTWXMZ[[Ia\PI\\PM.IK\WZa5M\PWLTM\[ []JKTI[[M[LMKQLM_PQKPKTI[[\WQV[\IV\QI\M
W HPZKD DVNWK XWZHEHW  OG X R F E
QWDLQV DFODVVWKDWFR 7KH&UHDWRULV LRQVIRUDOORIWKH WKHLPSOHPHQWDWQLSXODWHSURGXFWV PHWKRGVWRPD IDFWRU\PHWKRG H[FHSWIRUWKH 3URGXFW

WLPSOHPHQW $OOSURGXFWVPXVDFHVRWKDWWKH UI WH LQ WKHVDPH HWKHSURGXFWV FODVVHVZKLFKXV KHLQWHUIDFH W FDQUHIHUWR WHFODVV QRWWKHFRQFUH

&UHDWRU IDFWRU\0HWKRG DQ2SHUDWLRQ

&RQFUHWH3URGXFW

&RQFUHWH&UHDWRU IDFWRU\0HWKRG

7KH&RQFUHWH&UHDWRULVUHVSRQVLEOHIRU FUHDWLQJRQHRUPRUHFRQFUHWHSURGXFWV,W LVWKHRQO\FODVVWKDWKDVWKHNQRZOHGJHRI KRZWRFUHDWHWKHVHSURGXFWV 

7KHDEVWUDFWIDFWRU\0HWKRG  LVZKDWDOO&UHDWRUVXEFODVVHV PXVWLPSOHPHQW

7KH&RQFUHWH&UHDWRU LPSOHPHQWVWKH IDFWRU\0HWKRG ZKLFKLV WKHPHWKRGWKDWDFWXDOO\ SURGXFHVSURGXFWV

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 27

WKHIDFWRU\SDWWHUQ

Q:

there are no Dumb Questions

:KDW·VWKHDGYDQWDJHRIWKH)DFWRU\0HWKRG 3DWWHUQZKHQ\RXRQO\KDYHRQH&RQFUHWH&UHDWRU"

A:

A:

:HLPSOHPHQWHGZKDWLVNQRZQDVWKH SDUDPHWHUL]HGIDFWRU\PHWKRG,WFDQPDNHPRUHWKDQ RQHREMHFWEDVHGRQDSDUDPHWHUSDVVHGLQDV\RX QRWLFHG2IWHQKRZHYHUDIDFWRU\MXVWSURGXFHVRQH REMHFWDQGLVQRWSDUDPHWHUL]HG%RWKDUHYDOLGIRUPV RIWKHSDWWHUQ

7KH)DFWRU\0HWKRG3DWWHUQLVXVHIXOLI \RX·YHRQO\JRWRQHFRQFUHWHFUHDWRUEHFDXVH\RXDUH GHFRXSOLQJWKHLPSOHPHQWDWLRQRIWKHSURGXFWIURP LWVXVH,I\RXDGGDGGLWLRQDOSURGXFWVRUFKDQJHD SURGXFW·VLPSOHPHQWDWLRQLWZLOOQRWDIIHFW\RXU&UHDWRU EHFDXVHWKH&UHDWRULVQRWWLJKWO\FRXSOHGWRDQ\ &RQFUHWH3URGXFW 

Q:

Q:

A:

:RXOGLWEHFRUUHFWWRVD\WKDWRXU1<DQG &KLFDJRVWRUHVDUHLPSOHPHQWHGXVLQJ6LPSOH )DFWRU\"7KH\ORRNMXVWOLNHLW

A:

7KH\·UHVLPLODUEXWXVHGLQGLIIHUHQWZD\V(YHQ WKRXJKWKHLPSOHPHQWDWLRQRIHDFKFRQFUHWHVWRUHORRNV DORWOLNHWKH6LPSOH3L]]D)DFWRU\UHPHPEHUWKDWWKH FRQFUHWHVWRUHVDUHH[WHQGLQJDFODVVZKLFKKDVGHILQHG FUHDWH3L]]D DVDQDEVWUDFWPHWKRG,WLVXSWRHDFK VWRUHWRGHILQHWKHEHKDYLRURIWKHFUHDWH3L]]D PHWKRG ,Q6LPSOH)DFWRU\WKHIDFWRU\LVDQRWKHUREMHFWWKDWLV FRPSRVHGZLWKWKH3L]]D6WRUH

Q:

$UHWKHIDFWRU\PHWKRGDQGWKH&UHDWRU DOZD\VDEVWUDFW"

A:

1R\RXFDQGHILQHDGHIDXOWIDFWRU\PHWKRG WRSURGXFHVRPHFRQFUHWHSURGXFW7KHQ\RXDOZD\V KDYHDPHDQVRIFUHDWLQJSURGXFWVHYHQLIWKHUHDUHQR VXEFODVVHVRIWKH&UHDWRU

Q:

(DFKVWRUHFDQPDNHIRXUGLIIHUHQWNLQGV RISL]]DVEDVHGRQWKHW\SHSDVVHGLQ'RDOO FRQFUHWHFUHDWRUVPDNHPXOWLSOHSURGXFWVRUGRWKH\ VRPHWLPHVMXVWPDNHRQH"



Q:

,·PVWLOODELWFRQIXVHGDERXWWKHGLIIHUHQFH EHWZHHQ6LPSOH)DFWRU\DQG)DFWRU\0HWKRG7KH\ ORRNYHU\VLPLODUH[FHSWWKDWLQ)DFWRU\0HWKRGWKH FODVVWKDWUHWXUQVWKHSL]]DLVDVXEFODVV&DQ\RX H[SODLQ"

A:


\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 28

PDVWHUDQGVWXGHQW

0DVWHUDQG6WXGHQW 0DVWHU*UDVVKRSSHUWHOOPHKRZ\RXUWUDLQLQJLVJRLQJ" 6WXGHQW0DVWHU,KDYHWDNHQP\VWXG\RI³HQFDSVXODWHZKDW YDULHV´IXUWKHU 0DVWHU*RRQ 6WXGHQW,KDYHOHDUQHGWKDWRQHFDQHQFDSVXODWHWKHFRGHWKDW FUHDWHVREMHFWV:KHQ\RXKDYHFRGHWKDWLQVWDQWLDWHVFRQFUHWH FODVVHVWKLVLVDQDUHDRIIUHTXHQWFKDQJH,¶YHOHDUQHGD WHFKQLTXHFDOOHG³IDFWRULHV´WKDWDOORZV\RXWRHQFDSVXODWHWKLV EHKDYLRURILQVWDQWLDWLRQ 0DVWHU$QGWKHVH³IDFWRULHV´RIZKDWEHQH¿WDUHWKH\" 6WXGHQW7KHUHDUHPDQ\%\SODFLQJDOOP\FUHDWLRQFRGHLQRQH REMHFWRUPHWKRG,DYRLGGXSOLFDWLRQLQP\FRGHDQGSURYLGHRQH SODFHWRSHUIRUPPDLQWHQDQFH7KDWDOVRPHDQVFOLHQWVGHSHQG RQO\XSRQLQWHUIDFHVUDWKHUWKDQWKHFRQFUHWHFODVVHVUHTXLUHGWR LQVWDQWLDWHREMHFWV$V,KDYHOHDUQHGLQP\VWXGLHVWKLVDOORZVPH WRSURJUDPWRDQLQWHUIDFHQRWDQLPSOHPHQWDWLRQDQGWKDWPDNHV P\FRGHPRUHÀH[LEOHDQGH[WHQVLEOHLQWKHIXWXUH 0DVWHU


&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 29

WKHIDFWRU\SDWWHUQ

)^MZaLMXMVLMV\8QbbI;\WZM 6KDUSHQ \RXU SHQFLO 4M\¼[XZM\MVLaW]¼^MVM^MZPMIZLWN IV77NIK\WZa0MZM¼[I^MZ[QWVWN \PM8QbbI;\WZM\PI\ LWM[V¼\][MINIK\WZa#UISMIKW]V\WN \PMV]UJMZWN KWVKZM\MXQbbIWJRMK\[\PQ[KTI[[Q[ LMXMVLMV\WV1N aW]ILLML+ITQNWZVQI[\aTMXQbbI[\W\PQ[8QbbI;\WZMPW_UIVaWJRMK\[_W]TLQ\ JMLMXMVLMV\WV\PMV' SXEOLFFODVV'HSHQGHQW3L]]D6WRUH^  SXEOLF3L]]DFUHDWH3L]]D 6WULQJVW\OH6WULQJW\SH ^ 3L]]DSL]]D QXOO LI VW\OHHTXDOV ³1<´ ^ LI W\SHHTXDOV ³FKHHVH´ ^ SL]]D QHZ1<6W\OH&KHHVH3L]]D  `HOVHLI W\SHHTXDOV ³YHJJLH´ ^ +DQGOHVDOOWKH1< SL]]D QHZ1<6W\OH9HJJLH3L]]D  VW\OHSL]]DV `HOVHLI W\SHHTXDOV ³FODP´ ^ SL]]D QHZ1<6W\OH&ODP3L]]D  `HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^ SL]]D QHZ1<6W\OH3HSSHURQL3L]]D  ` `HOVHLI VW\OHHTXDOV ³&KLFDJR´ ^ LI W\SHHTXDOV ³FKHHVH´ ^ SL]]D QHZ&KLFDJR6W\OH&KHHVH3L]]D  +DQGOHVDOOWKH `HOVHLI W\SHHTXDOV ³YHJJLH´ ^ &KLFDJRVW\OH SL]]D QHZ&KLFDJR6W\OH9HJJLH3L]]D  SL]]DV `HOVHLI W\SHHTXDOV ³FODP´ ^ SL]]D QHZ&KLFDJR6W\OH&ODP3L]]D  `HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^ SL]]D QHZ&KLFDJR6W\OH3HSSHURQL3L]]D  ` `HOVH^ 6\VWHPRXWSULQWOQ ³(UURULQYDOLGW\SHRISL]]D´  UHWXUQQXOO ` SL]]DSUHSDUH  SL]]DEDNH  SL]]DFXW  SL]]DER[  UHWXUQSL]]D ` `


QXPEHU

OLIRUQLDWRR QXPEHUZLWK&D \RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 30

REMHFWGHSHQGHQFLHV

4WWSQVOI\WJRMK\LMXMVLMVKQM[ ?PMVaW]LQZMK\TaQV[\IV\QI\MIVWJRMK\aW]IZMLMXMVLQVOWVQ\[ KWVKZM\MKTI[[
%HFDXVHDQ\FKDQJHVWRWKHFRQFUHWH LPSOHPHQWDWLRQVRISL]]DVDIIHFWVWKH 3L]]D6WRUHZHVD\WKDWWKH3L]]D6WRUH ´GHSHQGVRQµWKHSL]]DLPSOHPHQWDWLRQV

3  

UH

,IWKHLPSOHPHQW FODVVHVFKDQJHWKDWLRQRIWKHVH KDYHWRPRGLI\ HQZHPD\ LQ3L]]D6WRUH

7KLVYHUVLRQRIWKH 3L]]D6WRUHGHSHQGVRQDOO WKRVHSL]]DREMHFWVEHFDXVH LW·VFUHDWLQJWKHPGLUHFWO\



H3L]]D KH HV

]] D 3L

RQL 3 ] D L ]

3L]]D LH

3 L ]] D ODP

L3L]]D

RQ

&ODP

J LFD &K

6 1<

W\ OH

W\ OH3HSS

6

\O 6W

R6 W\OH&

H3 H S SH U

(YHU\QHZNLQGRISL]]D ZHDGGFUHDWHVDQRWKHU GHSHQGHQF\IRU3L]]D6WRUH

JR

9H J J

J LFD &K

6 1<

1<

W\ OH

HU

R6 W\OH9

&KH H

L FD &K

VH 3L]]D

J LFD &K

6 1<

W\ OH

HJ JLH3L]]D

L]]D6WR

R6 W\OH&

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 31

WKHIDFWRU\SDWWHUQ


'HVLJQ3ULQFLSOH

VWK XVHWRLPSUHV RXUUDLVHZLOO WKHURRP
'HSHQGXSRQDEVWUDFWLRQV'RQRW GHSHQGXSRQFRQFUHWHFODVVHV

)\ÅZ[\\PQ[XZQVKQXTM[W]VL[ITW\TQSM¹8ZWOZIU\WIV QV\MZNIKMVW\IVQUXTMUMV\I\QWVºZQOP\'1\Q[[QUQTIZ# PW_M^MZ\PM,MXMVLMVKa1V^MZ[QWV8ZQVKQXTMUISM[IVM^MV [\ZWVOMZ[\I\MUMV\IJW]\IJ[\ZIK\QWV1\[]OOM[\[\PI\W]Z PQOPTM^MTKWUXWVMV\[[PW]TLVW\LMXMVLWVW]ZTW_TM^MT KWUXWVMV\[#ZI\PMZ\PMa[PW]TLJW\PLMXMVLWVIJ[\ZIK\QWV[ *]\_PI\\PMPMKSLWM[\PI\UMIV' ?MTTTM\¼[[\IZ\JaTWWSQVOIOIQVI\\PMXQbbI[\WZMLQIOZIU WV\PMXZM^QW][XIOM8QbbI;\WZMQ[W]Z¹PQOPTM^MT KWUXWVMV\ºIVL\PMXQbbIQUXTMUMV\I\QWV[IZMW]Z¹TW_ TM^MTKWUXWVMV\[ºIVLKTMIZTa\PM8QbbI;\WZMQ[LMXMVLMV\ WV\PMKWVKZM\MXQbbIKTI[[M[ 6W_\PQ[XZQVKQXTM\MTT[][_M[PW]TLQV[\MIL_ZQ\MW]ZKWLM [W\PI\_MIZMLMXMVLQVOWVIJ[\ZIK\QWV[VW\KWVKZM\M KTI[[M[
$´KLJKOHYHOµFRPSRQHQWLVDFODVV ZLWKEHKDYLRUGHILQHGLQWHUPVRI RWKHU´ORZOHYHOµFRPSRQHQWV )RUH[DPSOH3L]]D6WRUHLVD KLJKOHYHOFRPSRQHQWEHFDXVH LWVEHKDYLRULVGHILQHGLQWHUPV RISL]]DVLWFUHDWHVDOOWKH GLIIHUHQWSL]]DREMHFWVSUHSDUHV EDNHVFXWVDQGER[HVWKHPZKLOH WKHSL]]DVLWXVHVDUHORZOHYHO FRPSRQHQWV

*]\PW_LW_MLW\PQ['4M\¼[\PQVSIJW]\PW__M¼L IXXTa\PQ[XZQVKQXTM\WW]Z>MZa,MXMVLMV\8QbbI;\WZM QUXTMUMV\I\QWV

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 32

GHSHQGHQF\LQYHUVLRQSULQFLSOH

)XXTaQVO\PM8ZQVKQXTM 6W_\PMUIQVXZWJTMU_Q\P\PM>MZa,MXMVLMV\8QbbI;\WZMQ[\PI\Q\LMXMVL[ WVM^MZa\aXMWN XQbbIJMKI][MQ\IK\]ITTaQV[\IV\QI\M[KWVKZM\M\aXM[QVQ\[ WZLMZ8QbbIUM\PWL ?PQTM_M¼^MKZMI\MLIVIJ[\ZIK\QWV8QbbI_M¼ZMVM^MZ\PMTM[[KZMI\QVOKWVKZM\M 8QbbI[QV\PQ[KWLM[W_MLWV¼\OM\ITW\WN TM^MZIOMW]\WN \PQ[IJ[\ZIK\QWV 0W_KIV_MOM\\PW[MQV[\IV\QI\QWV[W]\WN \PMWZLMZ8QbbIUM\PWL'?MTTI[ _MSVW_\PM.IK\WZa5M\PWLITTW_[][\WLWR][\\PI\ ;WIN\MZ_M¼^MIXXTQML\PM.IK\WZa5M\PWLW]ZLQIOZIUTWWS[TQSM\PQ["

QGVRQO\ 3L]]D6WRUHQRZGHSHFWFODVV RQ3L]]DWKHDEVWUD

H

 

3 L]

]D6WRU

3L]]DLVDQDEVWUDFW FODVVDQDEVWUDFWLRQ

HU

H3L]]D KH HV

3 L ]] D ODP

W\ OH3HSS

6

J LFD &K

J LFD &K

R6 W\OH&

RQL3 ] L ]D

3L]]D LH

L3L]]D

RQ

9H J J

R6 W\OH9

JR

HJ JLH3L]]D

W\ OH

&ODP

LFD &K

\O 6W

6 1<

1<

J LFD &K

H3 HS SH U

3L

W\ OH

&KH H

]] D

6 1<

6 1<

W\ OH

3L]]D

VH 3L]]D

 

 

ODVVHVGHSHQGRQ 7KHFRQFUHWHSL]]DFQWRREHFDXVHWKH\ WLR WKH3L]]DDEVWUDF QWHUIDFH UHPHPEHU LPSOHPHQWWKH3L]]DL µLQWKHJHQHUDO ZH·UHXVLQJ´LQWHUIDFHEVWUDFWFODVV VHQVH LQWKH3L]]DD

R6 W\OH&

)N\MZIXXTaQVO\PM.IK\WZa5M\PWLaW]¼TTVW\QKM\PI\W]ZPQOPTM^MTKWUXWVMV\ \PM8QbbI;\WZMIVLW]ZTW_TM^MTKWUXWVMV\[\PMXQbbI[JW\PLMXMVLWV8QbbI \PMIJ[\ZIK\QWV.IK\WZa5M\PWLQ[VW\\PMWVTa\MKPVQY]MNWZILPMZQVO\W\PM ,MXMVLMVKa1V^MZ[QWV8ZQVKQXTMJ]\Q\Q[WVMWN \PMUWZMXW_MZN]TWVM[



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 33

WKHIDFWRU\SDWWHUQ

2ND\,JHWWKHGHSHQGHQF\ SDUWEXWZK\LVLWFDOOHG GHSHQGHQF\LQYHUVLRQ"

:KHUH·VWKH´LQYHUVLRQµLQ'HSHQGHQF\ ,QYHUVLRQ3ULQFLSOH"
\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 34

LQYHUW\RXUWKLQNLQJ

1V^MZ\QVOaW]Z\PQVSQVO +PPP3L]]D6WRUHVSUHSDUHEDNHDQG ER[SL]]DV6RP\VWRUHQHHGVWREH DEOHWRPDNHDEXQFKRIGLIIHUHQW SL]]DV&KHHVH3L]]D9HJJLH3L]]D &ODP3L]]DDQGVRRQ

:HOOD&KHHVH3L]]DDQGD 9HJJLH3L]]DDQGD&ODP3L]]D DUHDOOMXVW3L]]DVVRWKH\ VKRXOGVKDUHD3L]]DLQWHUIDFH

7SIa[WaW]VMML\WQUXTMUMV\I8QbbI;\WZM ?PI\¼[\PMÅZ[\\PW]OP\\PI\XWX[QV\WaW]ZPMIL'

:QOP\aW][\IZ\I\\WXIVLNWTTW_\PQVO[LW_V\W \PMKWVKZM\MKTI[[M[*]\I[aW]¼^M[MMVaW]LWV¼\ _IV\aW]Z[\WZM\WSVW_IJW]\\PMKWVKZM\MXQbbI \aXM[JMKI][M\PMVQ\¼TTJMLMXMVLMV\WVITT\PW[M KWVKZM\MKTI[[M[ 6W_TM\¼[¹QV^MZ\ºaW]Z\PQVSQVOQV[\MILWN  [\IZ\QVOI\\PM\WX[\IZ\I\\PM8QbbI[IVL\PQVS IJW]\_PI\aW]KIVIJ[\ZIK\

:QOP\ AW]IZM\PQVSQVOIJW]\\PMIJ[\ZIK\QWV 8QbbI;WVW_OWJIKSIVL\PQVSIJW]\\PMLM[QOV WN \PM8QbbI;\WZMIOIQV 6LQFH,QRZKDYHD3L]]D DEVWUDFWLRQ,FDQGHVLJQP\ 3L]]D6WRUHDQGQRWZRUU\DERXW WKHFRQFUHWHSL]]DFODVVHV

+TW[M*]\\WLW\PI\aW]¼TTPI^M\WZMTaWVI NIK\WZa\WOM\\PW[MKWVKZM\MKTI[[M[W]\WN  aW]Z8QbbI;\WZM7VKMaW]¼^MLWVM\PI\aW]Z LQNNMZMV\KWVKZM\MXQbbI\aXM[LMXMVLWVTaWVIV IJ[\ZIK\QWVIVL[WLWM[aW]Z[\WZM?M¼^M\ISMV ILM[QOV_PMZM\PM[\WZMLMXMVLMLWVKWVKZM\M KTI[[M[IVLQV^MZ\ML\PW[MLMXMVLMVKQM[ITWVO _Q\PaW]Z\PQVSQVO 

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 35

WKHIDFWRU\SDWWHUQ

)NM_O]QLMTQVM[\WPMTXaW]NWTTW_\PM 8ZQVKQXTM
HKROGLQJ ,I\RXXVHQHZ\RX·OOEFUHWHFODVV FRQ D WR QFH DUHIHUH DURXQGWKDW 8VHDIDFWRU\WRJHW

ƒ 6W^IZQIJTM[PW]TLPWTLIZMNMZMVKM\WIKWVKZM\MKTI[[

ƒ 6WKTI[[[PW]TLLMZQ^MNZWUIKWVKZM\MKTI[[

,I\RXGHULYHIURPDFRQFUHWHFODVV \RX·UHGHSHQGLQJRQDFRQFUHWHFODVV 'HULYHIURPDQDEVWUDFWLRQOLNHDQ LQWHUIDFHRUDQDEVWUDFWFODVV

ƒ 6WUM\PWL[PW]TLW^MZZQLMIVQUXTMUMV\MLUM\PWLWN  IVaWN Q\[JI[MKTI[[M[

,I\RXRYHUULGHDQL WKHQ\RXUEDVHFODVVPSOHPHQWHGPHWKRG DEVWUDFWLRQWRVWD ZDVQ·WUHDOO\DQ PHWKRGVLPSOHPHQW UWZLWK7KRVH PHDQWWREHVKDUHGHGLQWKHEDVHFODVVDUH E\DOO\RXUVXEFODV VHV

%XWZDLWDUHQ·WWKHVH JXLGHOLQHVLPSRVVLEOHWRIROORZ" ,I,IROORZWKHVH,·OOQHYHUEH DEOHWRZULWHDVLQJOHSURJUDP

AW]¼ZMM`IK\TaZQOP\ 4QSMUIVaWN W]ZXZQVKQXTM[\PQ[Q[IO]QLMTQVM aW][PW]TL[\ZQ^MNWZZI\PMZ\PIVIZ]TMaW][PW]TLNWTTW_ITT\PM\QUM +TMIZTaM^MZa[QVOTM2I^IXZWOZIUM^MZ_ZQ\\MV^QWTI\M[\PM[MO]QLMTQVM[ *]\QN aW]QV\MZVITQbM\PM[MO]QLMTQVM[IVLPI^M\PMUQV\PMJIKSWN  aW]ZUQVL_PMVaW]LM[QOVaW]¼TTSVW__PMVaW]IZM^QWTI\QVO\PM XZQVKQXTMIVLaW]¼TTPI^MIOWWLZMI[WVNWZLWQVO[W.WZQV[\IVKMQN aW] PI^MIKTI[[\PI\Q[V¼\TQSMTa\WKPIVOMIVLaW]SVW_Q\\PMVQ\¼[VW\\PM MVLWN \PM_WZTLQN aW]QV[\IV\QI\MIKWVKZM\MKTI[[QVaW]ZKWLM
\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 36

IDPLOLHVRILQJUHGLHQWV

5MIV_PQTMJIKSI\\PM8QbbI;\WZM
'RXJK 3HSSHURQL

6W_\PMSMa\W7JRMK\^QTTM8QbbI¼[[]KKM[[PI[ IT_Ia[JMMVNZM[PY]ITQ\aQVOZMLQMV\[IVL _PI\aW]¼^MLQ[KW^MZMLQ[\PI\_Q\P\PM VM_NZIUM_WZSaW]ZNZIVKPQ[M[PI^MJMMV NWTTW_QVOaW]ZXZWKML]ZM[J]\INM_NZIVKPQ[M[ PI^MJMMV[]J[\Q\]\QVOQVNMZQWZQVOZMLQMV\[ QV\PMQZXQM[\WTW_MZKW[\[IVLQVKZMI[M \PMQZUIZOQV[AW]SVW_aW]¼^MOW\\WLW [WUM\PQVOJMKI][MQV\PMTWVO\MZU\PQ[Q[ OWQVO\WP]Z\\PM7JRMK\^QTTMJZIVL

-V[]ZQVOKWV[Q[\MVKaQVaW]Z QVOZMLQMV\[

&KHHVH

9HJJLHV

6DXFH

;WPW_IZMaW]OWQVO\WMV[]ZMMIKPNZIVKPQ[MQ[][QVO Y]ITQ\aQVOZMLQMV\['AW]¼ZMOWQVO\WJ]QTLINIK\WZa\PI\ XZWL]KM[\PMUIVL[PQX[\PMU\WaW]ZNZIVKPQ[M[ 6W_\PMZMQ[WVTaWVMXZWJTMU_Q\P\PQ[XTIV"\PMNZIVKPQ[M[IZMTWKI\MLQV LQNNMZMV\ZMOQWV[IVL_PI\Q[ZML[I]KMQV6M_AWZSQ[VW\ZML[I]KMQV+PQKIOW ;WaW]PI^MWVM[M\WN QVOZMLQMV\[\PI\VMML\WJM[PQXXML\W6M_AWZSIVLI LQNNMZMV\[M\\PI\VMML[\W[PQXXML\W+PQKIOW4M\¼[\ISMIKTW[MZTWWS"

%JKECIQ 2K\\C/GPW &KHHVH3L]]D 3OXP7RPDWR6DXFH0R]]DUHOOD3DUPHVDQ 2UHJDQR

9HJJLH3L]]D 3OXP7RPDWR6DXFH0R]]DUHOOD3DUPHVDQ (JJSODQW6SLQDFK%ODFN2OLYHV

&ODP3L]]D ODPV 3OXP7RPDWR6DXFH0R]]DUHOOD3DUPHVDQ& 3HSSHURQL3L]]D 3OXP7RPDWR6DXFH0R]]DUHOOD3DUPHVDQ HSSHURQL (JJSODQW6SLQDFK%ODFN2OLYHV3



:H·YHJRWWKH VDPHSURGXFW IDPLOLHV GRXJK VDXFHFKHHVH YHJJLHVPHDWV  EXWGLIIHUHQW LPSOHPHQWDWLRQV EDVHGRQUHJLRQ

0GY;QTM 2K\\C/GPW &KHHVH3L]]D 0DULQDUD6DXFH5HJJLDQR*DUOLF 9HJJLH3L]]D 0DULQDUD6DXFH5HJJLDQR0XVKURRPV 2QLRQV5HG3HSSHUV

&ODP3L]]D 0DULQDUD6DXFH5HJJLDQR)UHVK&ODPV 3HSSHURQL3L]]D 0DULQDUD6DXFH5HJJLDQR0XVKURRPV 2QLRQV5HG3HSSHUV3HSSHURQL

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 37

WKHIDFWRU\SDWWHUQ

.IUQTQM[WNQVOZMLQMV\[ 1HZ
+PQKIOW )UR]HQ&ODPV

7KLFN&UXVW'RXJK

3OXP7RPDWR6DXFH

0R]]DUHOOD&KHHVH

)RUWKLVWRZRUN\RXDUHJRLQJWR KDYHWRÀJXUHRXWKRZWRKDQGOH IDPLOLHVRILQJUHGLHQWV

6M_AWZS

IURPWKHVDPH ]]DVDUHPDGH GLIIHUHQW 3L ·V LOOH WY HF EM VD $OO2 HDFKUHJLRQKD FRPSRQHQWVEXW IWKRVHFRPSRQHQWV R LRQ DW LPSOHPHQW

)UHVK&ODPV

0DULQDUD6DXFH

7KLQ&UXVW'RXJK

+ITQNWZVQI 5HJJLDQR&KHHVH &DPDUL

9HU\7KLQ&UXVW

%UXVFKHWWD6DXFH

*RDW&KHHVH

(DFKIDPLO\FRQVLVWVRIDW\SHRIGRXJK DW\SHRIVDXFHDW\SHRIFKHHVHDQGD VHDIRRGWRSSLQJ DORQJZLWKDIHZPRUHZH KDYHQ·WVKRZQOLNHYHJJLHVDQGVSLFHV 

QWIDPLOLHVZLWK HJLRQVPDNHXSLQJUHGLH ,QWRWDOWKHVHWKUHHULQJDFRPSOHWHIDPLO\RILQJUHGLHQWV HDFKUHJLRQLPSOHPHQW \RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 38

LQJUHGLHQWIDFWRULHV

*]QTLQVO\PMQVOZMLQMV\NIK\WZQM[ 1RZZH·UHJRLQJWREXLOGDIDFWRU\WRFUHDWHRXULQJUHGLHQWVWKH IDFWRU\ZLOOEHUHVSRQVLEOHIRUFUHDWLQJHDFKLQJUHGLHQWLQWKH LQJUHGLHQWIDPLO\,QRWKHUZRUGVWKHIDFWRU\ZLOOQHHGWRFUHDWH GRXJKVDXFHFKHHVHDQGVRRQ
SXEOLFLQWHUIDFH3L]]D,QJUHGLHQW)DFWRU\^  SXEOLF'RXJKFUHDWH'RXJK  SXEOLF6DXFHFUHDWH6DXFH  SXEOLF&KHHVHFUHDWH&KHHVH  SXEOLF9HJJLHV>@FUHDWH9HJJLHV  SXEOLF3HSSHURQLFUHDWH3HSSHURQL  SXEOLF&ODPVFUHDWH&ODP   `

/RWVRIQHZFODVVHVKHUH RQHSHULQJUHGLHQW

QHD HGLHQWZHGHIL )RUHDFKLQJU GLQRXULQWHUIDFH FUHDWHPHWKR

HU\µ ,IZH·GKDGVRPHFRPPRQ´PDFKLQ I FHR VWDQ KLQ HDF WLQ WRLPSOHPHQ DQ IDFWRU\ZHFRXOGKDYHPDGHWKLV DEVWUDFWFODVVLQVWHDG

+HUH·VZKDWZH·UHJRLQJWRGR





*]QTLINIK\WZaNWZMIKPZMOQWV


1UXTMUMV\I[M\WN QVOZMLQMV\KTI[[M[\WJM][ML_Q\P\PMNIK\WZaTQSM :MOOQIVW+PMM[M:ML8MXXMZ[IVL



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 39

WKHIDFWRU\SDWWHUQ

*]QTLQVO\PM6M_AWZSQVOZMLQMV\NIK\WZa 2ND\KHUH·VWKHLPSOHPHQWDWLRQIRU WKH1HZ
HQWV 7KH1<LQJUHGLHQWIDFWRU\LPSOHP QW HGLH LQJU UDOO WKHLQWHUIDFHIR IDFWRULHV

SXEOLFFODVV1<3L]]D,QJUHGLHQW)DFWRU\LPSOHPHQWV3L]]D,QJUHGLHQW)DFWRU\^  SXEOLF'RXJKFUHDWH'RXJK ^ UHWXUQQHZ7KLQ&UXVW'RXJK  LHQWLQWKH ` )RUHDFKLQJUHGO\ZHFUHDWH PL  ID LQJUHGLHQW SXEOLF6DXFHFUHDWH6DXFH ^ HUVLRQ WKH1HZ@FUHDWH9HJJLHV ^ 9HJJLHVYHJJLHV>@ ^QHZ*DUOLF QHZ2QLRQ QHZ0XVKURRP QHZ5HG3HSSHU ` UHWXUQYHJJLHV )RUYHJJLHVZHUHWXUQDQDUUD\RI ` 9HJJLHV+HUHZH·YHKDUGFRGHGWKH  SXEOLF3HSSHURQLFUHDWH3HSSHURQL ^ YHJJLHV:HFRXOGPDNHWKLVPRUH UHWXUQQHZ6OLFHG3HSSHURQL  VRSKLVWLFDWHGEXWWKDWGRHVQ·WUHDOO\ ` DGGDQ\WKLQJWROHDUQLQJWKHIDFWRU\ SXEOLF&ODPVFUHDWH&ODP ^ SDWWHUQVRZH·OONHHSLWVLPSOH UHWXUQQHZ)UHVK&ODPV  ` `

1HZ
7KHEHVWVOLFHGSHSSHURQL7KLV LVVKDUHGEHWZHHQ1HZ
\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 40

EXLOGDIDFWRU\

6KDUSHQ \RXU SHQFLO ?ZQ\M\PM+PQKIOW8QbbI1VOZMLQMV\.IK\WZaAW]KIV ZMNMZMVKM\PMKTI[[M[JMTW_QVaW]ZQUXTMUMV\I\QWV"

(JJ3ODQW 6SLQDFK

7KLFN&UXVW'RXJK

6OLFHG3HSSHURQL

%ODFN2OLYHV

3OXP7RPDWR6DXFH

)UR]HQ&ODP 0R]]DUHOOD



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 41

WKHIDFWRU\SDWWHUQ

:M_WZSQVO\PMXQbbI[ ?M¼^MOW\W]ZNIK\WZQM[ITTÅZML]XIVLZMILa\WXZWL]KMY]ITQ\aQVOZMLQMV\[#VW__M R][\VMML\WZM_WZSW]Z8QbbI[[W\PMaWVTa][MNIK\WZaXZWL]KMLQVOZMLQMV\[?M¼TT [\IZ\_Q\PW]ZIJ[\ZIK\8QbbIKTI[["

SXEOLFDEVWUDFWFODVV3L]]D^ 6WULQJQDPH 'RXJKGRXJK 6DXFHVDXFH 9HJJLHVYHJJLHV>@ &KHHVHFKHHVH 3HSSHURQLSHSSHURQL &ODPVFODP

(DFKSL]]DKROGVDVHWRILQJUHGLHQWV WKDWDUHXVHGLQLWVSUHSDUDWLRQ

:H·YHQRZPDGHWKHSUHSDUHPHWKRGDEVWUDFW 7KLVLVZKHUHZHDUHJRLQJWRFROOHFWWKH LQJUHGLHQWVQHHGHGIRUWKHSL]]DZKLFKRI FRXUVHZLOOFRPHIURPWKHLQJUHGLHQWIDFWRU\

DEVWUDFWYRLGSUHSDUH 

YRLGEDNH ^ 6\VWHPRXWSULQWOQ ³%DNHIRUPLQXWHVDW´  ` YRLGFXW ^ 6\VWHPRXWSULQWOQ ³&XWWLQJWKHSL]]DLQWRGLDJRQDOVOLFHV´  ` YRLGER[ ^ 6\VWHPRXWSULQWOQ ³3ODFHSL]]DLQRI¿FLDO3L]]D6WRUHER[´  ` YRLGVHW1DPH 6WULQJQDPH ^ WKLVQDPH QDPH `

HPDLQWKHVDPHZLWK 2XURWKHUPHWKRGVUHSUHSDUHPHWKRG WKHH[FHSWLRQRIWK

6WULQJJHW1DPH ^ UHWXUQQDPH ` SXEOLF6WULQJWR6WULQJ ^ FRGHWRSULQWSL]]DKHUH ` `

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 42

GHFRXSOLQJLQJUHGLHQWV

:M_WZSQVO\PMXQbbI[KWV\QV]ML 6W_\PI\aW]¼^MOW\IVIJ[\ZIK\8QbbI\W_WZSNZWUQ\¼[\QUM\WKZMI\M \PM6M_AWZSIVL+PQKIOW[\aTM8QbbI[·WVTa\PQ[\QUMIZW]VL\PMa_QTT OM\\PMQZQVOZMLQMV\[[\ZIQOP\NZWU\PMNIK\WZaMOOQM+TIUIVL[WWV
ZHQHHG

SXEOLFFODVV&KHHVH3L]]DH[WHQGV3L]]D^ 7RPDNHDSL]]DQRZWKH 3L]]D,QJUHGLHQW)DFWRU\LQJUHGLHQW)DFWRU\ DIDFWRU\WRSURYLGH3L]]D  LQJUHGLHQWV6RHDFK SXEOLF&KHHVH3L]]D 3L]]D,QJUHGLHQW)DFWRU\LQJUHGLHQW)DFWRU\ ^ VVJHWVDIDFWRU\SDVVHG FOD DQGLW·V WKLVLQJUHGLHQW)DFWRU\ LQJUHGLHQW)DFWRU\ LQWRLWVFRQVWUXFWRU YDULDEOH ` QFH VWD LQ VWRUHGLQDQ  YRLGSUHSDUH ^ 6\VWHPRXWSULQWOQ ³3UHSDULQJ³QDPH  GRXJK LQJUHGLHQW)DFWRU\FUHDWH'RXJK  VDXFH LQJUHGLHQW)DFWRU\FUHDWH6DXFH  +HUH·VZKHUHWKHPDJLFKDSSHQV FKHHVH LQJUHGLHQW)DFWRU\FUHDWH&KHHVH  ` `

LQJ 7KHSUHSDUH PHWKRGVWHSVWKURXJKFUHDW DFKHHVHSL]]DDQGHDFKWLPHLWQHHGVDQ LW LQJUHGLHQWLWDVNVWKHIDFWRU\WRSURGXFH



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 43

WKHIDFWRU\SDWWHUQ

&RGH8S&ORVH
VDXFH LQJUHGLHQW)DFWRU\FUHDWH6DXFH 

:H·UHVHWWLQJWKH 3L]]DLQVWDQFH  YDULDEOHWRUHIHUW WKHVSHFLILFVDXFH R XVHGLQWKLVSL]]D

7KLVLVRXULQJUHGLHQWIDFWRU\ 7KH3L]]DGRHVQ·WFDUHZKLFK IDFWRU\LVXVHGDVORQJDVLWLV DQLQJUHGLHQWIDFWRU\

H WKRGUHWXUQVWKHVDXF 7KHFUHDWH6DXFH PH RQ,IWKLVLVD1< HJL VU LW H WKDWLVXVHGLQ ZHJHWPDULQDUDVDXF LQJUHGLHQWIDFWRU\WKHQ

4M\¼[KPMKSW]\\PM+TIU8QbbII[_MTT"

SXEOLFFODVV&ODP3L]]DH[WHQGV3L]]D^ 3L]]D,QJUHGLHQW)DFWRU\LQJUHGLHQW)DFWRU\  SXEOLF&ODP3L]]D 3L]]D,QJUHGLHQW)DFWRU\LQJUHGLHQW)DFWRU\ ^ WKLVLQJUHGLHQW)DFWRU\ LQJUHGLHQW)DFWRU\ &ODP3L]]DDOVRVWDVKHVDQ ` LQJUHGLHQWIDFWRU\  YRLGSUHSDUH ^ 6\VWHPRXWSULQWOQ ³3UHSDULQJ³QDPH  GRXJK LQJUHGLHQW)DFWRU\FUHDWH'RXJK  VDXFH LQJUHGLHQW)DFWRU\FUHDWH6DXFH  7RPDNHDFODPSL]]DWKH FKHHVH LQJUHGLHQW)DFWRU\FUHDWH&KHHVH  FODP LQJUHGLHQW)DFWRU\FUHDWH&ODP  SUHSDUHPHWKRGFROOHFWVWKHULJKW ` LQJUHGLHQWVIURPLWVORFDOIDFWRU\ `

,ILW·VD1HZ
\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 44

XVHWKHULJKWLQJUHGLHQWIDFWRU\

:M^Q[Q\QVOW]ZXQbbI[\WZM[ :H·UHDOPRVWWKHUHZHMXVWQHHGWRPDNHDTXLFNWULSWRRXU IUDQFKLVHVWRUHVWRPDNHVXUHWKH\DUHXVLQJWKHFRUUHFW 3L]]DV:HDOVRQHHGWRJLYHWKHPDUHIHUHQFHWRWKHLUORFDO LQJUHGLHQWIDFWRULHV

SXEOLFFODVV1<3L]]D6WRUHH[WHQGV3L]]D6WRUH^  SURWHFWHG3L]]DFUHDWH3L]]D 6WULQJLWHP ^ 3L]]DSL]]D QXOO 3L]]D,QJUHGLHQW)DFWRU\LQJUHGLHQW)DFWRU\  QHZ1<3L]]D,QJUHGLHQW)DFWRU\   LI LWHPHTXDOV ³FKHHVH´ ^  SL]]D QHZ&KHHVH3L]]D LQJUHGLHQW)DFWRU\  SL]]DVHW1DPH ³1HZ
 GZLWKD1< UHLVFRPSRVH LOO 7KH1<6WR LHQWIDFWRU\7KLVZ V SL]]DLQJUHGSURGXFHWKHLQJUHGLHQW EHXVHGWR W\OHSL]]DV IRUDOO1<V

:HQRZSDVVHDFKSL]]DWKH IDFWRU\WKDWVKRXOGEHXVHGWR SURGXFHLWVLQJUHGLHQWV /RRNEDFNRQHSDJHDQGPDNHVXUH \RXXQGHUVWDQGKRZWKHSL]]DDQG WKHIDFWRU\ZRUNWRJHWKHU

)RUHDFKW\SHRI3L]]DZH LQVWDQWLDWHDQHZ3L]]DDQGJLYH LWWKHIDFWRU\LWQHHGVWRJHW LWVLQJUHGLHQWV

YiX`e gfn\i &RPSDUHWKLVYHUVLRQRIWKHFUHDWH3L]]D PHWKRG WRWKHRQHLQWKH)DFWRU\0HWKRGLPSOHPHQWDWLRQ HDUOLHULQWKHFKDSWHU



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 45

WKHIDFWRU\SDWWHUQ

?PI\PI^M_MLWVM' 7KDWZDVTXLWHDVHULHVRI FRGHFKDQJHVZKDWH[DFWO\ GLGZHGR" :HSURYLGHGDPHDQV  IFUHDWLQJDIDPLO\RI R LQJUHGLHQWVIRUSL]]DVE\ LQWURGXFLQJDQHZW\SHRI IDFWRU\FDOOHGDQ$EVWUDFW )DFWRU\ $Q$EVWUDFW)DFWRU\JLYHV XVDQLQWHUIDFHIRUFUHDWLQJ DIDPLO\RISURGXFWV%\ ZULWLQJFRGHWKDWXVHVWKLV LQWHUIDFHZHGHFRXSOHRXU FRGHIURPWKHDFWXDOIDFWRU\ WKDWFUHDWHVWKHSURGXFWV 7KDWDOORZVXVWRLPSOHPHQW DYDULHW\RIIDFWRULHVWKDW SURGXFHSURGXFWVPHDQWIRU GLIIHUHQWFRQWH[WV²VXFKDV GLIIHUHQWUHJLRQVGLIIHUHQW RSHUDWLQJV\VWHPVRU GLIIHUHQWORRNDQGIHHOV

 'HILQHVWKH LQWHUIDFH

1DLGEVXKNNG#DUVTCEV+PITGFKGPV(CEVQT[ 3URYLGHV RQV LPSOHPHQWDWL  IRUSURGXFWV

%JKECIQ

0GY;QTM

&ROMTHEABSTRACTFACTORY WE DERIVEONEORMORECONCRETE FACTORIESTHATPRODUCETHESAME PRODUCTS BUTWITHDIFFERENT IMPLEMENTATIONS

  3L] ]D6WRUH



%HFDXVHRXUFRGHLV GHFRXSOHGIURPWKHDFWXDO SURGXFWVZHFDQVXEVWLWXWH GLIIHUHQWIDFWRULHVWRJHW GLIIHUHQWEHKDYLRUV OLNH JHWWLQJPDULQDUDLQVWHDGRI SOXPWRPDWRHV 

!N!BSTRACT&ACTORYPROVIDESANINTERFACEFOR AFAMILYOFPRODUCTS7HATSAFAMILY)NOUR CASEITSALLTHETHINGSWENEEDTOMAKEAPIZZA DOUGH SAUCE CHEESE MEATSANDVEGGIES

ZLWK 3L]]DPDGHSURGXFHGE\ V QW LH HG LQJU WRU\ FRQFUHWHIDF

7ETHENWRITEOURCODESOTHATITUSESTHE FACTORYTOCREATEPRODUCTS"YPASSINGIN AVARIETYOFFACTORIES WEGETAVARIETYOF IMPLEMENTATIONSOFTHOSEPRODUCTS"UT OURCLIENTCODESTAYSTHESAME

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 46

RUGHUVRPHPRUHSL]]D

5WZMXQbbINWZ-\PIVIVL2WMT %HKLQG WKH6FHQHV

-\PIVIVL2WMTKIV¼\OM\MVW]OP7JRMK\ ^QTTM8QbbI ?PI\\PMa LWV¼\SVW_Q[\PI\VW_\PMQZWZLMZ[IZMUISQVO][MWN\PM VM_QVOZMLQMV\NIK\WZQM[;WVW__PMV\PMaWZLMZ

,·PVWLFNLQ· ZLWK&KLFDJR

,·PVWLOOORYLQ·1<6W\OH




)LUVWZHQHHGD1<3L]]D6WRUH



1RZWKDWZHKDYHDVWRUHZHFDQWDNHDQRUGHU

  Q \3



&UHDWHVDQLQVWDQFHRI 1<3L]]D6WRUH

H

3L]]D6WRUHQ\3L]]D6WRUH QHZ1<3L]]D6WRUH 

L]]D6WR

U

Q\3L]]D6WRUHRUGHU3L]]D ³FKHHVH´ 

LVFDOOHGRQ WKHRUGHU3L]]D PHWKRG  WKHQ\3L]]D6WRUHLQVWDQFH



7KHRUGHU3L]]D PHWKRGÀUVWFDOOVWKHFUH DWH3L]]D PHWKRG

HVH´ ]]D ³FKH FUHDWH3L

3L]]DSL]]D FUHDWH3L]]D ³FKHHVH´ 



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 47

WKHIDFWRU\SDWWHUQ

.ZWUPMZM\PQVO[KPIVOMJMKI][M_M IZM][QVOIVQVOZMLQMV\NIK\WZa



%HKLQG WKH6FHQHV

:KHQWKHFUHDWH3L]]D PHWKRGLVFDOOHGWKDW·V ZKHQRXULQJUHGLHQWIDFWRU\JHWVLQYROYHG

RU\LVFKRVHQDQG 7KHLQJUHGLHQWIDFW L]]D6WRUHDQGWKHQ H3 LQVWDQWLDWHGLQWK WUXFWRURIHDFKSL]]D SDVVHGLQWRWKHFRQV KROGV

&UHDWHVDLQVWDQFHRI 3L]]DWKDWLVFRPSRVHG ZLWKWKH1HZ
DF W RU \

3L]]DSL]]D QHZ&KHHVH3L]]D Q\,QJUHGLHQW)DFWRU\ 

Q

\, QJU HGLHQW)



1H[WZHQHHGWRSUHSDUHWKHSL]]D2QFHWKH SUHSDUH PHWKRGLVFDOOHGWKHIDFWRU\LVDVNHG WRSUHSDUHLQJUHGLHQWV YRLGSUHSDUH ^ GRXJK IDFWRU\FUHDWH'RXJK  VDXFH IDFWRU\FUHDWH6DXFH  FKHHVH IDFWRU\FUHDWH&KHHVH  `

SUHSDUH



   3L]]D

XVW 7KLQFU 0DULQDUD 5HJJLDQR




)LQDOO\ZHKDYHWKHSUHSDUHGSL]]DLQKDQGDQGWKH RUGHU3L]]D PHWKRGEDNHVFXWVDQGER[HVWKHSL]]D \RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 48

DEVWUDFWIDFWRU\GH¿QHG

)J[\ZIK\.IK\WZa8I\\MZVLMNQVML ?M¼ZMILLQVOaM\IVW\PMZNIK\WZaXI\\MZV\WW]ZXI\\MZVNIUQTaWVM\PI\TM\[][KZMI\MNIUQTQM[ WN XZWL]K\[4M\¼[KPMKSW]\\PMWNÅKQITLMÅVQ\QWVNWZ\PQ[XI\\MZV"
?M¼^MKMZ\IQVTa[MMV\PI\)J[\ZIK\.IK\WZaITTW_[IKTQMV\\W][MIVIJ[\ZIK\QV\MZNIKM\W KZMI\MI[M\WN ZMTI\MLXZWL]K\[_Q\PW]\SVW_QVOWZKIZQVOIJW]\\PMKWVKZM\MXZWL]K\[\PI\ IZMIK\]ITTaXZWL]KML1V\PQ[_Ia\PMKTQMV\Q[LMKW]XTMLNZWUIVaWN \PM[XMKQÅK[WN \PM KWVKZM\MXZWL]K\[4M\¼[TWWSI\\PMKTI[[LQIOZIU\W[MMPW_\PQ[ITTPWTL[\WOM\PMZ"

7KH&OLHQWLVZULWWHQDJDLQVWWKH DEVWUDFWIDFWRU\DQGWKHQFRPSRVHGDW UXQWLPHZLWKDQDFWXDOIDFWRU\ 7KH$EVWUDFW)DFWRU\GHILQHVWKH LQWHUIDFHWKDWDOO&RQFUHWHIDFWRULHV PXVWLPSOHPHQWZKLFKFRQVLVWVRIDVHW RIPHWKRGVIRUSURGXFLQJSURGXFWV LQWHUIDFH!! $EVWUDFW)DFWRU\

&OLHQW

7KLVLVWKHSURGXFW IDPLO\(DFKFRQFUHWH IDFWRU\FDQSURGXFHDQ HQWLUHVHWRISURGXFWV

LQWHUIDFH!! $EVWUDFW3URGXFW$

&UHDWH3URGXFW$ &UHDWH3URGXFW%

3URGXFW$

3URGXFW$

&RQFUHWH)DFWRU\

&RQFUHWH)DFWRU\ &UHDWH3URGXFW$

&UHDWH3URGXFW$

&UHDWH3URGXFW%

&UHDWH3URGXFW%

LQWHUIDFH!! $EVWUDFW3URGXFW%

7KHFRQFUHWHIDFWRULHVLPSOHPHQWWKH GLIIHUHQWSURGXFWIDPLOLHV7RFUHDWHD SURGXFWWKHFOLHQWXVHVRQHRIWKHVHIDFWRULHV VRLWQHYHUKDVWRLQVWDQWLDWHDSURGXFWREMHFW



3URGXFW%

3URGXFW%

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 49

WKHIDFWRU\SDWWHUQ

7KDW·VDIDLUO\FRPSOLFDWHGFODVV GLDJUDPOHW·VORRNDWLWDOOLQWHUPVRI RXU3L]]D6WRUH

7KHFOLHQWVRIWKH$EVWUDFW )DFWRU\DUHWKHWZR LQVWDQFHVRIRXU3L]]D6WRUH 1<3L]]D6WRUHDQG &KLFDJR6W\OH3L]]D6WRUH 1<3L]]D6WRUH FUHDWH3L]]D

7KHDEVWUDFW3L]]D,QJUHGLHQW)DFWRU\ LVWKHLQWHUIDFHWKDWGHILQHVKRZWR PDNHDIDPLO\RIUHODWHGSURGXFWV HYHU\WKLQJZHQHHGWRPDNHDSL]]D

LQWHUIDFH!! 'RXJK

7KLFN&UXVW'RXJK

7KLQ&UXVW'RXJK

LQWHUIDFH!! 3L]]D,QJUHGLHQW)DFWRU\ FUHDWH'RXJK

LQWHUIDFH!! 6DXFH

FUHDWH6DXFH FUHDWH&KHHVH FUHDWH9HJJLHV FUHDWH3HSSHURQL

3OXP7RPDWR6DXFH

FUHDWH&ODP

1<3L]]D,QJUHGLHQW)DFWRU\

&KLFDJR3L]]D,QJUHGLHQW)DFWRU\

FUHDWH'RXJK

FUHDWH'RXJK

FUHDWH6DXFH

FUHDWH6DXFH

FUHDWH&KHHVH

FUHDWH&KHHVH

FUHDWH9HJJLHV

FUHDWH9HJJLHV

FUHDWH3HSSHURQL

FUHDWH3HSSHURQL

FUHDWH&ODP

FUHDWH&ODP

0DULQDUD6DXFH

LQWHUIDFH!! &KHHVH

0R]]DUHOOD&KHHVH

5HJJLDQR&KHHVH

LQWHUIDFH!! &ODPV

7KHMRERIWKHFRQFUHWH SL]]DIDFWRULHVLVWR PDNHSL]]DLQJUHGLHQWV (DFKIDFWRU\NQRZV KRZWRFUHDWHWKHULJKW REMHFWVIRUWKHLUUHJLRQ

)UR]HQ&ODPV

)UHVK&ODPV

(DFKIDFWRU\SURGXFHVDGLIIHUHQW LPSOHPHQWDWLRQIRUWKHIDPLO\RISURGXFWV \RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 50

LQWHUYLHZZLWKIDFWRU\SDWWHUQV

,QRWLFHGWKDWHDFKPHWKRGLQWKH $EVWUDFW)DFWRU\DFWXDOO\ORRNVOLNHD)DFWRU\ 0HWKRG FUHDWH'RXJK FUHDWH6DXFH HWF  (DFKPHWKRGLVGHFODUHGDEVWUDFWDQGWKH VXEFODVVHVRYHUULGHLWWRFUHDWHVRPH REMHFW,VQ·WWKDW)DFWRU\0HWKRG"

,VWKDWD)DFWRU\0HWKRGOXUNLQJLQVLGHWKH $EVWUDFW)DFWRU\" /WWLKI\KP AM[WN\MV\PMUM\PWL[WN IV)J[\ZIK\.IK\WZaIZM QUXTMUMV\MLI[NIK\WZaUM\PWL[1\UISM[[MV[MZQOP\'
3DWWHUQV([SRVHG 7KLVZHHN·VLQWHUYLHZ

)DFWRU\0HWKRGDQG$EVWUDFW)DFWRU\RQHDFKRWKHU +HDG)LUVW?W_IVQV\MZ^QM__Q\P\_WXI\\MZV[I\WVKM 
&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 51

WKHIDFWRU\SDWWHUQ +HDG)LUVW+IVaW]M`XTIQVUWZMIJW]\\PI\.IK\WZa 5M\PWL' )DFWRU\0HWKRG;]ZM*W\P)J[\ZIK\.IK\WZaIVL 1KZMI\MWJRMK\[·\PI\¼[W]ZRWJ[*]\1LWQ\\PZW]OP QVPMZQ\IVKM $EVWUDFW)DFWRU\IVL1LWQ\\PZW]OPWJRMK\ KWUXW[Q\QWV )DFWRU\0HWKRG:QOP\;W\PI\UMIV[\WKZMI\M WJRMK\[][QVO.IK\WZa5M\PWLaW]VMML\WM`\MVLIKTI[[ IVLW^MZZQLMINIK\WZaUM\PWL +HDG)LUVW)VL\PI\NIK\WZaUM\PWLLWM[_PI\' )DFWRU\0HWKRG1\KZMI\M[WJRMK\[WN KW]Z[M 1UMIV \PM_PWTMXWQV\WN \PM.IK\WZa5M\PWL8I\\MZVQ[\PI\ aW]¼ZM][QVOI[]JKTI[[\WLWaW]ZKZMI\QWVNWZaW]1V \PI\_IaKTQMV\[WVTaVMML\WSVW_\PMIJ[\ZIK\\aXM\PMa IZM][QVO\PM[]JKTI[[_WZZQM[IJW]\\PMKWVKZM\M\aXM ;WQVW\PMZ_WZL[1SMMXKTQMV\[LMKW]XTMLNZWU\PM KWVKZM\M\aXM[ $EVWUDFW)DFWRU\)VL1LW\WWWVTa1LWQ\QVI LQNNMZMV\_Ia +HDG)LUVW/WWV)J[\ZIK\.IK\WZaaW][IQL [WUM\PQVOIJW]\WJRMK\KWUXW[Q\QWV' $EVWUDFW)DFWRU\1XZW^QLMIVIJ[\ZIK\\aXMNWZ KZMI\QVOINIUQTaWN XZWL]K\[;]JKTI[[M[WN \PQ[\aXM LMÅVMPW_\PW[MXZWL]K\[IZMXZWL]KML
)DFWRU\0HWKRG7PKWUMWV\PI\¼[IJQOLMIT  +PIVOQVOaW]ZQV\MZNIKMUMIV[aW]PI^M\WOWQVIVL KPIVOM\PMQV\MZNIKMWN M^MZa[]JKTI[[ 
$EVWUDFW)DFWRU\


Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 52

SDWWHUQVFRPSDUHG

.IK\WZa5M\PWLIVL)J[\ZIK\.IK\WZaKWUXIZML 3URYLGHVDQDEVWUDFW LQWHUIDFHIRU FUHDWLQJRQHSURGXFW

3L]]D6WRUH FUHDWH3L]]D

ZKLFK (DFKVXEFODVVGHFLGHV QWLDWH FRQFUHWHFODVVWRLQVWD 1HZ
RU\ 3L]]D6WRUHLVLPSOHPHQWHGDVD)DFW WR DEOH REH QWW HZD XVHZ EHFD KRG 0HW Q FUHDWHDSURGXFWWKDWYDULHVE\UHJLRRQ :LWKWKH)DFWRU\0HWKRGHDFKUHJL JHWVLWVRZQFRQFUHWHIDFWRU\WKDW NQRZVKRZWRPDNHSL]]DVZKLFKDUH DSSURSULDWHIRUWKHDUHD

&KLFDJR3L]]D6WRUH

1<3L]]D6WRUH

7KH)DFWRU\0HWKRG

&KLFDJR6WRUH

FUHDWH3L]]D

FUHDWH3L]]D

7KH)DFWRU\0HWKRG

7KH1<3L]]D6WRUHVXEFODVVRQO\ LQVWDQWLDWHV1<VW\OHSL]]DV

7KLVLVWKHSURGXFWRIWKH 3L]]D6WRUH&OLHQWVRQO\ UHO\RQWKLVDEVWUDFWW\SH

7KH&KLFDJDR3L]]D6WRUH VXEFODVVLQVWDQWLDWHVRQO\ &KLFDJRVW\OHSL]]DV

3L]]D

1<6W\OH&KHHVH3L]]D

1<6W\OH3HSSHURQL3L]]D

1<6W\OH&ODP3L]]D

&KLFDJR6W\OH&KHHVH3L]]D

6XEFODVVHVDUHLQVWDQLDWHG E\WKH)DFWRU\0HWKRGV

&KLFDJR6W\OH3HSSHURQL3L]]D

&KLFDJR6W\OH&ODP3L]]D

1<6W\OH9HJJLH3L]]D

&KLFDJR6W\OH9HJJLH3L]]D

1HZ
&KLFDJR

7KHFUHDWH3L]]D PHWKRGLVSDUDPHWHUL]HGE\SL]]D W\SHVRZHFDQUHWXUQPDQ\W\SHVRISL]]DSURGXFWV 

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 53

WKHIDFWRU\SDWWHUQ

DQ RU\LVLPSOHPHQWHGDV 3L]]D,QJUHGLHQW)DFW FDXVHZHQHHGWRFUHDWH EH RU\  $EVWUDFW)DFW WKHLQJUHGLHQWV (DFK IDPLOLHVRISURGXFWV KHLQJUHGLHQWVXVLQJLWVRZQ VXEFODVVLPSOHPHQWVW UHJLRQDOVXSSOLHUV

LQWHUIDFH!! 3L]]D,QJUHGLHQW)DFWRU\ FUHDWH'RXJK

3URYLGHVDQDEVWUDFW  LQWHUIDFHIRUFUHDWLQJD IDPLO\RISURGXFWV

FUHDWH6DXFH FUHDWH&KHHVH FUHDWH9HJJLHV FUHDWH3HSSHURQL

(DFKFRQFUHWHVXEFODVV FUHDWHVDIDPLO\RISURGXFWV

FUHDWH&ODP

1HZ
1<3L]]D,QJUHGLHQW)DFWRU\

FUHDWH'RXJK

FUHDWH6DXFH

FUHDWH6DXFH

FUHDWH&KHHVH

FUHDWH&KHHVH

FUHDWH9HJJLHV

FUHDWH9HJJLHV

FUHDWH3HSSHURQL

FUHDWH3HSSHURQL

FUHDWH&ODP

FUHDWH&ODP

0HWKRGVWRFUHDWHSURGXFWV LQDQ$EVWUDFW)DFWRU\DUH RIWHQLPSOHPHQWHGZLWKD )DFWRU\0HWKRG

RUWKHW\SHRIFODPV

IRULQVWDQFHWKHVXEFODVV GHFLGHVWKHW\SHRIGRXJK

LQWHUIDFH!! &ODPV

LQWHUIDFH!! 'RXJK

7KLFN&UXVW'RXJK

)UR]HQ&ODPV

7KLQ&UXVW'RXJK

LQWHUIDFH!! 6DXFH

3OXP7RPDWR6DXFH

&KLFDJR

&KLFDJR3L]]D,QJUHGLHQW)DFWRU\

FUHDWH'RXJK

0DULQDUD6DXFH

(DFKLQJUHGLHQW UHSUHVHQWVD  SURGXFWWKDWLV SURGXFHGE\D G )DFWRU\0HWKR  LQWKH$EVWUDFW )DFWRU\

)UHVK&ODPV

LQWHUIDFH!! &KHHVH

0R]]DUHOOD&KHHVH

5HJJLDQR&KHHVH

7KHSURGXFWVXEFODVVHVFUHDWHSDUDOOHOVHWVRISURGXFWIDPLOLHV +HUHZHKDYHD1HZ


Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 54

\RXUGHVLJQWRROER[


 :MDD=LHGAFLK

ƒ $OOIDFWRULHVHQFDSVXODWHREMHFW FUHDWLRQ

ƒ 6LPSOH)DFWRU\ZKLOHQRWDERQD

V 223ULQFLSOH

ILGHGHVLJQSDWWHUQLVDVLPSOH ZD\WRGHFRXSOH\RXUFOLHQWV IURPFRQFUHWHFODVVHV

22%DVLFV

$EVWUDFWLRQ RQ (QFDSVXODWL V LH DU Y DW ZK RO\PRUSKLVP (QFDSVXODWH KHULWDQFH3 VLWLRQRYHULQ SR RP F RU DY ) ,QKHULWDQFH RW LQWHUIDFHVQ 3URJUDPWRWLRQV LPSOHPHQWD GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW RE Q EHWZHH RUH[WHQVLRQ OGEHRSHQI &ODVVHVVKRXIRUPRGLILFDWLRQ EXWFORVHG 'RQRW EVWUDFWLRQV 'HSHQGRQDFRQFUHWHFODVVHV GHSHQGRQ

223DWWHLQUHVQDILVIQHDPVLO\DRRQIHDOJRWRULWKPPVDQDO\

ƒ )DFWRU\0HWKRGUHOLHVRQ LQKHULWDQFHREMHFWFUHDWLRQLV GHOHJDWHGWRVXEFODVVHVZKLFK LPSOHPHQWWKHIDFWRU\PHWKRGWR FUHDWHREMHFWV

ƒ $EVWUDFW)DFWRU\UHOLHVRQREMHFW

:HKDYHDQHZSULQFLSOHWKDW JXLGHVXVWRNHHSWKLQJV DEVWUDFWZKHQHYHUSRVVLEOH

ƒ $OOIDFWRU\SDWWHUQVSURPRWH ORRVHFRXSOLQJE\UHGXFLQJWKH GHSHQGHQF\RI\RXUDSSOLFDWLRQ RQFRQFUHWHFODVVHV

ZSDWWHUQV %RWKRIWKHVHQHWFUHDWLRQ HQFDSVXODWHREMHFHGHFRXSOHG DQGOHDGWRPRU IOH[LEOHGHVLJQV

RQURW GUHIGH GLVR PWLW YLLFGHDODO\Q DFMHHVKFW 3KD PREDN 6WUD $QWW RU\Q QG 2EWHVHJ\HFWHURYH  UKHKHVFW\DWH UQHFW RWMHDG KP DP RRHW FW ZDHH FKWE VRI D D LW G OJDOLWLOL O VUHDF\ ) XODQG$HQ D HV W RE U WV Q WD OH VW SH DP V D HQFDGHSV' \QJHV EVLEOELRE WRHJKD QJDWI VDWF LHWU  G 6 HDVIOWLWKH[ HOLW FU FW VHGDLW OH U XW WH MH X LE RQ HD KRQJ IR QJ VS LWGL H H XS KD UH Z DF RQ G UF D V QW Q WH UI DQ H FW OLH LQ ZKH LQWH RUWOV GWREMHRUH[WHQ FLIHG LHHQ RPRWLG IUQRY \UHSU HS QGDWHQ D RU I G SH WV V HF QJ GH RU HQ VH ' VL LQ G DV QG DV U\ FO WH FO SH YD GH UHOD LYHWRVXE FRQFUHWH DW O\ KHLU DXDOWRWHPUQ VSDWHFLFLIDO\LQJ\W LQHDQ IXQFWLRQDOLW HWKRGD'QHIREMHFWEXW )DFWRUH\0 UFUHDWLQJ R LQWHUIDF IRHVGHFLGHZKLFKFODVVW  OHWVXEFODVV )DFWRU\0HWKRGOHWV LQVWDQWLDWH ULQVWDQWLDWLRQWRWKH DFODVVGHIH VXEFODVVHV



FRPSRVLWLRQREMHFWFUHDWLRQ LVLPSOHPHQWHGLQPHWKRGV H[SRVHGLQWKHIDFWRU\LQWHUIDFH

ƒ 7KHLQWHQWRI)DFWRU\0HWKRG LVWRDOORZDFODVVWRGHIHU LQVWDQWLDWLRQWRLWVVXEFODVVHV

ƒ 7KHLQWHQWRI$EVWUDFW)DFWRU\ LVWRFUHDWHIDPLOLHVRIUHODWHG REMHFWVZLWKRXWKDYLQJWRGHSHQG RQWKHLUFRQFUHWHFODVVHV

ƒ 7KH'HSHQGHQF\,QYHUVLRQ 3ULQFLSOHJXLGHVXVWRDYRLG GHSHQGHQFLHVRQFRQFUHWHW\SHV DQGWRVWULYHIRUDEVWUDFWLRQV

ƒ )DFWRULHVDUHDSRZHUIXO WHFKQLTXHIRUFRGLQJWR DEVWUDFWLRQVQRWFRQFUHWH FODVVHV

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 55

WKHIDFWRU\SDWWHUQ

1\¼[JMMVITWVOKPIX\MZ/ZIJI[TQKMWN8QbbIIVLZMTI`_PQTMLWQVO \PQ[KZW[[_WZL#ITTWN\PM[WT]\QWV_WZL[IZMNZWU\PQ[KPIX\MZ



  



























 -  "2.05 $2'.# $ "' %0 -"'(1$ (1   -  "2.05 $2'.# 4'. #$"(#$1 4'("' "+ 11 2. (-12 -2( 2$

.+$.%(66 2.0$(- "2.05$2'.# 22$0++$4.0*25+$(66 131$2'(1*(-#.% "'$$1$ -!120 "2 "2.05$ "'(-&0$#($-2% "2.05(1   '$- 5.3 31$ -$4 5.3 0$ /0.&0 ,,(-& 2. -   "0$ 2$(66  (1  24. 4.0#1   .$+ +(*$1 2'(1 *(-# .% /(66  - "2.05$2'.#2'$(66 2.0$ -#2'$ ".-"0$2$ (66 1 ++ #$/$-# .- 2'(1 !120 "2(.  '$- "+ 11 (-12 -2( 2$1 - .!)$"2 %0., ".-"0$2$ "+ 11 (21  .- 2' 2 .!)$"2   ++ % "2.05 / 22$0-1 ++.4 31 2.  .!)$"2 "0$ 2(.-

 $ 31$#  (- (,/+$  "2.05 -# !120 "2  "2.05 -# (-'$0(2 -"$ (-  "2.05 $2'.#

 !120 "2  "2.05 "0$ 2$1  .% /0.#3"21 .2 % "2.05/ 22$0-!32' -#5 -.-$2'$+$11  2' - +(*$1 2'(1 *(-# .% /(66

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 56

H[HUFLVHVROXWLRQV

([HUFLVHVROXWLRQV 6KDUSHQ \RXU SHQFLO ?M¼^MSVWKSMLW]\\PM6A8QbbI;\WZM#R][\\_WUWZM\WOWIVL_M¼TTJMZMILa\WNZIVKPQ[M  ?ZQ\M\PM+PQKIOWIVL+ITQNWZVQI8QbbI;\WZMQUXTMUMV\I\QWV[PMZM"

H[DFWO\OLNHWKH1HZ
SXEOLFFODVV&DOLIRUQLD3L]]D6WRUHH[WHQGV3L]]D6WRUH^ SURWHFWHG3L]]DFUHDWH3L]]D 6WULQJLWHP ^ LI LWHPHTXDOV ³FKHHVH´ ^ UHWXUQQHZ&DOLIRUQLD6W\OH&KHHVH3L]]D  `HOVHLI LWHPHTXDOV ³YHJJLH´ ^ UHWXUQQHZ&DOLIRUQLD6W\OH9HJJLH3L]]D  `HOVHLI LWHPHTXDOV ³FODP´ ^ UHWXUQQHZ&DOLIRUQLD6W\OH&ODP3L]]D  `HOVHLI LWHPHTXDOV ³SHSSHURQL´ ^ UHWXUQQHZ&DOLIRUQLD6W\OH3HSSHURQL3L]]D  `HOVHUHWXUQQXOO ` `



SL]]D )RUWKH&KLFDJRDYHWR VWRUHZHMXVWK HDWH PDNHVXUHZHFU ]DV &KLFDJRVW\OHSL]

RUQLD DQGIRUWKH&DOLIUHDWH F ZH H RU VW SL]]D L]]DV &DOLIRUQLDVW\OHS

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 57

WKHIDFWRU\SDWWHUQ

'HVLJQ3X]]OH6ROXWLRQ ?MVMMLIVW\PMZSQVLWN XQbbINWZ\PW[MKZIba+ITQNWZVQIV[KZIbaQVI/77,_IaWN  KW]Z[M,ZI_IVW\PMZXIZITTMT[M\WN KTI[[M[\PI\aW]¼LVMML\WILLIVM_+ITQNWZVQI ZMOQWV\WW]Z8QbbI;\WZM

3L]]D6WRUH

J\RXQHHGWR +HUH·VHYHU\WKLQ SL]]DVWRUH QLD RU OLI DGGD&D ]DVWRUHFODVV WKHFRQFUHWHSL]QLDVW\OHSL]]DV RU DQGWKH&DOLI

FUHDWH3L]]D RUGHU3L]]D

1<3L]]D6WRUH FUHDWH3L]]D

1<6W\OH&KHHVH3L]]D

&KLFDJR3L]]D6WRUH FUHDWH3L]]D

&KLFDJR6W\OH&KHHVH3L]]D

1<6W\OH3HSSHURQL3L]]D 1<6W\OH&ODP3L]]D

1<6W\OH9HJJLH3L]]D

&KLFDJR6W\OH3HSSHURQL3L]]D

&DOLIRUQLD3L]]D6WRUH FUHDWH3L]]D

&DOLIRUQLD6W\OH&KHHVH3L]]D &DOLIRUQLD6W\OH3HSSHURQL3L]]D

&KLFDJR6W\OH&ODP3L]]D

&KLFDJR6W\OH9HJJLH3L]]D

&DOLIRUQLD6W\OH&ODP3L]]D

&DOLIRUQLD6W\OH9HJJLH3L]]D

7SIaVW__ZQ\M\PMÅ^M[QTTQM[\\PQVO[aW]KIV\PQVSWN \WX]\WVIXQbbI
+HUHDWLUHRQRVXU  0DVKHG3RWDWRHVZLWK5RDVWHG*DUOLF VXJJHV %%46DXFH $UWLFKRNH+HDUWV 0 0·V 3HDQXWV \RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 58

H[HUFLVHVROXWLRQV

)^MZaLMXMVLMV\8QbbI;\WZM 6KDUSHQ \RXU SHQFLO 4M\¼[XZM\MVLaW]¼^MVM^MZPMIZLWN IV77NIK\WZa0MZM¼[I^MZ[QWVWN \PM8QbbI;\WZM \PI\LWM[V¼\][MINIK\WZa#UISMIKW]V\WN \PMV]UJMZWN KWVKZM\MXQbbIWJRMK\[\PQ[ KTI[[Q[LMXMVLMV\WV1N aW]ILLML+ITQNWZVQI[\aTMXQbbI[\W\PQ[8QbbI;\WZMPW_UIVa WJRMK\[_W]TLQ\JMLMXMVLMV\WV\PMV' SXEOLFFODVV'HSHQGHQW3L]]D6WRUH^  SXEOLF3L]]DFUHDWH3L]]D 6WULQJVW\OH6WULQJW\SH ^ 3L]]DSL]]D QXOO LI VW\OHHTXDOV ³1<´ ^ LI W\SHHTXDOV ³FKHHVH´ ^ SL]]D QHZ1<6W\OH&KHHVH3L]]D  `HOVHLI W\SHHTXDOV ³YHJJLH´ ^ +DQGOHVDOOWKH1< SL]]D QHZ1<6W\OH9HJJLH3L]]D  VW\OHSL]]DV `HOVHLI W\SHHTXDOV ³FODP´ ^ SL]]D QHZ1<6W\OH&ODP3L]]D  `HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^ SL]]D QHZ1<6W\OH3HSSHURQL3L]]D  ` `HOVHLI VW\OHHTXDOV ³&KLFDJR´ ^ LI W\SHHTXDOV ³FKHHVH´ ^ SL]]D QHZ&KLFDJR6W\OH&KHHVH3L]]D  +DQGOHVDOOWKH `HOVHLI W\SHHTXDOV ³YHJJLH´ ^ &KLFDJRVW\OH SL]]D QHZ&KLFDJR6W\OH9HJJLH3L]]D  SL]]DV `HOVHLI W\SHHTXDOV ³FODP´ ^ SL]]D QHZ&KLFDJR6W\OH&ODP3L]]D  `HOVHLI W\SHHTXDOV ³SHSSHURQL´ ^ SL]]D QHZ&KLFDJR6W\OH3HSSHURQL3L]]D  ` `HOVH^ 6\VWHPRXWSULQWOQ ³(UURULQYDOLGW\SHRISL]]D´  UHWXUQQXOO ` SL]]DSUHSDUH  SL]]DEDNH  SL]]DFXW  SL]]DER[  UHWXUQSL]]D ` `




QXPEHU



OLIRUQLDWRR QXPEHUZLWK&D

&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 59

WKHIDFWRU\SDWWHUQ

6KDUSHQ \RXU SHQFLO /WIPMILIVL_ZQ\M\PM+PQKIOW8QbbI1VOZMLQMV\.IK\WZa#aW]KIVZMNMZMVKM\PM KTI[[M[JMTW_QVaW]ZQUXTMUMV\I\QWV" SXEOLFFODVV&KLFDJR3L]]D,QJUHGLHQW)DFWRU\ LPSOHPHQWV3L]]D,QJUHGLHQW)DFWRU\ ^ SXEOLF'RXJKFUHDWH'RXJK ^ UHWXUQQHZ7KLFN&UXVW'RXJK  ` SXEOLF6DXFHFUHDWH6DXFH ^ UHWXUQQHZ3OXP7RPDWR6DXFH  ` SXEOLF&KHHVHFUHDWH&KHHVH ^ UHWXUQQHZ0R]]DUHOOD&KHHVH  ` SXEOLF9HJJLHV>@FUHDWH9HJJLHV ^ 9HJJLHVYHJJLHV>@ ^QHZ%ODFN2OLYHV  QHZ6SLQDFK  QHZ(JJSODQW ` UHWXUQYHJJLHV ` SXEOLF3HSSHURQLFUHDWH3HSSHURQL ^ UHWXUQQHZ6OLFHG3HSSHURQL  ` SXEOLF&ODPVFUHDWH&ODP ^ UHWXUQQHZ)UR]HQ&ODPV  ` ` (JJ3ODQW 6SLQDFK

7KLFN&UXVW'RXJK

6OLFHG3HSSHURQL

%ODFN2OLYHV

3OXP7RPDWR6DXFH

)UR]HQ&ODPV 0R]]DUHOOD&KHHVH

\RXDUHKHUH



Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 4. Baking with OO Goodness

Return to Table of Contents

Page 60

FURVVZRUGSX]]OHVROXWLRQ

3X]]OH6ROXWLRQ













!



#





!





#



! 

 



"

$









"



!





#





!

!







#









"

"











#



 







 





!



#









#











#



#





!

&





#















"

#

&





!

&













#



 













#

&



# 

! &

"

" 

# 

 &











 '

'















 





"

$





#



&KDSWHU

Chapter 4. Baking with OO Goodness Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Table of Contents Chapter 5. One of a Kind Objects................................................................. 1 Section 5.1. The Little Singleton: A small Socratic exercise in the style of The Little Lisper........................................................ 3 Section 5.2. Dissecting the classic Singleton Pattern implementation.......................................................................................... 5 Section 5.3. Patterns Exposed......................................................................................................................................................... 6 Section 5.4. The Chocolate Factory................................................................................................................................................. 7 Section 5.5. Sharpen your pencil.................................................................................................................................................... 8 Section 5.6. Singleton Pattern defined........................................................................................................................................... 9 Section 5.7. Hershey, PA: Houston, we have a problem............................................................................................................... 10 Section 5.8. BE the JVM................................................................................................................................................................ 11 Section 5.9. Dealing with multithreading..................................................................................................................................... 12 Section 5.10. Can we improve multithreading?............................................................................................................................ 13 Section 5.11. Meanwhile, back at the Chocolate Factory.............................................................................................................. 15 Section 5.12. Congratulations!....................................................................................................................................................... 15 Section 5.13. there are no Dumb Questions.................................................................................................................................. 16 Section 5.14. Tools for your Design Toolbox................................................................................................................................ 18 Section 5.15. Exercise solutions.................................................................................................................................................... 20 Section 5.16. Exercise Solutions.................................................................................................................................................... 21 Section 5.17. Exercise solutions.................................................................................................................................................... 22

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 1

the Singleton Pattern

5

4 2QHRID.LQG2EMHFWV 4 ,WHOO\DVKH·V21(2)$ .,1'/RRNDWWKHOLQHV WKHFXUYHVWKHERG\ WKHKHDGOLJKWV


2XUQH[WVWRSLVWKH6LQJOHWRQ3DWWHUQRXUWLFNHWWRFUHDWLQJRQH RIDNLQGREMHFWVIRUZKLFKWKHUHLVRQO\RQHLQVWDQFH
WKLVLVDQHZFKDSWHU



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 2

RQHDQGRQO\RQH

:KDWLVWKLV"$Q HQWLUHFKDSWHUDERXWKRZWR LQVWDQWLDWHMXVW 21(2%-(&7 7KDW·VRQHDQG21/< 21(REMHFW

Copyright Safari Books Online #1673621 'HYHORSHU:KDWXVHLVWKDW" *XUX7KHUHDUHPDQ\REMHFWVZHRQO\QHHGRQHRIWKUHDGSRROVFDFKHVGLDORJER[HVREMHFWVWKDWKDQGOH SUHIHUHQFHVDQGUHJLVWU\VHWWLQJVREMHFWVXVHGIRUORJJLQJDQGREMHFWVWKDWDFWDVGHYLFHGULYHUVWRGHYLFHV OLNHSULQWHUVDQGJUDSKLFVFDUGV,QIDFWIRUPDQ\RIWKHVHW\SHVRIREMHFWVLIZHZHUHWRLQVWDQWLDWH PRUHWKDQRQHZH·GUXQLQWRDOOVRUWVRISUREOHPVOLNHLQFRUUHFWSURJUDPEHKDYLRURYHUXVHRIUHVRXUFHVRU LQFRQVLVWHQWUHVXOWV 'HYHORSHU2ND\VRPD\EHWKHUHDUHFODVVHVWKDWVKRXOGRQO\EHLQVWDQWLDWHGRQFHEXWGR,QHHGDZKROH FKDSWHUIRUWKLV"&DQ·W,MXVWGRWKLVE\FRQYHQWLRQRUE\JOREDOYDULDEOHV"
4HISISACTUALLYIMPLEMENTATIONDEPENDENT3OME*6-SWILLCREATETHESEOBJECTSLAZILY



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 3

WKHVLQJOHWRQSDWWHUQ

7KH/LWWOH6LQJOHWRQ )[UITT;WKZI\QKM`MZKQ[MQV\PM[\aTMWN
0W__W]TLaW]KZMI\MI[QVOTMWJRMK\'

QHZ0\2EMHFW 

)VL_PI\QN IVW\PMZWJRMK\_IV\ML\WKZMI\MI 5a7JRMK\'+W]TLQ\KITTVM_WV5a7JRMK\IOIQV'

AM[WN KW]Z[M

;WI[TWVOI[_MPI^MIKTI[[KIV_MIT_Ia[ QV[\IV\QI\MQ\WVMWZUWZM\QUM['

AM[?MTTWVTaQN Q\¼[IX]JTQKKTI[[

)VLQN VW\'

?MTTQN Q\¼[VW\IX]JTQKKTI[[WVTaKTI[[M[QV\PM[IUM XIKSIOMKIVQV[\IV\QI\MQ\*]\\PMaKIV[\QTTQV[\IV\QI\M Q\UWZM\PIVWVKM

0UUQV\MZM[\QVO

6W1¼LVM^MZ\PW]OP\WN Q\J]\1O]M[[Q\UISM[ [MV[MJMKI][MQ\Q[ITMOITLMÅVQ\QWV

,QLaW]SVW_aW]KW]TLLW\PQ['

SXEOLF0\&ODVV^ SULYDWH0\&ODVV ^` `

?PI\LWM[Q\UMIV'

1[]XXW[MQ\Q[IKTI[[\PI\KIV¼\JMQV[\IV\QI\ML JMKI][MQ\PI[IXZQ^I\MKWV[\Z]K\WZ

?MTTQ[\PMZM)6AWJRMK\\PI\KW]TL][M \PMXZQ^I\MKWV[\Z]K\WZ'

0UU1\PQVS\PMKWLMQV5a+TI[[Q[\PMWVTa KWLM\PI\KW]TLKITTQ\*]\\PI\LWM[V¼\UISM U]KP[MV[M

\RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 4

FUHDWLQJDVLQJOHWRQ

?PaVW\'

*MKI][M1¼LPI^M\WPI^MIVQV[\IVKMWN \PM KTI[[\WKITTQ\J]\1KIV¼\PI^MIVQV[\IVKM JMKI][MVWW\PMZKTI[[KIVQV[\IV\QI\MQ\1\¼[ IKPQKSMVIVLMOOXZWJTMU"1KIV][M\PM KWV[\Z]K\WZNZWUIVWJRMK\WN \aXM5a+TI[[ J]\1KIVVM^MZQV[\IV\QI\M\PI\WJRMK\JMKI][M VWW\PMZWJRMK\KIV][M¹VM_5a+TI[[º

7SIa1\_I[R][\I\PW]OP\

5a+TI[[Q[IKTI[[_Q\PI[\I\QKUM\PWL?MKIV KITT\PM[\I\QKUM\PWLTQSM\PQ["

?PI\LWM[\PQ[UMIV'

0\&ODVVJHW,QVWDQFH  SXEOLF0\&ODVV^ SXEOLFVWDWLF0\&ODVVJHW,QVWDQFH ^ ` `

?PaLQLaW]][M5a+TI[[QV[\MILWN  [WUMWJRMK\VIUM'

?MTTOM\1V[\IVKMQ[I[\I\QKUM\PWL#QVW\PMZ _WZL[Q\Q[I+4);;UM\PWLAW]VMML\W][M \PMKTI[[VIUM\WZMNMZMVKMI[\I\QKUM\PWL

>MZaQV\MZM[\QVO?PI\QN _MX]\\PQVO[\WOM\PMZ

?W_aW][]ZMKIV

6W_KIV1QV[\IV\QI\MI5a+TI[[' SXEOLF0\&ODVV^ SULYDWH0\&ODVV ^` SXEOLFVWDWLF0\&ODVVJHW,QVWDQFH ^ UHWXUQQHZ0\&ODVV  ` `

;WVW_KIVaW]\PQVSWN I[MKWVL_Ia\WQV[\IV\QI\M IVWJRMK\'

0\&ODVVJHW,QVWDQFH 

+IVaW]ÅVQ[P\PMKWLM[W\PI\WVTa76-QV[\IVKM WN 5a+TI[[Q[M^MZKZMI\ML'

AM[1\PQVS[W AW]¼TTÅVL\PMKWLMWV\PMVM`\XIOM



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 5

WKHVLQJOHWRQSDWWHUQ

,Q[[MK\QVO\PMKTI[[QK;QVOTM\WV 8I\\MZVQUXTMUMV\I\QWV /HW·VUHQDPH0\&ODVV WR6LQJOHWRQ SXEOLFFODVV6LQJOHWRQ^ SULYDWHVWDWLF6LQJOHWRQXQLTXH,QVWDQFH  RWKHUXVHIXOLQVWDQFHYDULDEOHVKHUH  SULYDWH6LQJOHWRQ ^`  SXEOLFVWDWLF6LQJOHWRQJHW,QVWDQFH ^ LI XQLTXH,QVWDQFH QXOO ^ XQLTXH,QVWDQFH QHZ6LQJOHWRQ  ` UHWXUQXQLTXH,QVWDQFH `  RWKHUXVHIXOPHWKRGVKHUH `

:DWFKLW

WLF HDVWD :HKDY WRKROGRXU YDULDEOHWDQFHRIWKH RQHLQV LQJOHWRQ FODVV6

)FYOUREJUST FLIPPINGTHROUGH THEBOOK DONT BLINDLYTYPEINTHIS CODE YOULLSEEA ITHASAFEWISSUES LATERINTHECHAPTER

2XUFRQVWUXFWRULV GHFODUHGSULYDWH RQO\6LQJOHWRQFDQ LQVWDQWLDWHWKLVFODVV 7KHJHW,QVWDQFH  PHWKRGJLYHVXVDZD\ WRLQVWDQWLDWHWKHFODVV DQGDOVRWRUHWXUQDQ LQVWDQFHRILW 2IFRXUVH6LQJOHWRQLV DQRUPDOFODVVLWKDV RWKHUXVHIXOLQVWDQFH YDULDEOHVDQGPHWKRGV

&RGH8S&ORVH WKHQZH ,IXQLTXH,QVWDQFHLVQXOOVWDQFH\HW HLQ WK WHG UHD WF KDYHQ· DQGLILWGRHVQ·WH[LVWZH LQVWDQWLDWH6LQJOHWRQWKURXJKLWV SULYDWHFRQVWUXFWRUDQGDVVLJQ LWWRXQLTXH,QVWDQFH1RWHWKDW LIZHQHYHUQHHGWKHLQVWDQFHLW LI XQLTXH,QVWDQFH QXOO ^ QHYHUJHWVFUHDWHGWKLVLVOD]\ XQLTXH,QVWDQFH QHZ0\&ODVV  LQVWDQWLDWLRQ XQLTXH,QVWDQFHKROGVRXU21( LQVWDQFHUHPHPEHULWLVD VWDWLFYDULDEOH

` UHWXUQXQLTXH,QVWDQFH

%\WKHWLPHZHKLWWKLVFRGHZH KDYHDQLQVWDQFHDQGZHUHWXUQLW

,IXQLTXH,QVWDQFHZDVQ·WQXOO WKHQLWZDVSUHYLRXVO\FUHDWHG :HMXVWIDOOWKURXJKWRWKH UHWXUQVWDWHPHQW

\RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 6

LQWHUYLHZZLWKVLQJOHWRQ

3DWWHUQV([SRVHG 7KLVZHHN·VLQWHUYLHZ

&RQIHVVLRQVRI D6LQJOHWRQ +HDG)LUVW-:OM\QV[\IV\QI\ML' 6LQJOHWRQAW][MM\WOM\IPWTLWN I;QVOTM\WVWJRMK\aW]LWV¼\QV[\IV\QI\MWVMaW]R][\I[S NWZIVQV[\IVKM;WUaKTI[[PI[I[\I\QKUM\PWLKITTMLOM\1V[\IVKM+ITT\PI\IVL1¼TT[PW_]X I\WVKMZMILa\W_WZS1VNIK\1UIaITZMILaJMPMTXQVOW\PMZWJRMK\[_PMVaW]ZMY]M[\UM +HDG)LUVW?MTT5Z;QVOTM\WV\PMZM[MMU[\WJMITW\]VLMZaW]ZKW^MZ[\WUISMITT\PQ[_WZS
&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 7

WKHVLQJOHWRQSDWWHUQ




Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 8

FKRFRODWHERLOHUVLQJOHWRQ

YiX`e gfn\i &KRF2+ROLFKDVGRQHDGHFHQWMRERIHQVXULQJEDGWKLQJVGRQ¶WKDSSHQGRQ¶W\DWKLQN"7KHQ DJDLQ\RXSUREDEO\VXVSHFWWKDWLIWZR&KRFRODWH%RLOHULQVWDQFHVJHWORRVHVRPHYHU\EDG WKLQJVFDQKDSSHQ +RZPLJKWWKLQJVJRZURQJLIPRUHWKDQRQHLQVWDQFHRI&KRFRODWH%RLOHULVFUHDWHGLQDQ DSSOLFDWLRQ"

6KDUSHQ \RXU SHQFLO

&DQ\RXKHOS&KRF2+ROLFLPSURYHWKHLU&KRFRODWH%RLOHUFODVV E\WXUQLQJLWLQWRDVLQJOHWRQ"

SXEOLFFODVV&KRFRODWH%RLOHU^ SULYDWHERROHDQHPSW\ SULYDWHERROHDQERLOHG

SULYDWH&KRFRODWH%RLOHU ^ HPSW\ WUXH ERLOHG IDOVH `

SXEOLFYRLG¿OO ^ LI LV(PSW\ ^ HPSW\ IDOVH ERLOHG IDOVH ¿OOWKHERLOHUZLWKDPLONFKRFRODWHPL[WXUH ` ` UHVWRI&KRFRODWH%RLOHUFRGH `



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 9

WKHVLQJOHWRQSDWWHUQ

; QVOTM\WV8I\\MZVLMNQVML 1RZWKDW\RX·YHJRWWKHFODVVLFLPSOHPHQWDWLRQRI6LQJOHWRQ LQ\RXUKHDGLW·VWLPHWRVLWEDFNHQMR\DEDURIFKRFRODWH DQGFKHFNRXWWKHÀQHUSRLQWVRIWKH6LQJOHWRQ3DWWHUQ /HW·VVWDUWZLWKWKHFRQFLVHGHÀQLWLRQRIWKHSDWWHUQ


1RELJVXUSULVHVWKHUH%XWOHW·VEUHDNLWGRZQDELWPRUH

ƒ ?PI\¼[ZMITTaOWQVOWVPMZM'?M¼ZM\ISQVOIKTI[[IVLTM\\QVOQ\UIVIOMI [QVOTMQV[\IVKMWN Q\[MTN?M¼ZMIT[WXZM^MV\QVOIVaW\PMZKTI[[NZWUKZMI\QVOI VM_QV[\IVKMWVQ\[W_V
ƒ ?M¼ZMIT[WXZW^QLQVOIOTWJITIKKM[[XWQV\\W\PMQV[\IVKM"_PMVM^MZaW] VMMLIVQV[\IVKMR][\Y]MZa\PMKTI[[IVLQ\_QTTPIVLaW]JIKS\PM[QVOTM QV[\IVKM)[aW]¼^M[MMV_MKIVQUXTMUMV\\PQ[[W\PI\\PM;QVOTM\WVQ[KZMI\ML QVITIbaUIVVMZ_PQKPQ[M[XMKQITTaQUXWZ\IV\NWZZM[W]ZKMQV\MV[Q^MWJRMK\[

2ND\OHW·VFKHFNRXWWKHFODVVGLDJUDP

LF RGLVVWDW FH PHWKPHWKRGVR\RX Q D VW ,Q W H 7KHJ HDQVLW·VDFODVV KLVPHWKRG ZKLFKP QLHQWO\DFFHVVW GHXVLQJ FDQFRQYH\ZKHUHLQ\RXUFR KDW·VMXVWDV IURPDQ QJHW,QVWDQFH 7YDULDEOHEXW 6LQJOHWR DFFHVVLQJDJOREDO QVWDQWLDWLRQ HDV\DV HQHILWVOLNHOD]\L ZHJHWEH6LQJOHWRQ IURPWK

7KHXQLTXH,QVWDQFH FODVVYDULDEOHKROGVRXU RQHDQGRQO\LQVWDQFH RI6LQJOHWRQ

6LQJOHWRQ VWDWLFXQLTXH,QVWDQFH 2WKHUXVHIXO6LQJOHWRQGDWD VWDWLFJHW,QVWDQFH 2WKHUXVHIXO6LQJOHWRQPHWKRGV

6LQJOHWRQ $FODVVLPSOHPHQWLQJWKH6LQ JOHWRQ 3DWWHUQLVPRUHWKDQD VVZLWKLWV LWLVDJHQHUDOSXUSRVHFODWKRGV RZQVHWRIGDWDDQGPH \RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 10

WKUHDGVDUHDSUREOHP

a8) 0 M Z[P M 0W][\WV_MPI^MIXZWJTMU ,WORRNVOLNHWKH&KRFRODWH%RLOHUKDVOHWXVGRZQGHVSLWH WKHIDFWZHLPSURYHGWKHFRGHXVLQJ&ODVVLF6LQJOHWRQ VRPHKRZWKH&KRFRODWH%RLOHU·VÀOO PHWKRGZDVDEOH WRVWDUWÀOOLQJWKHERLOHUHYHQWKRXJKDEDWFKRIPLONDQG FKRFRODWHZDVDOUHDG\ERLOLQJ7KDW·VJDOORQVRIVSLOOHG PLON DQGFKRFRODWH :KDWKDSSHQHG"

:HGRQ·WNQRZZKDWKDSSHQHG7KH QHZ6LQJOHWRQFRGHZDVUXQQLQJÀQH7KHRQO\ WKLQJZHFDQWKLQNRILVWKDWZHMXVWDGGHGVRPH RSWLPL]DWLRQVWRWKH&KRFRODWH%RLOHU&RQWUROOHU WKDWPDNHVXVHRIPXOWLSOHWKUHDGV

&RXOGWKHDGGLWLRQRIWKUHDGVKDYHFDXVHG WKLV",VQ·WLWWKHFDVHWKDWRQFHZH·YHVHW WKHXQLTXH,QVWDQFHYDULDEOHWRWKHVROH LQVWDQFHRI&KRFRODWH%RLOHUDOOFDOOVWR JHW,QVWDQFH VKRXOGUHWXUQWKHVDPH LQVWDQFH"5LJKW"



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 11

WKHVLQJOHWRQSDWWHUQ

%(WKH-90 :HKDYHWZRWKUHDGVHDFKH[HFXWLQJWKLVFRGH
0DNHVXUH\RXFKHFN\RXUDQVZHURQ SDJHEHIRUHWXUQLQJWKHSDJH

QXOO ^

XQLTXH,QVWDQFH  QHZ&KRFRODWH%RLOHU 

`

7KUHDG

7KUHDG

2QH

7ZR

9DOXHRI XQLTXH,QVWDQFH

UHWXUQXQLTXH,QVWDQFH `

\RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 12

PXOWLWKUHDGLQJDQGVLQJOHWRQ

,MITQVO_Q\PU]T\Q\PZMILQVO 2XUPXOWLWKUHDGLQJZRHVDUHDOPRVWWULYLDOO\À[HGE\PDNLQJ JHW,QVWDQFH DV\QFKURQL]HGPHWKRG

SXEOLFFODVV6LQJOHWRQ^ RQL]HGNH\ZRUGWR %\DGGLQJWKHV\QFKU HHYHU\WKUHDGWR SULYDWHVWDWLF6LQJOHWRQXQLTXH,QVWDQFH RUF  JHW,QVWDQFH ZHI FDQHQWHUWKH RWKHUXVHIXOLQVWDQFHYDULDEOHVKHUH ZDLWLWVWXUQEHIRUHLW RWKUHDGVPD\  PHWKRG7KDWLVQRWZ HVDPHWLPH WK DW RG SULYDWH6LQJOHWRQ ^` HWK P HQWHUWKH  SXEOLFVWDWLFV\QFKURQL]HG6LQJOHWRQJHW,QVWDQFH ^ LI XQLTXH,QVWDQFH QXOO ^ XQLTXH,QVWDQFH QHZ6LQJOHWRQ  ` UHWXUQXQLTXH,QVWDQFH `  RWKHUXVHIXOPHWKRGVKHUH `

,DJUHHWKLV À[HVWKHSUREOHP %XWV\QFKURQL]DWLRQ LVH[SHQVLYHLVWKLVDQ LVVXH"

/WWLXWQV\IVLQ\¼[IK\]ITTaITQ\\TM_WZ[M\PIVaW]UISMW]\"\PMWVTa \QUM[aVKPZWVQbI\QWVQ[ZMTM^IV\Q[\PMÅZ[\\QUM\PZW]OP\PQ[UM\PWL1V W\PMZ_WZL[WVKM_M¼^M[M\\PM]VQY]M1V[\IVKM^IZQIJTM\WIVQV[\IVKM WN ;QVOTM\WV_MPI^MVWN]Z\PMZVMML\W[aVKPZWVQbM\PQ[UM\PWL)N\MZ \PMÅZ[\\QUM\PZW]OP[aVKPZWVQbI\QWVQ[\W\ITTa]VVMMLMLW^MZPMIL



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 13

WKHVLQJOHWRQSDWWHUQ

+IV_MQUXZW^MU]T\Q\PZMILQVO' .WZUW[\2I^IIXXTQKI\QWV[_MWJ^QW][TaVMML\WMV[]ZM\PI\\PM;QVOTM\WV_WZS[QV\PMXZM[MVKM WN U]T\QXTM\PZMIL[*]\Q\TWWS[NIQZTaM`XMV[Q^M\W[aVKPZWVQbM\PMOM\1V[\IVKMUM\PWL[W_PI\ LW_MLW' ?MTT_MPI^MINM_WX\QWV[

,WVW\PQVOQN\PMXMZNWZUIVKMWNOM\1V[\IVKMQ[V¼\KZQ\QKIT\W aW]ZIXXTQKI\QWV
5W^M\WIVMIOMZTaKZMI\MLQV[\IVKMZI\PMZ\PIVITIbQTa KZMI\MLWVM 1N aW]ZIXXTQKI\QWVIT_Ia[KZMI\M[IVL][M[IVQV[\IVKMWN \PM;QVOTM\WVWZ\PMW^MZPMILWN  KZMI\QWVIVLZ]V\QUMI[XMK\[WN \PM;QVOTM\WVIZMVW\WVMZW][aW]UIa_IV\\WKZMI\MaW]Z ;QVOTM\WVMIOMZTaTQSM\PQ["

SXEOLFFODVV6LQJOHWRQ^ *RDKHDGDQGFUHDWHDQ SULYDWHVWDWLF6LQJOHWRQXQLTXH,QVWDQFH QHZ6LQJOHWRQ  LQVW DQFHRI6LQJOHWRQLQ  DVWDWLFLQLWLDOL]HU7KLV SULYDWH6LQJOHWRQ ^` FRGHLVJXDUDQWHHGWREH  WKUHDGVDIH SXEOLFVWDWLF6LQJOHWRQJHW,QVWDQFH ^ UHWXUQXQLTXH,QVWDQFH DQ :H·YHDOUHDG\JRWUHWXUQLW ` W MXV VR ` LQVWDQFH

=[QVO\PQ[IXXZWIKP_MZMTaWV\PM2>5\WKZMI\M\PM]VQY]MQV[\IVKMWN \PM;QVOTM\WV_PMV \PMKTI[[Q[TWILML5O]IZIV\MM[\PI\\PMQV[\IVKM_QTTJMKZMI\MLJMNWZMIVa\PZMIL IKKM[[M[\PM[\I\QK]VQY]M1V[\IVKM^IZQIJTM

\RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 14

GRXEOHFKHFNHGORFNLQJ

=[M¹LW]JTMKPMKSMLTWKSQVOº\WZML]KM\PM][MWN [aVKPZWVQbI\QWVQVOM\1V[\IVKM ?Q\PLW]JTMKPMKSMLTWKSQVO_MÅZ[\KPMKS\W[MMQN IVQV[\IVKMQ[KZMI\MLIVLQN VW\<0-6_M [aVKPZWVQbM
7KHYRODWLOHNH\ZRUGHQVXUHVWKDWPXOWLSOHWKUHDGV KDQGOHWKHXQLTXH,QVWDQFHYDULDEOHFRUUHFWO\ZKHQLW LVEHLQJLQLWLDOL]HGWRWKH6LQJOHWRQLQVWDQFH 1N XMZNWZUIVKMQ[IVQ[[]MQVaW]Z][MWN \PMOM\1V[\IVKMUM\PWL\PMV\PQ[UM\PWLWN  QUXTMUMV\QVO\PM;QVOTM\WVKIVLZI[\QKITTaZML]KM\PMW^MZPMIL

:DWFKLW

JGRHVQ·W 'RXEOHFKHFNHGORFNLQ UOLHU ZRUNLQ-DYDRUHD

LRQDQGHDUOLHUPDQ\ 8QIRUWXQDWHO\LQ-DYDYHUV  LRQVRIWKHYRODWLOHNH\ZRUG -90VFRQWDLQLPSOHPHQWDW UGRXEOHFKHFNHG QIR ]DWLR URQL \QFK HUV WKDWDOORZLPSURS -90RWKHUWKDQ-DYD ORFNLQJ,I\RXPXVWXVHD OHPHQWLQJ\RXU6LQJOHWRQ ILPS GVR HWKR FRQVLGHURWKHUP



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 15

WKHVLQJOHWRQSDWWHUQ

5MIV_PQTMJIKSI\\PM+PWKWTI\M.IK\WZa ?PQTM_M¼^MJMMVWNN LQIOVW[QVO\PMU]T\Q\PZMILQVOXZWJTMU[\PMKPWKWTI\MJWQTMZ PI[JMMVKTMIVML]XIVLQ[ZMILa\WOW*]\ÅZ[\_MPI^M\WÅ`\PMU]T\Q\PZMILQVO XZWJTMU[?MPI^MINM_[WT]\QWV[I\PIVLMIKP_Q\PLQNNMZMV\\ZILMWNN[[W_PQKP [WT]\QWVIZM_MOWQVO\WMUXTWa'

6KDUSHQ \RXU SHQFLO )RUHDFKVROXWLRQGHVFULEHLWVDSSOLFDELOLW\WRWKHSUREOHPRI¿[LQJWKH&KRFRODWH %RLOHUFRGH

6\QFKURQL]HWKHJHW,QVWDQFH PHWKRG

8VHHDJHULQVWDQWLDWLRQ

'RXEOHFKHFNHGORFNLQJ

+WVOZI\]TI\QWV[ )\\PQ[XWQV\\PM+PWKWTI\M.IK\WZaQ[IPIXXaK][\WUMZIVL+PWK70WTQK_I[OTIL\WPI^M[WUM M`XMZ\Q[MIXXTQML\W\PMQZJWQTMZKWLM6WUI\\MZ_PQKPU]T\Q\PZMILQVO[WT]\QWVaW]IXXTQML\PMJWQTMZ [PW]TLJMQVOWWL[PIXM_Q\PVWUWZMUQ[PIX[+WVOZI\]TI\QWV[AW]¼^MVW\WVTaUIVIOML\WM[KIXM TJ[WN PW\KPWKWTI\MQV\PQ[KPIX\MZJ]\aW]¼^MJMMV\PZW]OPITT\PMXW\MV\QITXZWJTMU[WN \PM;QVOTM\WV

\RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 16

T DDERXWVLQJOHWRQ

there are no Dumb Questions

Q:

Q:

Q:

A:

A:

A:

&ORSUCHASIMPLEPATTERN CONSISTINGOFONLYONECLASS 3INGLETONSSURESEEMTOHAVESOME PROBLEMS

#ANT)JUSTCREATEACLASSIN WHICHALLMETHODSANDVARIABLESARE DElNEDASSTATIC7OULDNTTHATBE THESAMEASA3INGLETON

7ELL WEWARNEDYOUUP FRONT"UTDONTLETTHEPROBLEMS DISCOURAGEYOUWHILEIMPLEMENTING 3INGLETONSCORRECTLYCANBETRICKY AFTER READINGTHISCHAPTERYOUARENOW WELLINFORMEDONTHETECHNIQUESFOR CREATING3INGLETONSANDSHOULDUSE THEMWHEREVERYOUNEEDTOCONTROL THENUMBEROFINSTANCESYOUARE CREATING

9ES IFYOURCLASSISSELF CONTAINEDANDDOESNTDEPENDON COMPLEXINITIALIZATION(OWEVER BECAUSEOFTHEWAYSTATIC INITIALIZATIONSAREHANDLEDIN*AVA THISCANGETVERYMESSY ESPECIALLYIF MULTIPLECLASSESAREINVOLVED/FTEN THISSCENARIOCANRESULTINSUBTLE HARDTOFINDBUGSINVOLVINGORDER OFINITIALIZATION5NLESSTHEREISA COMPELLINGNEEDTOIMPLEMENTYOUR hSINGLETONvTHISWAY ITISFARBETTERTO STAYINTHEOBJECTWORLD

7HATABOUTCLASSLOADERS )HEARDTHEREISACHANCETHATTWO CLASSLOADERSCOULDEACHENDUPWITH THEIROWNINSTANCEOF3INGLETON

9ES THATISTRUEASEACHCLASS LOADERDEFINESANAMESPACE)FYOU HAVETWOORMORECLASSLOADERS YOU CANLOADTHESAMECLASSMULTIPLETIMES ONCEINEACHCLASSLOADER .OW IFTHAT CLASSHAPPENSTOBEA3INGLETON THEN SINCEWEHAVEMORETHANONEVERSION OFTHECLASS WEALSOHAVEMORETHAN ONEINSTANCEOFTHE3INGLETON3O IF YOUAREUSINGMULTIPLECLASSLOADERS AND3INGLETONS BECAREFUL/NEWAY AROUNDTHISPROBLEMISTOSPECIFYTHE CLASSLOADERYOURSELF

5XPRUVRI6LQJOHWRQVEHLQJHDWHQE\WKHJDUEDJH FROOHFWRUVDUHJUHDWO\H[DJJHUDWHG 3ULRUWR-DYDDEXJLQWKHJDUEDJHFROOHFWRUDOORZHG6LQJOHWRQV WREHSUHPDWXUHO\FROOHFWHGLIWKHUHZDVQRJOREDOUHIHUHQFHWRWKHP,QRWKHU ZRUGV\RXFRXOGFUHDWHD6LQJOHWRQDQGLIWKHRQO\UHIHUHQFHWRWKH6LQJOHWRQ ZDVLQWKH6LQJOHWRQLWVHOILWZRXOGEHFROOHFWHGDQGGHVWUR\HGE\WKHJDUEDJH FROOHFWRU7KLVOHDGVWRFRQIXVLQJEXJVEHFDXVHDIWHUWKH6LQJOHWRQLV ³FROOHFWHG´WKHQH[WFDOOWRJHW,QVWDQFH SURGXFHGDVKLQ\QHZ6LQJOHWRQ,Q PDQ\DSSOLFDWLRQVWKLVFDQFDXVHFRQIXVLQJEHKDYLRUDVVWDWHLVP\VWHULRXVO\ UHVHWWRLQLWLDOYDOXHVRUWKLQJVOLNHQHWZRUNFRQQHFWLRQVDUHUHVHW 6LQFH-DYDWKLVEXJKDVEHHQ¿[HGDQGDJOREDOUHIHUHQFHLVQRORQJHU UHTXLUHG,I\RXDUHIRUVRPHUHDVRQVWLOOXVLQJDSUH-DYD-90WKHQEH DZDUHRIWKLVLVVXHRWKHUZLVH\RXFDQVOHHSZHOONQRZLQJ\RXU6LQJOHWRQV ZRQ¶WEHSUHPDWXUHO\FROOHFWHG



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 17

WKHVLQJOHWRQSDWWHUQ

Q:

)VEALWAYSBEENTAUGHTTHAT ACLASSSHOULDDOONETHINGANDONE THINGONLY&ORACLASSTODOTWO THINGSISCONSIDEREDBAD//DESIGN )SNTA3INGLETONVIOLATINGTHIS

A:

9OUWOULDBEREFERRINGTO THEh/NE#LASS /NE2ESPONSIBILITYv PRINCIPLE ANDYES YOUARECORRECT THE3INGLETONISNOTONLYRESPONSIBLE FORMANAGINGITSONEINSTANCEAND PROVIDINGGLOBALACCESS ITISALSORE SPONSIBLEFORWHATEVERITSMAINROLEIS INYOURAPPLICATION3O CERTAINLYITCAN BEARGUEDITISTAKINGONTWORESPON SIBILITIES.EVERTHELESS ITISNTHARD TOSEETHATTHEREISUTILITYINACLASS MANAGINGITSOWNINSTANCEITCERTAINLY MAKESTHEOVERALLDESIGNSIMPLER)N ADDITION MANYDEVELOPERSAREFAMILIAR WITHTHE3INGLETONPATTERNASITISIN WIDEUSE4HATSAID SOMEDEVELOPERS DOFEELTHENEEDTOABSTRACTOUTTHE 3INGLETONFUNCTIONALITY

Q:

Q:

A:

A:

)WANTEDTOSUBCLASSMY 3INGLETONCODE BUT)RANINTO PROBLEMS)SITOKAYTOSUBCLASSA 3INGLETON

/NEPROBLEMWITHSUBCLASSING 3INGLETONISTHATTHECONSTRUCTORIS PRIVATE9OUCANTEXTENDACLASSWITH APRIVATECONSTRUCTOR3O THEFIRST THINGYOULLHAVETODOISCHANGE YOURCONSTRUCTORSOTHATITSPUBLIC ORPROTECTED"UTTHEN ITSNOTREALLY A3INGLETONANYMORE BECAUSEOTHER CLASSESCANINSTANTIATEIT )FYOUDOCHANGEYOURCONSTRUCTOR THERESANOTHERISSUE4HE IMPLEMENTATIONOF3INGLETONISBASED ONASTATICVARIABLE SOIFYOUDOA STRAIGHTFORWARDSUBCLASS ALLOFYOUR DERIVEDCLASSESWILLSHARETHESAME INSTANCEVARIABLE4HISISPROBABLY NOTWHATYOUHADINMIND3O FOR SUBCLASSINGTOWORK IMPLEMENTING REGISTRYOFSORTSISREQUIREDINTHEBASE CLASS

)STILLDONTTOTALLYUNDERSTAND WHYGLOBALVARIABLESAREWORSETHAN A3INGLETON

)N*AVA GLOBALVARIABLESARE BASICALLYSTATICREFERENCESTOOBJECTS 4HEREAREACOUPLEOFDISADVANTAGES TOUSINGGLOBALVARIABLESINTHIS MANNER7EVEALREADYMENTIONED ONETHEISSUEOFLAZYVERSUSEAGER INSTANTIATION"UTWENEEDTOKEEP INMINDTHEINTENTOFTHEPATTERNTO ENSUREONLYONEINSTANCEOFACLASS EXISTSANDTOPROVIDEGLOBALACCESS! GLOBALVARIABLECANPROVIDETHELATTER BUTNOTTHEFORMER'LOBALVARIABLES ALSOTENDTOENCOURAGEDEVELOPERS TOPOLLUTETHENAMESPACEWITHLOTS OFGLOBALREFERENCESTOSMALLOBJECTS 3INGLETONSDONTENCOURAGETHISIN THESAMEWAY BUTCANBEABUSED NONETHELESS

"EFOREIMPLEMENTINGSUCHASCHEME YOUSHOULDASKYOURSELFWHATYOU AREREALLYGAININGFROMSUBCLASSING A3INGLETON,IKEMOSTPATTERNS THE 3INGLETONISNOTNECESSARILYMEANT TOBEASOLUTIONTHATCANFITINTOA LIBRARY)NADDITION THE3INGLETONCODE ISTRIVIALTOADDTOANYEXISTINGCLASS ,AST IFYOUAREUSINGALARGENUMBER OF3INGLETONSINYOURAPPLICATION YOUSHOULDTAKEAHARDLOOKATYOUR DESIGN3INGLETONSAREMEANTTOBE USEDSPARINGLY

\RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 18

\RXUGHVLJQWRROER[


V

22%DVLFV

RW LQWHUIDFHVQ 3URJUDPWR RQV WL LPSOHPHQWD GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW RE EHWZHHQ RUH[WHQVLRQ OGEHRSHQI &ODVVHVVKRX RUPRGLILFDWLRQ I EXWFORVHG 'RQRW EVWUDFWLRQV 'HSHQGRQD QFUHWHFODVVHV FR GHSHQGRQ

ƒ 7KH6LQJOHWRQ3DWWHUQHQVXUHV \RXKDYHDWPRVWRQHLQVWDQFH RIDFODVVLQ\RXUDSSOLFDWLRQ

$EVWUDFWLRQ RQ (QFDSVXODWL YDULHV DW ZK H DW P XO LV (QFDSV H3RO\PRUSK HULQKHULWDQF RY Q LR VLW SR )DYRUFRP ,QKHULWDQFH

223ULQFLSOH

:MDD=LHGAFLK

ƒ 7KH6LQJOHWRQ3DWWHUQDOVR SURYLGHVDJOREDODFFHVVSRLQW WRWKDWLQVWDQFH

ƒ -DYD·VLPSOHPHQWDWLRQRIWKH 6LQJOHWRQ3DWWHUQPDNHVXVH RIDSULYDWHFRQVWUXFWRUDVWDWLF PHWKRGFRPELQHGZLWKDVWDWLF YDULDEOH

ƒ ([DPLQH\RXUSHUIRUPDQFH

RHQVXUH\RX :KHQ\RXQHHGLQWVWDQFHRIDFODVV H RQ H  RQO\KDY RXUDSSOLFDWLRQ UXQQLQJDURXQG6L\  Q WR OH QJ WXUQWRWKH

223DWWHUQVIDPLO\DRRQIHDOJRWRULWKPPVDQ\

RQDOYLWGHDQ GHDILQHV DN GUHILQHV GLVR PWLW WDG DFMHHVRKFW 3URKD PRE 6WUD $QWW QG 2EWHVHJ\HFWHURYH D) UMHRKH\KHVFWGDWH LFVLQDOIHO\DQ U QH HH HI RRHW W FW Z LWODP FK D \Q D RU U LWR HD G  OJ V E  F\  FW XOD HQ D ' W HVKP K RE UFW W WDIDPDOLOL'LW OHHW HQFDGHSVSHQG HVWVWLVQJ $QJRQEHD)HVW \WRUHJ0 DW VIR U LHRWU MH KDD\FUQJQ DV 6 HD OLW RE F EL  KDV GVKRFWRQXWO\EX Q H FW VH D VL OH EO D WH MH X LE FO QJ DW RE GD VS H[ WL D LW H WK XS KD IO UH Z H V HD DFV\DFSU DGW QW XUMHFWV[W FU H OLH U LQWHZUFKHQLQRQWHUIRU LGFRLI ROSRLQW (DQQVREG IR LH RPW HRY Q IUOH ODHQVJVVGLORWQJ RW ED HQ F WOUI Q H HG HQ FK UH WH DW J RU HS KL QG LQ D D RU Z LQ I G SH WV HF 6 GH H QJ GH RU HQ YL VH ' LG VL DVKRGOHWV DVHFQG WHLYG G YDU\GHLQSHQG UHODOHDW VVVKHXE ODVW FUSHWURH0FOHW EFWR HHQJ DQHVLUFOFH FDRQ LQW DO\LVXO\ DWHFLFW LIRQ )DF DXDOWRWHPVSUQ LWWRU\ DWLRQWRWKH DODQLWDWL\FFDWHVHVWR WL DQ IXQFWLLQRQVWRI ULQVW DFODVVGHIH VXEFODVVHV

DQGUHVRXUFHFRQVWUDLQWVDQG FDUHIXOO\FKRRVHDQDSSURSULDWH 6LQJOHWRQLPSOHPHQWDWLRQIRU PXOWLWKUHDGHGDSSOLFDWLRQV DQGZHVKRXOGFRQVLGHUDOO DSSOLFDWLRQVPXOWLWKUHDGHG 

ƒ %HZDUHRIWKHGRXEOHFKHFNHG ORFNLQJLPSOHPHQWDWLRQLWLVQRW WKUHDGVDIHLQYHUVLRQVEHIRUH -DYDYHUVLRQ

ƒ %HFDUHIXOLI\RXDUHXVLQJ PXOWLSOHFODVVORDGHUVWKLV FRXOGGHIHDWWKH6LQJOHWRQ LPSOHPHQWDWLRQDQGUHVXOWLQ PXOWLSOHLQVWDQFHV

ƒ ,I\RXDUHXVLQJD-90HDUOLHU WKDQ\RX·OOQHHGWRFUHDWHD UHJLVWU\RI6LQJOHWRQVWRGHIHDW WKHJDUEDJHFROOHFWRU

IGHWDLOV $V\RX·YHVHHQGHVSLWHLWVDSSDUHQWVLPSOLFLW\WKHUHDUHDORWR SWHU KLVFKD DGLQJW IWHUUH WLRQ$ OHPHQWD LQYROYHGLQWKH6LQJOHWRQ·VLPS WKRXJK\RXDUHUHDG\WRJRRXWDQGXVH6LQJOHWRQLQWKHZLOG 

&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 19

WKHVLQJOHWRQSDWWHUQ

;Q\JIKSWXMV\PI\KI[MWNKPWKWTI\M\PI\aW]_MZM[MV\NWZ[WT^QVO \PMU]T\Q\PZMILQVOXZWJTMUIVLPI^M[WUMLW_V\QUM_WZSQVOWV \PQ[TQ\\TMKZW[[_WZLX]bbTM#ITTWN\PM[WT]\QWV_WZL[IZMNZWU\PQ[ KPIX\MZ























  









 0 3/ ,+# ,$  ('+"

 ""#" 0, !&,!,)0# '+ 0&# ,')#.  + '+!,..#!0 '*-)#*#+00',+ !1/#" 0&'/ 0, ,2#.$),3  '+%)#0,+ -.,2'"#/  /'+%)# '+/0+!# +" 0&.## 3,."/  )3#" *1)0'0&.#"'+% --.,!& '$ +,0 1/'+% 2   &,!,)0# !-'0) ,$ 0&#   +# "2+0%# ,2#. %), ) 2.' )#/  !.#0',+  ,*-+5 0&0 -.,"1!#/ ,')#./  , 0,0))5 "#$#0 0&# +#3 !,+/0.1!0,. 3# &2# 0, "#!).# 0&# !,+/0.1!0,. 

 1)0'-)#  !+ !1/# -., )#*/   '+%)#0,+ '/  !)// 0&0 *+%#/ + '+/0+!# ,$  $5,1",+0+##"0,3,..5 ,10)65 '+/0+0'0',+ 5,1 !+ !.#0# 5,1. '+/0+!# 

 .',. 0,   0&'/ !+ #0 5,1. '+%)#0,+/ 03, 3,."/  &# '+%)#0,+ 3/ #* .//#" '0 &" +, -1 )'!   &# !)//'! '*-)#*#+00',+ ",#/+0 &+")# 0&'/  '+%)#0,+ #+/1.#/ ,+)5 ,+# ,$ 0&#/# #4'/0  &# '+%)#0,+ 00#.+ &/ ,+# \RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 20

H[HUFLVHVROXWLRQV

([HUFLVH VROXWLRQV

%(WKH-90

7KHDG

7KHDG

2QH

7ZR

9DOXHRI XQLTXH,QVWDQFH

SXEOLFVWDWLF&KRFRODWH%RLOHU  JHW,QVWDQFH ^

LI XQLTXH,QVWDQFH

QXOO

SXEOLFVWDWLF&KRFRODWH%RLOHU  JHW,QVWDQFH ^

QXOO

LI XQLTXH,QVWDQFH

QXOO

QXOO ^

QXOO ^

XQLTXH,QVWDQFH  QHZ&KRFRODWH%RLOHU 

REMHFW!

REMHFW!

UHWXUQXQLTXH,QVWDQFH XQLTXH,QVWDQFH  QHZ&KRFRODWH%RLOHU 

REMHFW!

REMHFW! UHWXUQXQLTXH,QVWDQFH

6KDUSHQ \RXU SHQFLO

8KRKWKLVGRHVQ·W ORRNJRRG

7ZRGLIIHUHQW REMHFWVDUH UHWXUQHG:HKDYH WZR&KRFRODWH%RLOHU LQVWDQFHV

&DQ\RXKHOS&KRF2+ROLFLPSURYHWKHLU&KRFRODWH%RLOHUFODVV E\WXUQLQJLWLQWRDVLQJOHWRQ"

SXEOLFFODVV&KRFRODWH%RLOHU^ SULYDWHERROHDQHPSW\ SULYDWHERROHDQERLOHG SULYDWHVWDWLF&KRFRODWH%RLOHUXQLTXH,QVWDQFH SULYDWH SULYDWH&KRFRODWH%RLOHU ^ HPSW\ WUXH ERLOHG IDOVH ` SXEOLFVWDWLF&KRFRODWH%RLOHUJHW,QVWDQFH ^ LI XQLTXH,QVWDQFH QXOO ^ XQLTXH,QVWDQFH QHZ&KRFRODWH%RLOHU  ` UHWXUQXQLTXH,QVWDQFH `

SXEOLFYRLG¿OO ^ LI LV(PSW\ ^ HPSW\ IDOVH ERLOHG IDOVH ¿OOWKHERLOHUZLWKDPLONFKRFRODWHPL[WXUH ` ` UHVWRI&KRFRODWH%RLOHUFRGH `



&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 21

WKHVLQJOHWRQSDWWHUQ

([HUFLVHVROXWLRQV

6KDUSHQ \RXU SHQFLO )RUHDFKVROXWLRQGHVFULEHLWVDSSOLFDELOLW\WRWKHSUREOHPRI¿[LQJWKH&KRFRODWH %RLOHUFRGH

6\QFKURQL]HWKHJHW,QVWDQFH PHWKRG

$VWUDLJKWIRUZDUGWHFKQLTXHWKDWLVJXDUDQWHHGWRZRUN:HGRQ·WVHHPWRKDYHDQ\

SHUIRUPDQFHFRQFHUQVZLWKWKHFKRFRODWHERLOHUVRWKLVZRXOGEHDJRRGFKRLFH

8VHHDJHULQVWDQWLDWLRQ

:HDUHDOZD\VJRLQJWRLQVWDQWLDWHWKHFKRFRODWHERLOHULQRXUFRGHVRVWDWLFDOO\LQLDOL]LQJWKH LQVWDQFHZRXOGFDXVHQRFRQFHUQV7KLVVROXWLRQZRXOGZRUNDVZHOODVWKHV\QFKURQL]HGPHWKRG DOWKRXJKSHUKDSVEHOHVVREYLRXVWRDGHYHORSHUIDPLODUZLWKWKHVWDQGDUGSDWWHUQ 'RXEOHFKHFNHGORFNLQJ

*LYHQZHKDYHQRSHUIRUPDQFHFRQFHUQVGRXEOHFKHFNHGORFNLQJVHHPVOLNHRYHUNLOO,QDGGLWLRQZH·G KDYHWRHQVXUHWKDWZHDUHUXQQLQJDWOHDVW-DYD

\RXDUHKHUH



Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 5. One of a Kind Objects

Return to Table of Contents

Page 22

FURVVZRUGSX]]OHVROXWLRQ

([HUFLVHVROXWLRQV









$ 



%





%

"



%

!

&



%



"

&



$





"

'



&





' 









&



%

$ "









"



















%













&



%

!













$

$

&

)



%

"



$













%



$

%

#

"



!



*

)

)



"





"



(



&



&

 

" 



&











!



&





$

%









"









 





&

!

"

 

#







$

&KDSWHU

Chapter 5. One of a Kind Objects Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Table of Contents Chapter 6. Encapsulating Invocation........................................................... 1 Section 6.1. Free hardware! Let's check out the Remote Control.................................................................................................. 3 Section 6.2. Taking a look at the vendor classes............................................................................................................................ 4 Section 6.3. Cubicle Conversation.................................................................................................................................................. 5 Section 6.4. Meanwhile, back at the Diner..., or, A brief introduction to the Command Pattern................................................. 7 Section 6.5. Let's study the interaction in a little more detail....................................................................................................... 8 Section 6.6. The Objectville Diner roles and responsibilities........................................................................................................ 9 Section 6.7. From the Diner to the Command Pattern................................................................................................................. 11 Section 6.8. Our first command object......................................................................................................................................... 13 Section 6.9. Using the command object........................................................................................................................................ 14 Section 6.10. Creating a simple test to use the Remote Control................................................................................................... 14 Section 6.11. Sharpen your pencil.................................................................................................................................................. 15 Section 6.12. The Command Pattern defined............................................................................................................................... 16 Section 6.13. The Command Pattern defined: the class diagram................................................................................................. 17 Section 6.14. BRAIN POWER........................................................................................................................................................ 17 Section 6.15. Assigning Commands to slots.................................................................................................................................. 19 Section 6.16. Implementing the Remote Control......................................................................................................................... 20 Section 6.17. Implementing the Commands................................................................................................................................. 21 Section 6.18. Putting the Remote Control Through Its Paces...................................................................................................... 22 Section 6.19. Now, Let's Check Out the Execution of Our Remote Control Test......................................................................... 23 Section 6.20. Time to Write That Documentation....................................................................................................................... 25 Section 6.21. What are we Doing?................................................................................................................................................ 26 Section 6.22. Time to QA That Undo Button!.............................................................................................................................. 29 Section 6.23. Using State to Implement Undo............................................................................................................................. 30 Section 6.24. Adding Undo to the Ceiling Fan Commands.......................................................................................................... 31 Section 6.25. Get Ready to Test the Ceiling Fan.......................................................................................................................... 32 Section 6.26. Testing the Ceiling Fan........................................................................................................................................... 33 Section 6.27. Every Remote Needs a Party Mode!....................................................................................................................... 34 Section 6.28. Using a Macro Command....................................................................................................................................... 35 Section 6.29. There are no Dumb Questions................................................................................................................................ 37 Section 6.30. More Uses of the Command Pattern: Queuing Requests...................................................................................... 38 Section 6.31. More Uses of the Command Pattern: Logging Requests........................................................................................ 39 Section 6.32. Tools for your Design Toolbox............................................................................................................................... 40 Section 6.33. Exercise Solutions................................................................................................................................................... 42 Section 6.34. Exercise Solutions................................................................................................................................................... 43

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 1

the Command Pattern

5

4 (QFDSVXODWLQJ,QYRFDWLRQ4 7KHVHWRSVHFUHWGURS ER[HVKDYHUHYROXWLRQL]HGWKHVS\ LQGXVWU\,MXVWGURSLQP\UHTXHVW DQGSHRSOHGLVDSSHDUJRYHUQPHQWV FKDQJHRYHUQLJKWDQGP\GU\FOHDQLQJ JHWVGRQH,GRQ·WKDYHWRZRUU\ DERXWZKHQZKHUHRUKRZLW MXVWKDSSHQV

,QWKLVFKDSWHUZHWDNHHQFDSVXODWLRQWRDZKROHQHZOHYHO ZH·UHJRLQJWRHQFDSVXODWHPHWKRGLQYRFDWLRQ7KDW¶VULJKWE\ HQFDSVXODWLQJPHWKRGLQYRFDWLRQZHFDQFU\VWDOOL]HSLHFHVRIFRPSXWDWLRQVRWKDWWKH REMHFWLQYRNLQJWKHFRPSXWDWLRQGRHVQ¶WQHHGWRZRUU\DERXWKRZWRGRWKLQJVLWMXVWXVHV RXUFU\VWDOOL]HGPHWKRGWRJHWLWGRQH:HFDQDOVRGRVRPHZLFNHGO\VPDUWWKLQJVZLWK WKHVHHQFDSVXODWHGPHWKRGLQYRFDWLRQVOLNHVDYHWKHPDZD\IRUORJJLQJRUUHXVHWKHPWR LPSOHPHQWXQGRLQRXUFRGH

WKLVLVDQHZFKDSWHU



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 2

KRPHDXWRPDWLRQRUEXVW

 RPH$XWRPDWLRQRU%XVW,QF + ,QGXVWULDO$YHQXH6XLWH )XWXUH&LW\,/

/ZMM\QVO[ U2WPVVa 1ZMKMV\TaZMKMQ^MLILMUWIVLJZQMÅVONZW QZVM_ 0]ZZQKIVM+-7WN?MI\PMZ7:IUIWV\PM 1_I[[W M`XIVLIJTM_MI\PMZ[\I\QWV1PI^M\W[Ia \PI\1¼LTQSM\W QUXZM[[ML_Q\P\PM[WN\_IZMIZKPQ\MK\]ZM UM)]\WUI\QWV I[SaW]\WLM[QOV\PM)81NWZW]ZVM_0W M[_M¼LJMPIXXa :MUW\M+WV\ZWT1VZM\]ZVNWZaW]Z[MZ^QK V[QV0WUM \WPIVL[WUMTaZM_IZLaW]_Q\P[\WKSWX\QW )]\WUI\QWVWZ*][\1VK ZMISQVOZMUW\M 1¼UMVKTW[QVOIXZW\W\aXMWNW]ZOZW]VLJ ZWTNMI\]ZM[[M^MV KWV\ZWTNWZaW]ZXMZ][IT
*QTT¹@º


&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 3

WKHFRPPDQGSDWWHUQ

.ZMMPIZL_IZM 4M\¼[KPMKSW]\\PM: MUW\M+WV\ZWT

7KHUHDUH´RQµDQG´RIIµ EXWWRQVIRUHDFKRIWKH VHYHQVORWV

:H VORWVWRSURJUDP :H·YHJRWVHYHQ HQWGHYLFHLQHDFKVORW FDQSXWDGLIIHU WKHEXWWRQV DQGFRQWUROLWYLD

7KHVHWZREXWWRQV XVHGWRFRQWUROWKH DUH KRXVHKROGGHYLFHVWR UHG LQVORWRQH DQGWKHVHWZRFR WKHKRXVHKROGGHYL QWURO VWRUHGLQVORWWZRFH  DQGVRRQ

*HW\RXU6KDUSLHRXWDQGHUH ZULWH\RXUGHYLFHQDPHVK +HUH·VWKHJOREDO´XQGRµEXWWRQWKDW XQGRHVWKHODVWEXWWRQSUHVVHG

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 4

YHQGRUFODVVHVIURPKRPHDXWRPDWLRQ


$SSOLDQFH&RQWURO RQ RII

6WHUHR RQ RII

&HLOLQJ/LJKW

VHW&G

RQ

VHW'YG

RII

79

GLP

2XWGRRU/LJKW

VHW5DGLR VHW9ROXPH

)DXFHW&RQWURO

RQ

RQ

RII

RSHQ9DOXH

RII

VHW,QSXW&KDQQHO

FORVH9DOXH

VHW9ROXPH

+RWWXE

&HLOLQJ)DQ FLUFXODWH

KLJK

*DUGHQ/LJKW

*DUDJH'RRU

PHGLXP ORZ

VHW'XVN7LPH

XS

RII

VHW'DZQ7LPH

GRZQ

JHW6SHHG

VWRS

PDQXDO2Q

MHWV2Q MHWV2II VHW7HPSHUDWXUHW

7KHUPRVWDW

OLJKW2Q

PDQXDO2II

VHW7HPSHUDWXUH

OLJKW2II

6SULQNOHU

6HFXULW\&RQWURO

ZDWHU2Q

/LJKW

ZDWHU2II RQ

DUP GLVDUP

RII

1\TWWS[TQSM_MPI^MY]Q\MI[M\WN KTI[[M[PMZMIVLVW\ITW\WN  QVL][\ZaMNNWZ\\WKWUM]X_Q\PI[M\WN KWUUWVQV\MZNIKM[6W\ WVTa\PI\Q\[W]VL[TQSM_MKIVM`XMK\UWZMWN \PM[MKTI[[M[QV\PM N]\]ZM,M[QOVQVOIZMUW\MKWV\ZWT)81Q[OWQVO\WJMQV\MZM[\QVO 4M\¼[OM\WV\W\PMLM[QOV



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 5

WKHFRPPDQGSDWWHUQ

+]JQKTM+WV^MZ[I\QWV
6XH

:HOOZH·YHJRWDQRWKHUGHVLJQWRGR 0\ÀUVWREVHUYDWLRQLVWKDWZH·YHJRWD VLPSOHUHPRWHZLWKRQDQGRIIEXWWRQVEXW DVHWRIYHQGRUFODVVHVWKDWDUHTXLWH GLYHUVH

5IZa"AM[1\PW]OP\_M¼L[MMIJ]VKPWN KTI[[M[_Q\PWV IVLWNNUM\PWL[J]\PMZM_M¼^MOW\UM\PWL[TQSMLQU [M\WT]UM[M\,QZMK\QWV ;]M"6W\WVTa\PI\Q\[W]VL[TQSM_MKIVM`XMK\UWZM^MVLWZ KTI[[M[QV\PMN]\]ZM_Q\PR][\I[LQ^MZ[MUM\PWL[ 5IZa"1\PQVSQ\¼[QUXWZ\IV\_M^QM_\PQ[I[I[MXIZI\QWVWN  KWVKMZV["\PMZMUW\M[PW]TLSVW_PW_\WQV\MZXZM\J]\\WVXZM[[M[ IVLUISMZMY]M[\[J]\Q\[PW]TLV¼\SVW_ITW\IJW]\PWUM I]\WUI\QWVWZPW_\W\]ZVWVIPW\\]J ;]M";W]VL[TQSMOWWLLM[QOV*]\QN \PMZMUW\MQ[L]UJIVL R][\SVW_[PW_\WUISMOMVMZQKZMY]M[\[PW_LW_MLM[QOV\PM ZMUW\M[W\PI\Q\KIVQV^WSMIVIK\QWV\PI\[Ia\]ZV[WVITQOP\WZ WXMV[IOIZIOMLWWZ' 5IZa"1¼UVW\[]ZMJ]\_MLWV¼\_IV\\PMZMUW\M\WPI^M\W SVW_\PM[XMKQÅK[WN \PM^MVLWZKTI[[M[ ;]M"?PI\LWaW]UMIV' 5IZa"?MLWV¼\_IV\\PMZMUW\M\WKWV[Q[\WN I[M\WN QN  [\I\MUMV\[TQSM¹QN [TW\%%4QOP\\PMVTQOP\WVMT[MQN [TW\% 0W\\]J\PMVPW\\]JRM\[7Vº?MSVW_\PI\Q[IJILLM[QOV ;]M"1IOZMM?PMVM^MZIVM_^MVLWZKTI[[KWUM[W]\_M¼LPI^M \WOWQVIVLUWLQNa\PMKWLMXW\MV\QITTaKZMI\QVOJ]O[IVLUWZM _WZSNWZW]Z[MT^M[

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 6

FRPPDQGSDWWHUQPLJKWZRUN

+H\,FRXOGQ·WKHOS RYHUKHDULQJ6LQFH&KDSWHU ,·YHEHHQERQLQJXSRQ'HVLJQ 3DWWHUQV7KHUH·VDSDWWHUQ FDOOHG´&RPPDQG3DWWHUQµ,WKLQN PLJKWKHOS

5IZa"AMIP'
&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 7

WKHFRPPDQGSDWWHUQ

5MIV_PQTMJIKSI\\PM,QVMZ WZ )JZQMNQV\ZWL]K\QWV\W\PM+WUUIVL8I\\MZV )[2WM[IQLQ\Q[ITQ\\TMPIZL\W]VLMZ[\IVL\PM+WUUIVL8I\\MZVJaR][\PMIZQVO Q\[LM[KZQX\QWV*]\LWV¼\NMIZ_MPI^M[WUMNZQMVL[ZMILa\WPMTX" ZMUMUJMZW]ZNZQMVLTaLQVMZNZWU+PIX\MZ'1\¼[JMMVI_PQTM[QVKM_M ^Q[Q\ML)TQKM.TWIVL\PM[PWZ\WZLMZKWWSJ]\_M¼^MOW\OWWLZMI[WV NWZZM\]ZVQVO_MTTJMaWVL\PMNWWLIVLOZMI\KWV^MZ[I\QWV"\PMLQVMZQ[ OWQVO\WPMTX][]VLMZ[\IVL\PM+WUUIVL8I\\MZV ;WTM\¼[\ISMI[PWZ\LM\W]ZJIKS\W\PMLQVMZIVL[\]La\PMQV\MZIK\QWV[ JM\_MMV\PMK][\WUMZ[\PM_IQ\ZM[[\PMWZLMZ[IVL\PM[PWZ\WZLMZ KWWS
1DLGEVXKNNG&KPGT

GTGJGTG 9KUJ[QWY

+PMKSQVOQVI\\PM7JRMK\^QTTM,QVMZ

2ND\ZHDOONQRZKRZWKH'LQHURSHUDWHV &KHHVH ZLWK %XUJHU KDNH 0DOW6

 7KH:DLWUHVV 

WDNHVWKH2UGHU SODFHVLWRQWKH RUGHUFRXQWHU DQGVD\V´2UGHU XSµ


 7KH6KRUW2UGHU&RRNSUHSDUHV\RXUPHDO

IURPWKH2UGHU \RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 8

WKHGLQHU

4M\¼[[\]La\PMQV\MZIK\QWVQVITQ\\TMUWZMLM\IQT DQGJLYHQWKLV'LQHULVLQ2EMHFWYLOOHOHW·VWKLQN DERXWWKHREMHFWDQGPHWKRGFDOOVLQYROYHGWRR

WVRIDQRUGHU 7KH2UGHUFRQVLV RPHU·VPHQX VW VOLSDQGWKHFX ZULWWHQRQLW LWHPVWKDWDUH C RE A

&KHHVH UZLWK %XUJH KDNH 6 W DO 0

TE /

,·OOKDYHD%XUJHU ZLWK&KHHVHDQGD 0DOW6KDNH

RD E

R

HUH UW+ 6WD TAK E/

RD E R 

7KHFXVWRPHUNQRZV ZKDWKHZDQWVDQG FUHDWHVDQRUGHU



7KH:DLWUHVVWDNHVWKH2UGHUD JHWVDURXQGWRLWVKHFDOOVLWVRUQGZKHQVKH PHWKRGWREHJLQWKH2UGHU·VSUHSGHU8S  DUDWLRQ

DVDOO UGHUK 7KH2 VWUXFWLRQV  WKHLQ WRSUHSDUH QHHGHG DO7KH  WKHPHGLUHFWVWKH  2UGHU 2UGHU&RRN 6KRUW HWKRGVOLNH ZLWKP XUJHU  PDNH%

O

E RD

R5

P



7KH6KRUW2UGHU &RRNIROORZVWKH LQVWUXFWLRQVRI WKH2UGHUDQG SURGXFHVWKHPHDO

&KHHVH UZLWK %XUJH DNH 0DOW6K

OU

TP

UT

MAKE"URGER MAKE3HAKE



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 9

WKHFRPPDQGSDWWHUQ


7KH:DLWUHVV·VMRELVWRWDNH2UGHU6OLSVDQG LQYRNHWKHRUGHU8S PHWKRGRQWKHP

^ HU8S  RLGRUG SXEOLFY DNH%XUJHU  P RN FR DNH6KDNH  P FRRN `

2ND\LQUH FDUHZKDW DOOLIHDZDLWUHVVZ LWEXWWKLVLVRQWKH2UGHU6OL RXOGSUREDEO\ S LV2EMHFW YLOOHZRUNDQGZKRFRRNV ZLWKXVKHU H


'RQ·WDVNPHWRFRRN ,MXVWWDNHRUGHUVDQG \HOO´2UGHUXSµ

6W_\PZW]OPW]\\PMLIa\PM?IQ\ZM[[¼[\ISM7ZLMZUM\PWLOM\[ XIZIUM\MZQbML_Q\PLQNNMZMV\WZLMZ[TQX[NZWULQNNMZMV\K][\WUMZ[J]\ \PI\LWM[V¼\XPI[MPMZ#[PMSVW_[ITT7ZLMZ[TQX[[]XXWZ\\PMWZLMZ=X UM\PWLIVL[PMKIVKITTWZLMZ=XIVa\QUM[PMVMML[IUMITXZMXIZML

7KH6KRUW2UGHU&RRNKDVWKHNQRZOHGJH UHTXLUHGWRSUHSDUHWKHPHDO

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 10

WKHGLQHULVDPRGHOIRUFRPPDQGSDWWHUQ

2ND\ZHKDYHD 'LQHUZLWKD:DLWUHVVZKRLV GHFRXSOHGIURPWKH&RRNE\DQ 2UGHU6OLSVRZKDW"*HWWR WKHSRLQW

8I\QMVKM_M¼ZMOM\\QVO\PMZM
YiX`e gfn\i

HU DQRUG VLVWVRIU·VPHQX GHUFRQ 7KH2UGWKHFXVWRPHLWWHQRQLW VOLSDQ DWDUHZU LWHPVWK CREA



6KDNH



&KHHVH ZLWK %XUJHU 6KDNH 0DOW

H VZKDWK VDQ PHUNQRZ 7KHFXVWR SDUHGDQGFUHDWH ZDQWVSUH RUGHU TAKE/RDER

QVKHJHWV RUGHUDQGZKH RGWREHJLQ S PHWK 7KH:DLWUHVVWDNHVWKH FDOOVLWVRUGHU8 DURXQGWRLWVKHDUDWLRQ WKHRUGHU·VSUHS

ER5

P

7KH6KRUW2UGHU &RRNIROORZVWKH LQVWUXFWLRQVRIWKH 2UGHUDQGSURGXFHV WKHPHDO

ORD

DOO KDV UGHU LRQV 7KH2 QVWUXFW SDUH WKHL WRSUH KH  QHHG HDO7FWVWKH WKHP UGLUH U&RRN 2UGH W2UGH GVOLNH RU 6K PHWKR ZLWK %XUJHU PDNH

KHHVH ZLWK& %XUJHU 6KDNH 0DOW

KE

TPUT

MAKE"UR

E3HA GER MAK

OU

%HIRUHZHPRYHRQVSHQGVRPHWLPHVWXG\LQJ WKHGLDJUDPWZRSDJHVEDFNDORQJZLWK'LQHU UROHVDQGUHVSRQVLELOLWLHVXQWLO\RXWKLQN\RX¶YH JRWDKDQGOHRQWKH2EMHFWYLOOH'LQHUREMHFWVDQG UHODWLRQVKLSV2QFH\RX¶YHGRQHWKDWJHWUHDG\ WRQDLOWKH&RPPDQG3DWWHUQ

%XUJHU ,·OOKDYHD VHDQGD0DOW ZLWK&KHH

TE/RDER

&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 11

WKHFRPPDQGSDWWHUQ

.ZWU\PM,QVMZ\W\PM+WUUIVL8I\\MZV 7SIa_M¼^M[XMV\MVW]OP\QUMQV\PM7JRMK\^QTTM,QVMZ\PI\_MSVW_ITT\PM XMZ[WVITQ\QM[IVL\PMQZZM[XWV[QJQTQ\QM[Y]Q\M_MTT6W__M¼ZMOWQVOZM_WZS\PM ,QVMZLQIOZIU\WZMÆMK\\PM+WUUIVL8I\\MZVAW]¼TT[MM\PI\ITT\PMXTIaMZ[ IZM\PM[IUM#WVTa\PMVIUM[PI^MKPIVOML

W 7KHFRPPDQGREMHFG SURYLGHVRQHPHWKRFDSVXODWHV H[HFXWH WKDWHQ QEH WKHDFWLRQVDQGFDKHDFWLRQV FDOOHGWRLQYRNHW RQWKH5HFHLYHU

7KHDFWLRQVDQGWKH 5HFHLYHUDUHERXQGWRJHWKHU LQWKHFRPPDQGREMHFW

H[HFXWH^ SXEOLFYRLG DFWLRQ  UHFHLYHU DFWLRQ  UHFHLYHU `

DFWLRQ DFWLRQ 

TE #

 

C RE A

OM

 

MAN

D/B



7KHFOLHQWLVUHVSRQVLEOHIRU H FUHDWLQJWKHFRPPDQGREMHFW7K VHW ID WVR RQVLV FWF REMH FRPPDQG RIDFWLRQVRQDUHFHLYHU

5 HFHLYHU

JEC T



H[HFXWH FUHDWH &RPPDQG 2EMHFW

 

& RPPDQG

MMA



 

S E T #O

7KHFOLHQWFDOOVVHW&RPPDQG RQ DQ,QYRNHUREMHFWDQGSDVVHVLW  WKHFRPPDQGREMHFWZKHUHLWJ HWV VWRUHGXQWLOLWLVQHHGHG

 

&

OLHQW



ND

4 WILQVO\PM1V^WSMZ 

7KHFOLHQWFUHDWHVD FRPPDQGREMHFW



7KHFOLHQWGRHVD VHW&RPPDQG WRVWRUH WKHFRPPDQGREMHFWLQ WKHLQYRNHU



/DWHUWKHFOLHQWDVNV WKHLQYRNHUWRH[HFXWH WKHFRPPDQG1RWH DV\RX¶OOVHHODWHULQ WKHFKDSWHURQFHWKH FRPPDQGLVORDGHGLQWR WKHLQYRNHULWPD\EH XVHGDQGGLVFDUGHGRU LWPD\UHPDLQDQGEH XVHGPDQ\WLPHV

VHW&RPPDQG

XUH KHIXW  LQWLQWWKHFRPPDQG R S  H P $WVR YRNHUFDOOV PHWKRG WKH,Q ·VH[HFXWH REMHFW

, QY R N H U EX

U EC

TE



H[HFXWH

 

 

& RPPDQG

HUH UW+ D W 6

 

DFWLRQ DFWLRQ 

ACTION ACTION 5

ZKLFKUHVXOWV LQWKHDFWLRQV EHLQJLQYRNHGRQ WKH5HFHLYHU

HFHLYHU

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 12

ZKRGRHVZKDW"

5I\KP\PMLQVMZWJRMK\[IVLUM\PWL[_Q\P\PMKWZZM[XWVLQVOVIUM[NZWU\PM +WUUIVL8I\\MZV

'LQHU



&RPPDQG3DWWHUQ

Waitress

Command

Short Order Cook

execute()

orderUp()

Client

Order

Invoker

Customer

Receiver

takeOrder()

setCommand()

&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 13

WKHFRPPDQGSDWWHUQ

7]ZNQZ[\K WUUIVLWJRMK\ 1[V¼\Q\IJW]\\QUM_MJ]QTLW]ZÅZ[\KWUUIVLWJRMK\'4M\¼[OWIPMILIVL_ZQ\M [WUMKWLMNWZ\PMZMUW\MKWV\ZWT?PQTM_MPI^MV¼\ÅO]ZMLW]\PW_\WLM[QOV\PM ZMUW\MKWV\ZWT)81aM\J]QTLQVOINM_\PQVO[NZWU\PMJW\\WU]XUIaPMTX][

,PSOHPHQWLQJWKH&RPPDQGLQWHUIDFH .QZ[\\PQVO[ÅZ[\"ITTKWUUIVLWJRMK\[QUXTMUMV\\PM[IUMQV\MZNIKM_PQKP KWV[Q[\[WN WVMUM\PWL1V\PM,QVMZ_MKITTML\PQ[UM\PWLWZLMZ=X#PW_M^MZ _M\aXQKITTaR][\][M\PMVIUMM`MK]\M 0MZM¼[\PM+WUUIVLQV\MZNIKM" SXEOLFLQWHUIDFH&RPPDQG^ SXEOLFYRLGH[HFXWH  `

6LPSOH$OOZHQHHGLVRQHPHWKRG FDOOH

GH[HFXWH 

,PSOHPHQWLQJD&RPPDQGWRWXUQDOLJKWRQ 6W_TM\¼[[IaaW]_IV\\WQUXTMUMV\IKWUUIVLNWZ\]ZVQVOITQOP\WV :MNMZZQVO\WW]Z[M\WN ^MVLWZKTI[[M[\PM4QOP\KTI[[PI[\_WUM\PWL["WV IVLWNN0MZM¼[PW_aW]KIVQUXTMUMV\\PQ[I[IKWUUIVL"

/LJKW RQ RII

7KLVLVDFRPPDQGVRZHQHHGWR LPSOHPHQWWKH&RPPDQGLQWHUIDFH SXEOLFFODVV/LJKW2Q&RPPDQGLPSOHPHQWV&RPPDQG^ /LJKWOLJKW  SXEOLF/LJKW2Q&RPPDQG /LJKWOLJKW ^ WKLVOLJKW OLJKW `  SXEOLFYRLGH[HFXWH ^ OLJKWRQ  ` GFDOOVWKH ` 7KHH[HFXWHPHWKR 

7KHFRQVWUXFWRULVSDVVHGWKHVSHFLILF OLJKWWKDWWKLVFRPPDQGLVJRLQJWR FRQWUROVD\WKHOLYLQJURRPOLJKW DQGVWDVKHVLWLQWKHOLJKWLQVWDQFH YDULDEOH:KHQH[HFXWHJHWVFDOOHGWKLV LVWKHOLJKWREMHFWWKDWLVJRLQJWREH WKH5HFHLYHURIWKHUHTXHVW

UHFHLYLQJ RQ PHWKRGRQWKH OLJKWZH KH W LV LFK ZK W MHF RE DUHFRQWUROOLQJ

6W_\PI\aW]¼^MOW\I4QOP\7V+WUUIVLKTI[[TM\¼[[MMQN _MKIVX]\Q\\W][M \RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 14

XVLQJWKHFRPPDQGREMHFW

=[QVO\PMKWUUIVLWJRMK\ 7SIaTM\¼[UISM\PQVO[[QUXTM"[Ia_M¼^MOW\IZMUW\MKWV\ZWT_Q\PWVTaWVM J]\\WVIVLKWZZM[XWVLQVO[TW\\WPWTLILM^QKM\WKWV\ZWT"

RP HVORWWRKROGRXUF

PDQG

:HKDYHRQ SXEOLFFODVV6LPSOH5HPRWH&RQWURO^ QHGHYLFH &RPPDQGVORW ZKLFKZLOOFRQWUROR  :HKDYHDPHWKRGIRUVHWWLQJ SXEOLF6LPSOH5HPRWH&RQWURO ^` WKHFRPPDQGWKHVORWLVJRLQJ  WRFRQWURO7KLVFRXOGEHFDOOHG SXEOLFYRLGVHW&RPPDQG &RPPDQGFRPPDQG ^ VORW FRPPDQG PXOWLSOHWLPHVLIWKHFOLHQWRI ` WKLVFRGHZDQWHGWRFKDQJHWKH  EHKDYLRURIWKHUHPRWHEXWWRQ SXEOLFYRLGEXWWRQ:DV3UHVVHG ^ VORWH[HFXWH  7KLVPHWKRGLVFDOOHGZKHQWK ` EXWWRQLVSUHVVHG$OOZHGRLH VWDNH ` WKHFXU UHQWFRPPDQGERXQGWR VORWDQGFDOOLWVH[HFXWH PHWK WKH RG

+ZMI\QVOI[QUXTM\M[\\W][M\PM:MUW\M+WV\ZWT 0MZM¼[R][\IJQ\WN KWLM\W\M[\W]\\PM[QUXTMZMUW\MKWV\ZWT4M\¼[\ISMITWWSIVL _M¼TTXWQV\W]\PW_\PMXQMKM[UI\KP\PM+WUUIVL8I\\MZVLQIOZIU"

SHDN

RPPDQG3DWWHUQV

& 7KLVLVRXU&OLHQWLQ

,QYRNHU 7KHUHPRWHLVRXU LWZLOOEHSDVVHGD DWFDQ SXEOLFFODVV5HPRWH&RQWURO7HVW^ FRPPDQGREMHFWWKHTXHVWV SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ EHXVHGWRPDNHU 6LPSOH5HPRWH&RQWUROUHPRWH QHZ6LPSOH5HPRWH&RQWURO  /LJKWOLJKW QHZ/LJKW  1RZZHFUHDWHD/LJKW /LJKW2Q&RPPDQGOLJKW2Q QHZ/LJKW2Q&RPPDQG OLJKW  REMHFWWKLVZLOOEHWKH  5HFHLYHURIWKHUHTXHVW UHPRWHVHW&RPPDQG OLJKW2Q  +HUHFUHDWHDFRPPDQGDQG UHPRWHEXWWRQ:DV3UHVVHG  SDVVLWWRWKH5HFHLYHU ` `

+HUHSDVVWKHFRPPDQG WRWKH,QYRNHU $QGWKHQZHVLPXODWHWKH EXWWRQEHLQJSUHVVHG



)LOH(GLW:LQGRZ+HOS'LQHU)RRG
MDYD5HPRWH&RQWURO7HVW /LJKWLV2Q

+HUH·VWKHRXWSXWRI UXQQLQJWKLVWHVWFRGH



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 15

WKHFRPPDQGSDWWHUQ

6KDUSHQ \RXU SHQFLO 7SIaQ\¼[\QUMNWZaW]\WQUXTMUMV\\PM /IZIOM,WWZ7XMV+WUUIVLKTI[[.QZ[\[]XXTa\PMKWLMNWZ \PMKTI[[JMTW_AW]¼TTVMML\PM/IZIOM,WWZKTI[[LQIOZIU SXEOLFFODVV*DUDJH'RRU2SHQ&RPPDQG LPSOHPHQWV&RPPDQG^

*DUDJH'RRU XS GRZQ VWRS OLJKW2Q OLJKW2II


`

6W_\PI\aW]¼^MOW\aW]ZKTI[[_PI\Q[\PMW]\X]\WN \PMNWTTW_QVO KWLM'0QV\"\PM/IZIOM,WWZ]XUM\PWLXZQV\[W]\¹/IZIOM,WWZQ[ 7XMVº_PMVQ\Q[KWUXTM\M SXEOLFFODVV5HPRWH&RQWURO7HVW^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 6LPSOH5HPRWH&RQWUROUHPRWH QHZ6LPSOH5HPRWH&RQWURO  /LJKWOLJKW QHZ/LJKW  *DUDJH'RRUJDUDJH'RRU QHZ*DUDJH'RRU  /LJKW2Q&RPPDQGOLJKW2Q QHZ/LJKW2Q&RPPDQG OLJKW  *DUDJH'RRU2SHQ&RPPDQGJDUDJH2SHQ  QHZ*DUDJH'RRU2SHQ&RPPDQG JDUDJH'RRU    UHPRWHVHW&RPPDQG OLJKW2Q  UHPRWHEXWWRQ:DV3UHVVHG  UHPRWHVHW&RPPDQG JDUDJH2SHQ  UHPRWHEXWWRQ:DV3UHVVHG  ` ` )LOH(GLW:LQGRZ+HOS*UHHQ(JJV +DP

MDYD5HPRWH&RQWURO7HVW


\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 16

FRPPDQGSDWWHUQGH¿QHG


$QHQFDSVXODWHGUHTXHVW

  




H[HFXWH ^ UHFHLYHUDFWLRQ  `

H[HFXWH

DQ G

LJ KW2

 

H[HFXWH

* D

UDJH'RR



Q&RPP

  

 +L JK

H[HFXWH

H LO

H[HFXWH

6W



&  

HUHR 2

LQJ)DQ

 



/ 

?PI\_MPI^MV¼\MVKW]V\MZMLaM\Q[][QVOKWUUIVL[\W QUXTMUMV\Y]M]M[IVLTWO[IVL[]XXWZ\]VLWWXMZI\QWV[,WV¼\_WZZa \PW[MIZMXZM\\a[\ZIQOP\NWZ_IZLM`\MV[QWV[WN \PMJI[QK+WUUIVL 8I\\MZVIVL_M_QTTOM\\W\PMU[WWV?MKIVIT[WMI[QTa[]XXWZ\ _PI\¼[SVW_VI[\PM5M\I+WUUIVL8I\\MZVWVKM_MPI^M\PM JI[QK[QVXTIKM
&R P PD Q G

II

 

 

4M\¼[[\MX\PZW]OP\PQ[?MSVW_\PI\IKWUUIVLWJRMK\ MVKIX[]TI\M[IZMY]M[\JaJQVLQVO\WOM\PMZI[M\WN IK\QWV[WVI [XMKQÅKZMKMQ^MZ
DFWLRQ

 5 HFHLYHU

U2 SH Q

4M\¼[[\IZ\_Q\PQ\[WNÅKQITLMÅVQ\QWV"

  5H PRWH6O

RW

AW]¼^MLWVMaW]Z\QUMQV\PM7JRMK\^QTTM,QVMZaW]¼^MXIZ\Ta QUXTMUMV\ML\PMZMUW\MKWV\ZWT)81IVLQV\PMXZWKM[[aW]¼^M OW\INIQZTaOWWLXQK\]ZMWN PW_\PMKTI[[M[IVLWJRMK\[QV\MZIK\QV \PM+WUUIVL8I\\MZV6W__M¼ZMOWQVO\WLMÅVM\PM+WUUIVL 8I\\MZVIVLVIQTLW_VITT\PMLM\IQT[

$QLQYRNHUIRULQVWDQFH RQHVORWRIWKHUHPRWH FDQEHSDUDPHWHUL]HGZLWK GLIIHUHQWUHTXHVWV

&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 17

WKHFRPPDQGSDWWHUQ


IRU 7KH&OLHQWLVUHVSRQVLEOH PDQGDQG RP H& UHW RQF FUHDWLQJD&  YHU VHWWLQJLWV5HFHL

7KH,QYRNHUKROGV DFRPPDQGDQGDW VRPHSRLQWDVNVWKH FRPPDQGWRFDUU\ RXWDUHTXHVWE\ FDOOLQJLWVH[HFXWH  PHWKRG

LQWHUIDFH!! &RPPDQG H[HFXWH XQGR

,QYRNHU

&OLHQW

VHW&RPPDQG

5HFHLYHU DFWLRQ

7KH5HFHLYHUNQRZVKRZWR SHUIRUPWKHZRUNQHHGHGWR FDUU\RXWWKHUHTXHVW$Q\FODVV FDQDFWDVD5HFHLYHU

FRPPDQGV$V &RPPDQGGHFODUHVDQLQWHUIDFHIRUDOOWKURXJKLWV RNHG LVLQY DQG FRPP ZD \NQR \RXDOUHDG UWRSUHIRUPDQ H[HFXWH PHWKRGZKLFKDVNVDUHFHLYH VDQXQGR  FHKD HUID VLQW HWKL DFWLRQ
&RQFUHWH&RPPDQG H[HFXWH XQGR

7KHH[HFXWH PHWKRGLQYRNHV WKHDFWLRQ V  RQWKHUHFHLYHU QHHGHGWRIXOILOO WKHUHTXHVW

SXEOLFYRLGH[HFXWH ^ UHFHLYHUDFWLRQ `

DFWLRQ ILQHVDELQGLQJEHWZHHQDQ 7KH&RQFUHWH&RPPDQGGH HUPDNHVDUHTXHVWE\FDOOLQJ YRN DQGD5HFHLYHU7KH,Q WH&RPPDQGFDUULHVLWRXWE\ H[HFXWH DQGWKH&RQFUH RQWKH5HFHLYHU FDOOLQJRQHRUPRUHDFWLRQV

YiX`e gfn\i +RZGRHVWKHGHVLJQRIWKH&RPPDQG3DWWHUQVXSSRUWWKHGHFRXSOLQJRIWKHLQYRNHURID UHTXHVWDQGWKHUHFHLYHURIWKHUHTXHVW"

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 18

ZKHUHGRZHEHJLQ"

2ND\,WKLQN,·YHJRWDJRRGIHHO IRUWKH&RPPDQG3DWWHUQQRZ*UHDW WLS-RH,WKLQNZHDUHJRLQJWRORRN OLNHVXSHUVWDUVDIWHUÀQLVKLQJRII WKH5HPRWH&RQWURO$3,

5IZa"5M\WW;W_PMZMLW_MJMOQV' ;]M"4QSM_MLQLQV\PM;QUXTM:MUW\M_MVMML\WXZW^QLMI_Ia \WI[[QOVKWUUIVL[\W[TW\[1VW]ZKI[M_MPI^M[M^MV[TW\[MIKP _Q\PIV¹WVºIVL¹WNN ºJ]\\WV;W_MUQOP\I[[QOVKWUUIVL[\W \PMZMUW\M[WUM\PQVOTQSM\PQ[" 5IZa"


&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 19

WKHFRPPDQGSDWWHUQ

)[[QOVQVO+WUUIVL[\W[TW\[ ;W_MPI^MIXTIV"?M¼ZMOWQVO\WI[[QOVMIKP[TW\\WIKWUUIVLQV \PMZMUW\MKWV\ZWT
 (DFKVORWJHWVDFRPPDQG  :KHQWKHEXWWRQLVSUHVVHGWKHH[HFXWH  PHWKRGLVFDOOHGRQWKHFRUUHVSRQGLQJFRPPDQG

DQ G

L / 

H[HFXWH

JK W2Q&RPP

DQ G

L / 

H[HFXWH

Q) R

P DQG

H

WHUHR2

P DQG

J) D Q

R

&O

 

H[HFXWH

*D

 6  

:H·OOZRUU\DERXWWKH UHPDLQLQJVORWVLQDELW

2 II

H[HFXWH

LOLQ

VH

+ LJ K

 & 

6  

H[HFXWH

H[HFXWH

JK W2II&RP



2

S



UDJH'RRU

L / 

 

HQ

H

J) D Q

H[HFXWH

H[HFXWH

JK W2II&RP

U& '

 & 

H[HFXWH

LOLQ

*D

L / 



JK W2Q&RPP

UDJH'RRU

H[HFXWH

II

WHUHR2

 ,QWKHH[HFXWH PHWKRGDFWLRQV DUHLQYRNHGRQWKHUHFLHYHU

7KH,QYRNHU RII RQ

 

 6W HR HU

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 20

LPSOHPHQWLQJWKHUHPRWHFRQWURO

1UXTMUMV\QVO\PM:MUW\M+WV\ZWT RWHLVJRLQJWR

SXEOLFFODVV5HPRWH&RQWURO^ 7KLVWLPHDURXQGWKHUHP ZKLFK &RPPDQG>@RQ&RPPDQGV KDQGOHVHYHQ2QDQG2IIFRPPDQGV V UUD\ QJD RQGL UHVS &RPPDQG>@RII&RPPDQGV FRU GLQ ZH·OOKRO  SXEOLF5HPRWH&RQWURO ^ ,QWKHFRQVWUXFWRUDOOZHQHHGWRGRLV RQ&RPPDQGV QHZ&RPPDQG>@ LQVWDQWLDWHDQGLQLWLDOL]HWKHRQDQGRII RII&RPPDQGV QHZ&RPPDQG>@ DUUD\V  &RPPDQGQR&RPPDQG QHZ1R&RPPDQG  IRU LQWL LL ^ RQ&RPPDQGV>L@ QR&RPPDQG RII&RPPDQGV>L@ QR&RPPDQG ` `  SXEOLFYRLGVHW&RPPDQG LQWVORW&RPPDQGRQ&RPPDQG&RPPDQGRII&RPPDQG ^ RQ&RPPDQGV>VORW@ RQ&RPPDQG 7KHVHW&RPPDQG PHWKRGWDNHVDVORWSRVLWLRQ RII&RPPDQGV>VORW@ RII&RPPDQG DQGDQ2QDQG2IIFRPPDQGWREHVWRUHGLQ ` WKDWVORW,WSXWVWKHVHFRPPDQGVLQWKHRQDQG  SXEOLFYRLGRQ%XWWRQ:DV3XVKHG LQWVORW ^ RIIDUUD\VIRUODWHUXVH RQ&RPPDQGV>VORW@H[HFXWH  ` :KHQDQ2QRU2IIEXWWRQLV  SUHVVHGWKHKDUGZDUHWDNHV SXEOLFYRLGRII%XWWRQ:DV3XVKHG LQWVORW ^ FDUHRIFDOOLQJWKHFRUUHVSRQGLQJ RII&RPPDQGV>VORW@H[HFXWH  PHWKRGVRQ%XWWRQ:DV3XVKHG RU ` RII%XWWRQ:DV3XVKHG      SXEOLF6WULQJWR6WULQJ ^ 6WULQJ%XIIHUVWULQJ%XII QHZ6WULQJ%XIIHU  VWULQJ%XIIDSSHQG ³?Q5HPRWH&RQWURO?Q´  IRU LQWL LRQ&RPPDQGVOHQJWKL ^ VWULQJ%XIIDSSHQG ³>VORW³L³@³RQ&RPPDQGV>L@JHW&ODVV JHW1DPH ³³RII&RPPDQGV>L@JHW&ODVV JHW1DPH ³?Q´  ` UHWXUQVWULQJ%XIIWR6WULQJ  ` :H·YHRYHUZULWWHQWR6WULQJ WRSULQWRXWHDFKVORWDQGL WV ` FRUUHVSRQGLQJ

FRPPDQG


&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 21

WKHFRPPDQGSDWWHUQ

1UXTMUMV\QVO\PM+WUUIVL[ ?MTT_M¼^MITZMILaOW\\MVW]ZNMM\_M\QUXTMUMV\QVO\PM4QOP\7V+WUUIVLNWZ \PM;QUXTM:MUW\M+WV\ZWT?MKIVXT]O\PI\[IUMKWLMQVPMZMIVLM^MZa\PQVO _WZS[JMI]\QN]TTa7NN KWUUIVL[IZMVWLQNNMZMV\#QVNIK\\PM4QOP\7NN+WUUIVL TWWS[TQSM\PQ[" SXEOLFFODVV/LJKW2II&RPPDQGLPSOHPHQWV&RPPDQG^ /LJKWOLJKW  SXEOLF/LJKW2II&RPPDQG /LJKWOLJKW ^ WKLVOLJKW OLJKW ` 7KH/LJKW2II&RPPDQGZRUNVH[DFWO\  WKHVDPHZD\DVWKH/LJKW2Q&RPPDQG SXEOLFYRLGH[HFXWH ^ H[FHSWWKDWZHDUHELQGLQJWKHUHFHLYHU OLJKWRII  ` WRDGLIIHUHQWDFWLRQWKHRII PHWKRG `

4M\¼[\Za[WUM\PQVOITQ\\TMUWZMKPITTMVOQVO#PW_IJW]\_ZQ\QVOWVIVLWNN  KWUUIVL[NWZ\PM;\MZMW'7SIaWNN Q[MI[a_MR][\JQVL\PM;\MZMW\W\PMWNN UM\PWLQV\PM;\MZMW7NN+WUUIVL7VQ[ITQ\\TMUWZMKWUXTQKI\ML#TM\¼[[Ia_M _IV\\W_ZQ\MI;\MZMW7V?Q\P+,+WUUIVL

6WHUHR RQ RII VHW&G VHW'YG VHW5DGLR VHW9ROXPH

SXEOLFFODVV6WHUHR2Q:LWK&'&RPPDQGLPSOHPHQWV&RPPDQG^ 6WHUHRVWHUHR  SXEOLF6WHUHR2Q:LWK&'&RPPDQG 6WHUHRVWHUHR ^ ZHJHW WKLVVWHUHR VWHUHR -XVWOLNHWKH/LJKW2Q&RPPDQG RZH WHUH KHV RIW ` QFH QVWD KHL HGW SDVV HVWRUH  DUHJRLQJWREHFRQWUROOLQJDQGZ  SXEOLFYRLGH[HFXWH ^ LDEOH YDU DQFH LQVW LWLQDORFDO VWHUHRRQ  VWHUHRVHW&'  VWHUHRVHW9ROXPH   7RFDUU\RXWWKLVUHTXHVWZHQHHGWRFDOOWKUHH ` PHWKRGVRQWKHVWHUHRILUVWWXUQLWRQWKHQVHW `

LWWRSOD\WKH&'DQGILQDOO\VHWWKHYROXPHWR :K\":HOOLW·VEHWWHUWKDQULJKW"

6W\\WWJIL
\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 22

WHVWLQJWKHUHPRWHFRQWURO

8]\\QVO\PM:MUW\M+WV\ZWT\PZW]OPQ\[XIKM[ 7]ZRWJ_Q\P\PMZMUW\MQ[XZM\\aU]KPLWVM#ITT_MVMML\WLWQ[Z]V[WUM\M[\[IVL OM\[WUMLWK]UMV\I\QWV\WOM\PMZ\WLM[KZQJM\PM)810WUM)]\WUI\QWVWN *][\ 1VK[]ZMQ[OWQVO\WJMQUXZM[[MLLWV¼\aI\PQVS'?M¼^MUIVIOML\WKWUM]X_Q\P ILM[QOV\PI\Q[OWQVO\WITTW_\PMU\WXZWL]KMIZMUW\M\PI\Q[MI[a\WUIQV\IQV IVL\PMa¼ZMOWQVO\WPI^MVW\ZW]JTMKWV^QVKQVO\PM^MVLWZ[\W_ZQ\M[WUM[QUXTM KWUUIVLKTI[[M[QV\PMN]\]ZM[QVKM\PMaIZM[WMI[a\W_ZQ\M 4M\¼[OM\\W\M[\QVO\PQ[KWLM  SXEOLFFODVV5HPRWH/RDGHU^  SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 5HPRWH&RQWUROUHPRWH&RQWURO QHZ5HPRWH&RQWURO   /LJKWOLYLQJ5RRP/LJKW QHZ/LJKW ³/LYLQJ5RRP´  FHVLQ &UHDWHDOOWKHGHYL QV /LJKWNLWFKHQ/LJKW QHZ/LJKW ³.LWFKHQ´  FDWLR OR HU RS SU HLU WK &HLOLQJ)DQFHLOLQJ)DQ QHZ&HLOLQJ)DQ ³/LYLQJ5RRP´  *DUDJH'RRUJDUDJH'RRU QHZ*DUDJH'RRU ³´  6WHUHRVWHUHR QHZ6WHUHR ³/LYLQJ5RRP´   /LJKW2Q&RPPDQGOLYLQJ5RRP/LJKW2Q  QHZ/LJKW2Q&RPPDQG OLYLQJ5RRP/LJKW  &UHDWHDOOWKH/LJKW /LJKW2II&RPPDQGOLYLQJ5RRP/LJKW2II  QHZ/LJKW2II&RPPDQG OLYLQJ5RRP/LJKW  &RPPDQGREMHFWV /LJKW2Q&RPPDQGNLWFKHQ/LJKW2Q  QHZ/LJKW2Q&RPPDQG NLWFKHQ/LJKW  /LJKW2II&RPPDQGNLWFKHQ/LJKW2II  QHZ/LJKW2II&RPPDQG NLWFKHQ/LJKW   &HLOLQJ)DQ2Q&RPPDQGFHLOLQJ)DQ2Q  2II &UHDWHWKH2QDQG  QHZ&HLOLQJ)DQ2Q&RPPDQG FHLOLQJ)DQ  DQ JI LOLQ FH IRUWKH &HLOLQJ)DQ2II&RPPDQGFHLOLQJ)DQ2II  QHZ&HLOLQJ)DQ2II&RPPDQG FHLOLQJ)DQ   *DUDJH'RRU8S&RPPDQGJDUDJH'RRU8S QHZ*DUDJH'RRU8S&RPPDQG JDUDJH'RRU  &UHDWHWKH8SDQG'RZQ *DUDJH'RRU'RZQ&RPPDQGJDUDJH'RRU'RZQ FRPPDQGVIRUWKH*DUDJH QHZ*DUDJH'RRU'RZQ&RPPDQG JDUDJH'RRU   6WHUHR2Q:LWK&'&RPPDQGVWHUHR2Q:LWK&' QHZ6WHUHR2Q:LWK&'&RPPDQG VWHUHR  &UHDWHWKHVWHUHR2Q 6WHUHR2II&RPPDQGVWHUHR2II DQG2IIFRPPDQGV QHZ6WHUHR2II&RPPDQG VWHUHR  



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 23

WKHFRPPDQGSDWWHUQ

UHPRWH&RQWUROVHW&RPPDQG OLYLQJ5RRP/LJKW2QOLYLQJ5RRP/LJKW2II  UHPRWH&RQWUROVHW&RPPDQG NLWFKHQ/LJKW2QNLWFKHQ/LJKW2II  UHPRWH&RQWUROVHW&RPPDQG FHLOLQJ)DQ2QFHLOLQJ)DQ2II  1RZWKDWZH·YHJRW UHPRWH&RQWUROVHW&RPPDQG VWHUHR2Q:LWK&'VWHUHR2II  DOORXUFRPPDQGVZH  FDQORDGWKHPLQWR 6\VWHPRXWSULQWOQ UHPRWH&RQWURO  WKHUHPRWHVORWV  UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   UHPRWH&RQWURORII%XWWRQ:DV3XVKHG   +HUH·VZKHUHZHXVHRXUWR6WULQJ  UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   PHWKRGWRSULQWHDFKUHPRWHVORWDQG UHPRWH&RQWURORII%XWWRQ:DV3XVKHG   WKHFRPPDQGWKDWLWLVDVVLJQHGWR  UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   UHPRWH&RQWURORII%XWWRQ:DV3XVKHG   UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   UHPRWH&RQWURORII%XWWRQ:DV3XVKHG   ` $OOULJKWZHDUHUHDG\WRUROO ` 1RZZHVWHSWKURXJKHDFKVORW

DQGSXVKLWV2QDQG2IIEXWWRQ

6W_TM\¼[KPMKSW]\\PMM`MK]\QWVWNW]ZZMUW\MKWV\ZWT\M[\ )LOH(GLW:LQGRZ+HOS&RPPDQGV*HW7KLQJV'RQH

MDYD5HPRWH/RDGHU 5HPRWH&RQWURO >VORW@KHDG¿UVWFRPPDQGUHPRWH/LJKW2Q&RPPDQGKHDG¿UVWFRPPDQGUHPRWH/LJKW2II&RPPDQG >VORW@KHDG¿UVWFRPPDQGUHPRWH/LJKW2Q&RPPDQGKHDG¿UVWFRPPDQGUHPRWH/LJKW2II&RPPDQG >VORW@KHDG¿UVWFRPPDQGUHPRWH&HLOLQJ)DQ2Q&RPPDQGKHDG¿UVWFRPPDQGUHPRWH&HLOLQJ)DQ2II&RPPDQG >VORW@KHDG¿UVWFRPPDQGUHPRWH6WHUHR2Q:LWK&'&RPPDQGKHDG¿UVWFRPPDQGUHPRWH6WHUHR2II&RPPDQG >VORW@KHDG¿UVWFRPPDQGUHPRWH1R&RPPDQGKHDG¿UVWFRPPDQGUHPRWH1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGUHPRWH1R&RPPDQGKHDG¿UVWFRPPDQGUHPRWH1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGUHPRWH1R&RPPDQGKHDG¿UVWFRPPDQGUHPRWH1R&RPPDQG /LYLQJ5RRPOLJKWLVRQ /LYLQJ5RRPOLJKWLVRII .LWFKHQOLJKWLVRQ .LWFKHQOLJKWLVRII /LYLQJ5RRPFHLOLQJIDQLVRQKLJK /LYLQJ5RRPFHLOLQJIDQLVRII /LYLQJ5RRPVWHUHRLVRQ /LYLQJ5RRPVWHUHRLVVHWIRU&'LQSXW /LYLQJ5RRP6WHUHRYROXPHVHWWR /LYLQJ5RRPVWHUHRLVRII

2QVORWV2II6ORWV 2XUFRPPDQGVLQDFWLRQ5HPHPEHUWKHRXWSXW IURPHDFKGHYLFHFRPHVIURPWKHYHQGRUFODVVHV )RULQVWDQFHZKHQDOLJKWREMHFWLVWXUQHGRQLW SULQWV´/LYLQJ5RRPOLJKWLVRQµ



\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 24

QXOOREMHFW

 :DLW DVHFRQGZKDW LVZLWKWKDW1R&RPPDQGWKDW LVORDGHGLQVORWVIRXUWKURXJKVL[" 7U\LQJWRSXOODIDVWRQH"

/WWLKI\KP?MLQL[VMISITQ\\TM[WUM\PQVOQV\PMZM1V\PMZMUW\M KWV\ZWT_MLQLV¼\_IV\\WKPMKS\W[MMQN IKWUUIVL_I[TWILMLM^MZa \QUM_MZMNMZMVKMLI[TW\.WZQV[\IVKMQV\PMWV*]\\WV?I[8][PML UM\PWL_M_W]TLVMMLKWLMTQSM\PQ[" SXEOLFYRLGRQ%XWWRQ:DV3XVKHG LQWVORW ^ LI RQ&RPPDQGV>VORW@ QXOO ^ RQ&RPPDQGV>VORW@H[HFXWH  ` `

;WPW_LW_MOM\IZW]VL\PI\'1UXTMUMV\IKWUUIVL\PI\LWM[VW\PQVO SXEOLFFODVV1R&RPPDQGLPSOHPHQWV&RPPDQG^ SXEOLFYRLGH[HFXWH ^` `

L@ QR&RPPDQG RII&RPPDQGV>L@ QR&RPPDQG `

;WQV\PMW]\X]\WN W]Z\M[\Z]VaW]IZM[MMQVO[TW\[\PI\PI^MV¼\JMMV I[[QOVML\WIKWUUIVLW\PMZ\PIV\PMLMNI]T\6W+WUUIVLWJRMK\ _PQKP_MI[[QOVML_PMV_MKZMI\ML\PM:MUW\M+WV\ZWT

)LUVW +HDG DEOH RU +RQ WLRQ 0HQ

3DWWHUQ +RQRUDEOH 0HQWLRQ

4HE.O#OMMANDOBJECTISANEXAMPLEOFANULLOBJECT!NULLOBJECTISUSEFUL WHENYOUDONTHAVEAMEANINGFULOBJECTTORETURN ANDYETYOUWANTTOREMOVE THERESPONSIBILITYFORHANDLINGQXOOFROMTHECLIENT&ORINSTANCE INOURREMOTE CONTROLWEDIDNTHAVEAMEANINGFULOBJECTTOASSIGNTOEACHSLOTOUTOFTHEBOX SOWEPROVIDEDA.O#OMMANDOBJECTTHATACTSASASURROGATEANDDOESNOTHING WHENITSEXECUTEMETHODISCALLED 9OULLFINDUSESFOR.ULL/BJECTSINCONJUNCTIONWITHMANY$ESIGN0ATTERNSAND SOMETIMESYOULLEVENSEE.ULL/BJECTLISTEDASA$ESIGN0ATTERN



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 25

WKHFRPPDQGSDWWHUQ


ME!UTOMATIONOR"UST )NC

E PROGRAMMINGINTERFACEFORYOUR(OM HEFOLLOWINGDESIGNANDAPPLICATION SSIBLESOTHAT 7EAREPLEASEDTOPRESENTYOUWITHT REMOTECONTROLCODEASSIMPLEASPO EPTHE STOKE OALWA SIGNG ARYDE ND0ATTERNTO !UTOMATION2EMOTE#ONTROL/URPRIM DWEHAVEEMPLOYEDTHE#OMMA NDORCLASSESAREPRODUCED4OTHISEN UCETHECOSTOFPRODUCING ILLRED THISW ITDOESNTREQUIRECHANGESASNEWVE ELIEVE 7EB LASSES LCLASSFROMTHE6ENDOR# LOGICALLYDECOUPLETHE2EMOTE#ONTRO OSTS UCEYOURONGOINGMAINTENANCEC THEREMOTEASWELLASDRASTICALLYRED IGN URDES WOFO VERVIE SANO ROVIDE 4HEFOLLOWINGCLASSDIAGRAMP

4HE2EMOTE,OADERCREATESA NUMBEROF#OMMAND/BJECTS THATARELOADEDINTOTHESLOTS OFTHE2EMOTE#ONTROL%ACH COMMANDOBJECTENCAPSULATES AREQUESTOFAHOME AUTOMATIONDEVICE

TOF#OMMAND 4HE2EMOTE#ONTROLMANAGESASE TTONISPRESSED OBJECTS ONEPERBUTTON7HENABU SHED METHODIS THECORRESPONDING"UTTON7AS0U ODONTHE  METH XECUTE CALLED WHICHINVOKESTHEE OFTHEREMOTES COMMAND4HATISTHEFULLEXTENT THE INGAS SINVOK KNOWLEDGEOFTHECLASSESIT MOTEFROMTHE #OMMANDOBJECTDECOUPLESTHERE K ONWOR TOMATI CLASSESDOINGTHEAC TUALHOME AU

5HPRWH&RQWURO

5HPRWH/RDGHU

RQ&RPPDQGV RII&RPPDQGV

!LL2EMOTE#ONTROLCOMMANDS IMPLEMENTTHE#OMMAND INTERFACE WHICHCONSISTSOFONE METHODEXECUTE #OMMANDS ENCAPSULATEASETOFACTIONS ONASPECIFICVENDORCLASS4HE REMOTEINVOKESTHESEACTIONSBY CALLINGTHEEXECUTE METHOD

LQWHUIDFH!! &RPPDQG H[HFXWH

VHW&RPPDQG RQ%XWWRQ:DV3XVKHG RII%XWWRQ:DV3XVKHG

/LJKW RQ RII

/LJKW2Q&RPPDQG H[HFXWH

/LJKW2II&RPPDQG

H[HFXWH SXEOLFYRLGH[HFXWH ^ OLJKWRQ ` SXEOLFYRLGH[HFXWH ^

OLJKWRII `

FORM 4HE6ENDOR#LASSESAREUSEDTOPER F THEACTUALHOME AUTOMATIONWORKO INGTHE AREUS ERE WE CONTROLLINGDEVICES( ,IGHTCLASSASANEXAMPLE

ACTIONTHATCANBE 5SINGTHE#OMMAND)NTERFACE EACH EREMOTEISIMPLEMENTED INVOKEDBYPRESSINGABUTTONONTH E#OMMAND/BJECTHOLDS WITHASIMPLE#OMMANDOBJECT4H STANCEOFA6ENDOR#LASS AREFERENCETOANOBJECTTHATISANIN DTHATCALLSONEORMORE ANDIMPLEMENTSANEXECUTEMETHO TWOSUCHCLASSES SHOW EREWE METHODSONTHATOBJECT( TIVELY THATTURNALIGHTONANDOFF RESPEC

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 26

GRQ¶WIRUJHWXQGR

*UHDWMRELWORRNVOLNH \RX·YHFRPHXSZLWKDWHUULÀFGHVLJQ EXWDUHQ·W\RXIRUJHWWLQJRQHOLWWOHWKLQJ WKHFXVWRPHUDVNHGIRU" /,.(7+(81'2%87721

?PWWX[ ?MITUW[\NWZOW\T]KSQTaWVKM_M PI^MW]ZJI[QK+WUUIVLKTI[[M[]VLWQ[MI[a \WILL4M\¼[[\MX\PZW]OPILLQVO]VLW\WW]Z KWUUIVL[IVL\W\PMZMUW\MKWV\ZWT

?PI\IZM_MLWQVO' 7SIa_MVMML\WILLN]VK\QWVITQ\a\W[]XXWZ\\PM]VLWJ]\\WVWV\PMZMUW\M1\_WZS[TQSM \PQ["[Ia\PM4Q^QVO:WWU4QOP\Q[WNN IVLaW]XZM[[\PMWVJ]\\WVWV\PMZMUW\M7J^QW][Ta \PMTQOP\\]ZV[WV6W_QN aW]XZM[[\PM]VLWJ]\\WV\PMV\PMTI[\IK\QWV_QTTJMZM^MZ[ML·QV \PQ[KI[M\PMTQOP\_QTT\]ZVWNN*MNWZM_MOM\QV\WUWZMKWUXTM`M`IUXTM[TM\¼[OM\\PMTQOP\ _WZSQVO_Q\P\PM]VLWJ]\\WV" 

?PMVKWUUIVL[[]XXWZ\]VLW\PMaPI^MIV]VLWUM\PWL\PI\UQZZWZ[\PMM`MK]\M UM\PWL?PI\M^MZM`MK]\MTI[\LQL]VLWZM^MZ[M[;WJMNWZM_MKIVILL]VLW\WW]Z KWUUIVL[_MVMML\WILLIV]VLWUM\PWL\W\PM+WUUIVLQV\MZNIKM" SXEOLFLQWHUIDFH&RPPDQG^ SXEOLFYRLGH[HFXWH  SXEOLFYRLGXQGR  `

+HUH·VWKHQHZXQGR PHWKRG




&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 27

WKHFRPPDQGSDWWHUQ



4M\¼[[\IZ\_Q\P\PM4QOP\7V+WUUIVL"QN \PM4QOP\7V+WUUIVL¼[M`MK]\MUM\PWL _I[KITTML\PMV\PMWVUM\PWL_I[TI[\KITTML?MSVW_\PI\]VLWVMML[\WLW\PM WXXW[Q\MWN \PQ[JaKITTQVO\PMWNNUM\PWL SXEOLFFODVV/LJKW2Q&RPPDQGLPSOHPHQWV&RPPDQG^ /LJKWOLJKW  SXEOLF/LJKW2Q&RPPDQG /LJKWOLJKW ^ WKLVOLJKW OLJKW `  SXEOLFYRLGH[HFXWH ^ OLJKWRQ  `  SXEOLFYRLGXQGR ^ XUQVWKH H[HFXWH W XQGR  OLJKWRII  R ` OLJKWRQV WKHOLJKW ` VLPSO\WXUQV

EDFNRII

8QMKMWN KISM 6W_NWZ\PM4QOP\7NN+WUUIVL0MZM\PM]VLWUM\PWLR][\ VMML[\WKITT\PM4QOP\¼[WVUM\PWL

SXEOLFFODVV/LJKW2II&RPPDQGLPSOHPHQWV&RPPDQG^ /LJKWOLJKW  SXEOLF/LJKW2II&RPPDQG /LJKWOLJKW ^ WKLVOLJKW OLJKW `  SXEOLFYRLGH[HFXWH ^ OLJKWRII  `  SXEOLFYRLGXQGR ^  QGR WXUQV OLJKWRQ  $QGKHUHXDFNRQ E ` KW WKHOLJ `

+W]TL\PQ[JMIVaMI[QMZ'7SIa_MIZMV¼\LWVMaM\#_MVMML\W_WZSITQ\\TM []XXWZ\QV\W\PM:MUW\M+WV\ZWT\WPIVLTM\ZIKSQVO\PMTI[\J]\\WVXZM[[ML IVL\PM]VLWJ]\\WVXZM[[ \RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 28

LPSOHPHQWLQJXQGR




SXEOLFFODVV5HPRWH&RQWURO:LWK8QGR^ &RPPDQG>@RQ&RPPDQGV DVWFRPPDQG 7KLVLVZKHUHZH·OOVWDVKWKHO &RPPDQG>@RII&RPPDQGV  WRQ EXW GR HXQ WK IRU HG &RPPDQGXQGR&RPPDQG H[HFXW  SXEOLF5HPRWH&RQWURO:LWK8QGR ^ RQ&RPPDQGV QHZ&RPPDQG>@ RII&RPPDQGV QHZ&RPPDQG>@  &RPPDQGQR&RPPDQG QHZ1R&RPPDQG  IRU LQWL LL ^ -XVWOLNHWKHRWKHUVORWVXQGR RQ&RPPDQGV>L@ QR&RPPDQG RII&RPPDQGV>L@ QR&RPPDQG VWDUWVRIIZLWKD1R&RPPDQGVR ` SUHVVLQJXQGREHIRUHDQ\RWKHU XQGR&RPPDQG QR&RPPDQG EXWWRQZRQ·WGRDQ\WKLQJDWDOO `  SXEOLFYRLGVHW&RPPDQG LQWVORW&RPPDQGRQ&RPPDQG&RPPDQGRII&RPPDQG ^ RQ&RPPDQGV>VORW@ RQ&RPPDQG RII&RPPDQGV>VORW@ RII&RPPDQG `  :KHQDEXWWRQLVSUHVVHGZHWDNH SXEOLFYRLGRQ%XWWRQ:DV3XVKHG LQWVORW ^ RQ&RPPDQGV>VORW@H[HFXWH  WKHFRPPDQGDQGILUVWH[HFXWH XQGR&RPPDQG RQ&RPPDQGV>VORW@ LWWKHQZHVDYHDUHIHUHQFHWR ` LWLQWKHXQGR&RPPDQGLQVWDQFH  YDULDEOH:HGRWKLVIRUERWK´RQµ SXEOLFYRLGRII%XWWRQ:DV3XVKHG LQWVORW ^ FRPPDQGVDQG´RIIµFRPPDQGV RII&RPPDQGV>VORW@H[HFXWH  XQGR&RPPDQG RII&RPPDQGV>VORW@ ` :KHQWKHXQGREXWWRQLVSUHVVHGZH  SXEOLFYRLGXQGR%XWWRQ:DV3XVKHG ^ LQYRNHWKHXQGR PHWKRGRIWKH XQGR&RPPDQGXQGR  FRPPDQGVWRUHGLQXQGR&RPPDQG ` 7KLVUHYHUVHVWKHRSHUDWLRQRIWKH  ODVWFRPPDQGH[HFXWHG SXEOLF6WULQJWR6WULQJ ^ WR6WULQJFRGHKHUH ` `



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 29

WKHFRPPDQGSDWWHUQ

@DUJV ^ 5HPRWH&RQWURO:LWK8QGRUHPRWH&RQWURO QHZ5HPRWH&RQWURO:LWK8QGR   XQGR  /LJKWOLYLQJ5RRP/LJKW QHZ/LJKW ³/LYLQJ5RRP´  &UHDWHD/LJKWDQGRXUQHZRPPDQGV  HQDEOHG/LJKW2QDQG2II& /LJKW2Q&RPPDQGOLYLQJ5RRP/LJKW2Q  QHZ/LJKW2Q&RPPDQG OLYLQJ5RRP/LJKW  /LJKW2II&RPPDQGOLYLQJ5RRP/LJKW2II  QHZ/LJKW2II&RPPDQG OLYLQJ5RRP/LJKW   UHPRWH&RQWUROVHW&RPPDQG OLYLQJ5RRP/LJKW2QOLYLQJ5RRP/LJKW2II   $GGWKHOLJKW&RPPDQGV UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   WRWKHUHPRWHLQVORW UHPRWH&RQWURORII%XWWRQ:DV3XVKHG   6\VWHPRXWSULQWOQ UHPRWH&RQWURO  7XUQWKHO LJKWRQWKHQ UHPRWH&RQWUROXQGR%XWWRQ:DV3XVKHG  RIIDQGWKHQXQGR UHPRWH&RQWURORII%XWWRQ:DV3XVKHG   UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   6\VWHPRXWSULQWOQ UHPRWH&RQWURO  7KHQWXUQWKHOLJKWRIIEDFNRQDQGXQGR UHPRWH&RQWUROXQGR%XWWRQ:DV3XVKHG  ` `

)VLPMZM¼[\PM\M[\ZM[]T\[ )LOH(GLW:LQGRZ+HOS8QGR&RPPDQGV'HI\(QWURS\

MDYD5HPRWH/RDGHU /LJKWLVRQ /LJKWLVRII

7XUQWKHOLJKWRQWKHQRII

+HUH·VWKH/LJKWFRPPDQGV

5HPRWH&RQWURO >VORW@KHDG¿UVWFRPPDQGXQGR/LJKW2Q&RPPDQGKHDG¿UVWFRPPDQGXQGR/LJKW2II&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >XQGR@KHDG¿UVWFRPPDQGXQGR/LJKW2II&RPPDQG 1RZXQG

8QGRZDVSUHVVHGWKH/LJKW2II&RPPDQG XQGR WXUQVWKHOLJKWEDFNRQ

/LJKWLVRQ /LJKWLVRII /LJKWLVRQ

RKROGVWKH /LJKW2II&RPPDQGWKHODVW FRPPDQGLQYRNHG

7KHQZHWXUQWKHOLJKWRIIWKHQEDFNRQ

5HPRWH&RQWURO >VORW@KHDG¿UVWFRPPDQGXQGR/LJKW2Q&RPPDQGKHDG¿UVWFRPPDQGXQGR/LJKW2II&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >XQGR@KHDG¿UVWFRPPDQGXQGR/LJKW2Q&RPPDQG /LJKWLVRII

8QGRZDVSUHVVHGWKHOLJKWLVEDFNRII

1RZXQGRKROGVWKH/LJKW2Q&RPPDQGWKHODVW FRPPDQGLQYRNHG \RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 30

ZHQHHGWRNHHSVRPHVWDWHIRUXQGR

=[QVO[\I\M\WQUXTMUMV\=VLW 7SIaQUXTMUMV\QVO]VLWWV\PM4QOP\_I[QV[\Z]K\Q^MJ]\ITQ\\TM\WWMI[a
&HLOLQJ)DQ KLJK PHGLXP ORZ RII JHW6SHHG



SXEOLFFODVV&HLOLQJ)DQ^ KROGVORFDO HLOLQJ)DQFODVV WKHFHLOLQJIDQ & KH W SXEOLFVWDWLF¿QDOLQW+,*+  DW WK I R 1RWLFH WLQJWKHVSHHG SXEOLFVWDWLF¿QDOLQW0(',80  VWDWHUHSUHVHQ SXEOLFVWDWLF¿QDOLQW/2:  SXEOLFVWDWLF¿QDOLQW2))  6WULQJORFDWLRQ LQWVSHHG  SXEOLF&HLOLQJ)DQ 6WULQJORFDWLRQ ^ WKLVORFDWLRQ ORFDWLRQ +PPVRWRSURSHUO\ VSHHG 2)) ` LPSOHPHQWXQGR,·GKDYH  WRWDNHWKHSUHYLRXVVSHHGRI SXEOLFYRLGKLJK ^ WKHFHLOLQJIDQLQWRDFFRXQW VSHHG +,*+ FRGHWRVHWIDQWRKLJK `  SXEOLFYRLGPHGLXP ^ VSHHG 0(',80 FRGHWRVHWIDQWRPHGLXP ` 7KHVHPHWKRGVVHWWKH  VSHHGRIWKHFHLOLQJIDQ SXEOLFYRLGORZ ^ VSHHG /2: FRGHWRVHWIDQWRORZ `  SXEOLFYRLGRII ^ VSHHG 2)) FRGHWRWXUQIDQRII `  HFXUUHQW SXEOLFLQWJHW6SHHG ^ :HFDQJHWWK HLOLQJIDQ F KH UHWXUQVSHHG W VSHHGRI  ` XVLQJJHW6SHHG `



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 31

WKHFRPPDQGSDWWHUQ

)LLQVO=VLW\W\PMKMQTQVONIVKWUUIVL[ 6W_TM\¼[\IKSTMILLQVO]VLW\W\PM^IZQW][+MQTQVO.IVKWUUIVL[
SXEOLFFODVV&HLOLQJ)DQ+LJK&RPPDQGLPSOHPHQWV&RPPDQG^ &HLOLQJ)DQFHLOLQJ)DQ LQWSUHY6SHHG  SXEOLF&HLOLQJ)DQ+LJK&RPPDQG &HLOLQJ)DQFHLOLQJ)DQ ^ WKLVFHLOLQJ)DQ FHLOLQJ)DQ `  SXEOLFYRLGH[HFXWH ^ SUHY6SHHG FHLOLQJ)DQJHW6SHHG  FHLOLQJ)DQKLJK  `  SXEOLFYRLGXQGR ^ LI SUHY6SHHG &HLOLQJ)DQ+,*+ ^ FHLOLQJ)DQKLJK  `HOVHLI SUHY6SHHG &HLOLQJ)DQ0(',80 ^ FHLOLQJ)DQPHGLXP  `HOVHLI SUHY6SHHG &HLOLQJ)DQ/2: ^ FHLOLQJ)DQORZ  `HOVHLI SUHY6SHHG &HLOLQJ)DQ2)) ^ FHLOLQJ)DQRII  ` ` `

FDOVWDWH :H·YHDGGHGOR RIWKH N DF WU S WRNHH IWKHIDQ SUHYLRXVVSHHGR

,QH[HFXWHEHIRUHZHFKDQJH WKHVSHHGRIWKHIDQZH QHHGWRILUVWUHFRUGLWV SUHYLRXVVWDWHMXVWLQFDVHZH QHHGWRXQGRRXUDFWLRQV

7RXQGRZHVHWWKHVSHHG RIWKHIDQEDFNWRLWV SUHYLRXVVSHHG

YiX`e gfn\i :H¶YHJRWWKUHHPRUHFHLOLQJIDQFRPPDQGVWRZULWHORZPHGLXPDQGRII&DQ\RXVHH KRZWKHVHDUHLPSOHPHQWHG"

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 32

WHVWWKHFHLOLQJIDQ

/M\ZMILa\W\M[\\PMKMQTQVONIV
SXEOLFFODVV5HPRWH/RDGHU^  SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 5HPRWH&RQWURO:LWK8QGRUHPRWH&RQWURO QHZ5HPRWH&RQWURO:LWK8QGR   &HLOLQJ)DQFHLOLQJ)DQ QHZ&HLOLQJ)DQ ³/LYLQJ5RRP´   &HLOLQJ)DQ0HGLXP&RPPDQGFHLOLQJ)DQ0HGLXP  +HUHZHLQVWDQWLDWHWKUHH QHZ&HLOLQJ)DQ0HGLXP&RPPDQG FHLOLQJ)DQ  FRPPDQGVKLJKPHGLXPDQGRII &HLOLQJ)DQ+LJK&RPPDQGFHLOLQJ)DQ+LJK  QHZ&HLOLQJ)DQ+LJK&RPPDQG FHLOLQJ)DQ  &HLOLQJ)DQ2II&RPPDQGFHLOLQJ)DQ2II  +HUHZHSXWPHGLXPLQ QHZ&HLOLQJ)DQ2II&RPPDQG FHLOLQJ)DQ  VORW]HURDQGKLJKLQ  VORWRQH:HDOVRORDG UHPRWH&RQWUROVHW&RPPDQG FHLOLQJ)DQ0HGLXPFHLOLQJ)DQ2II  XSWKHRIIFRPPDQGV UHPRWH&RQWUROVHW&RPPDQG FHLOLQJ)DQ+LJKFHLOLQJ)DQ2II   UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   )LUVWWXUQWKHIDQRQPHGLXP UHPRWH&RQWURORII%XWWRQ:DV3XVKHG   7KHQWXUQLWRII 6\VWHPRXWSULQWOQ UHPRWH&RQWURO  UHPRWH&RQWUROXQGR%XWWRQ:DV3XVKHG  8QGR,WVKRXOGJREDFNWRPHGLXP  UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   7XUQLWRQWRKLJKWKLVWLPH 6\VWHPRXWSULQWOQ UHPRWH&RQWURO  RPHGLXP $QGRQHPRUHXQGRLWVKRXOGJREDFNW UHPRWH&RQWUROXQGR%XWWRQ:DV3XVKHG  ` `



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 33

WKHFRPPDQGSDWWHUQ


)LOH(GLW:LQGRZ+HOS8QGR7KLV

MDYD5HPRWH/RDGHU /LYLQJ5RRPFHLOLQJIDQLVRQPHGLXP /LYLQJ5RRPFHLOLQJIDQLVRII

7XUQWKHFHLOLQJIDQRQ PHGLXPWKHQWXUQLWRII

V +HUHDUHWKHFRPPDQG LQWKHUHPRWHFRQWURO

5HPRWH&RQWURO >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ0HGLXP&RPPDQGKHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ2II &RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ+LJK&RPPDQGKHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ2II&RP PDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG DQGXQGRKDVWKHODVW >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG FRPPDQGH[HFXWHGWKH >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG &HLOLQJ)DQ2I&RPPDQG >XQGR@KHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ2II&RPPDQG /LYLQJ5RRPFHLOLQJIDQLVRQPHGLXP /LYLQJ5RRPFHLOLQJIDQLVRQKLJK

8QGRWKHODVWFRPPDQGDQGLWJRHVEDFNWRPHGLXP 1RZWXUQLWRQKLJK

5HPRWH&RQWURO >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ0HGLXP&RPPDQGKHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ2II &RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ+LJK&RPPDQGKHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ2II&RP PDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGXQGR1R&RPPDQGKHDG¿UVWFRPPDQGXQGR1R&RPPDQG 1RZKLJKLVWKHODVW >XQGR@KHDG¿UVWFRPPDQGXQGR&HLOLQJ)DQ+LJK&RPPDQG /LYLQJ5RRPFHLOLQJIDQLVRQPHGLXP 

FRPPDQGH[HFXWHG

2QHPRUHXQGRDQGWKHFHLOLQJIDQ JRHVEDFNWRPHGLXPVSHHG

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 34

PDFURFRPPDQGV

-^MZaZMUW\MVMML[I8IZ\a5WLM

6WHUHR RQ RII VHW&G

:KDW·VWKHSRLQWRIKDYLQJDUHPRWHLI\RXFDQ·W SXVKRQHEXWWRQDQGKDYHWKHOLJKWVGLPPHGWKH VWHUHRDQG79WXUQHGRQDQGVHWWRD'9'DQGWKH KRWWXEÀUHGXS"

79

VHW'YG

RQ

VHW5DGLR

RII

VHW9ROXPH

VHW,QSXW&KDQQHO

+RWWXE

VHW9ROXPH

RQ

/LJKW

RII FLUFXODWH MHWV2Q MHWV2II

RQ RII GLP

VHW7HPSHUDWXUH

+PP RXUUHPRWH FRQWUROZRXOGQHHGD EXWWRQIRUHDFKGHYLFH, GRQ·WWKLQNZHFDQGRWKLV

+ROGRQ6XHGRQ·WEH VRVXUH,WKLQNZHFDQ GRWKLVZLWKRXWFKDQJLQJWKH UHPRWHDWDOO

0DU\·VLGHDLVWRPDNHDQHZ NLQGRI&RPPDQGWKDWFDQ H[HFXWHRWKHU&RPPDQGV DQGPRUHWKDQRQHRIWKHP 3UHWW\JRRGLGHDKXK" SXEOLFFODVV0DFUR&RPPDQGLPSOHPHQWV&RPPDQG^ &RPPDQG>@FRPPDQGV  SXEOLF0DFUR&RPPDQG &RPPDQG>@FRPPDQGV ^ WKLVFRPPDQGV FRPPDQGV 7DNHDQDUUD\RI ` &RPPDQGVDQGVWRUHWKHPLQWKH0DFUR&RPPDQG  SXEOLFYRLGH[HFXWH ^ IRU LQWL LFRPPDQGVOHQJWKL ^ FRPPDQGV>L@H[HFXWH  ` :KHQWKHPDFURJHWVH[HFXWHGE\WKHUHPRWH ` H[HFXWHWKRVHFRPPDQGVRQHDWDWLPH `



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 35

WKHFRPPDQGSDWWHUQ

=[QVOIUIKZWKWUUIVL 4M\¼[[\MX\PZW]OPPW__M][MIUIKZWKWUUIVL" 

.QZ[\_MKZMI\M\PM[M\WN KWUUIVL[_M_IV\\WOWQV\W\PMUIKZW"

&UHDWHDOOWKHGHYLFHVDOLJKW

/LJKWOLJKW QHZ/LJKW ³/LYLQJ5RRP´  WYVWHUHRDQGKRWWXE 79WY QHZ79 ³/LYLQJ5RRP´  6WHUHRVWHUHR QHZ6WHUHR ³/LYLQJ5RRP´  +RWWXEKRWWXE QHZ+RWWXE  1RZFUHDWHDOOWKH2Q  FRPPDQGVWRFRQWUROWKHP /LJKW2Q&RPPDQGOLJKW2Q QHZ/LJKW2Q&RPPDQG OLJKW  6WHUHR2Q&RPPDQGVWHUHR2Q QHZ6WHUHR2Q&RPPDQG VWHUHR  792Q&RPPDQGWY2Q QHZ792Q&RPPDQG WY  +RWWXE2Q&RPPDQGKRWWXE2Q QHZ+RWWXE2Q&RPPDQG KRWWXE 

6KDUSHQ \RXU SHQFLO



?M_QTTIT[WVMMLKWUUIVL[NWZ\PMWNN J]\\WV[ _ZQ\M\PMKWLM\WKZMI\M\PW[MPMZM"

6M`\_MKZMI\M\_WIZZIa[WVMNWZ\PM7VKWUUIVL[IVLWVMNWZ\PM7NN KWU UIVL[IVLTWIL\PMU_Q\P\PMKWZZM[XWVLQVOKWUUIVL["

&UHDWHDQDUUD\IRU2Q DQGDQDUUD\IRU2II FRPPDQGV

&RPPDQG>@SDUW\2Q ^OLJKW2QVWHUHR2QWY2QKRWWXE2Q` &RPPDQG>@SDUW\2II ^OLJKW2IIVWHUHR2IIWY2IIKRWWXE2II`  DQGFUHDWHWZR 0DFUR&RPPDQGSDUW\2Q0DFUR QHZ0DFUR&RPPDQG SDUW\2Q  0DFUR&RPPDQGSDUW\2II0DFUR QHZ0DFUR&RPPDQG SDUW\2II  FRUUHVSRQGLQJPDFURV

WRKROGWKHP




$VVLJQWKHPDFUR FRPPDQGWRDEXWWRQDV ZHZRXOGDQ\FRPPDQG \RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 36

PDFURFRPPDQGH[HUFLVH



.QVITTa_MR][\VMML\WX][P[WUMJ]\\WV[IVL[MMQN \PQ[_WZS[ 6\VWHPRXWSULQWOQ UHPRWH&RQWURO  6\VWHPRXWSULQWOQ ³3XVKLQJ0DFUR2Q´  UHPRWH&RQWURORQ%XWWRQ:DV3XVKHG   6\VWHPRXWSULQWOQ ³3XVKLQJ0DFUR2II´  UHPRWH&RQWURORII%XWWRQ:DV3XVKHG  

+HUH·VWKHRXWSXW

)LOH(GLW:LQGRZ+HOS
MDYD5HPRWH/RDGHU

+HUHDUHWKHWZRP

DFURFRPPDQGV 5HPRWH&RQWURO >VORW@KHDG¿UVWFRPPDQGSDUW\0DFUR&RPPDQGKHDG¿UVWFRPPDQGSDUW\0DFUR&RPPDQG >VORW@KHDG¿UVWFRPPDQGSDUW\1R&RPPDQGKHDG¿UVWFRPPDQGSDUW\1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGSDUW\1R&RPPDQGKHDG¿UVWFRPPDQGSDUW\1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGSDUW\1R&RPPDQGKHDG¿UVWFRPPDQGSDUW\1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGSDUW\1R&RPPDQGKHDG¿UVWFRPPDQGSDUW\1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGSDUW\1R&RPPDQGKHDG¿UVWFRPPDQGSDUW\1R&RPPDQG >VORW@KHDG¿UVWFRPPDQGSDUW\1R&RPPDQGKHDG¿UVWFRPPDQGSDUW\1R&RPPDQG >XQGR@KHDG¿UVWFRPPDQGSDUW\1R&RPPDQG 3XVKLQJ0DFUR2Q /LJKWLVRQ /LYLQJ5RRPVWHUHRLVRQ /LYLQJ5RRP79LVRQ /LYLQJ5RRP79FKDQQHOLVVHWIRU'9' +RWWXELVKHDWLQJWRDVWHDPLQJGHJUHHV +RWWXELVEXEEOLQJ 3XVKLQJ0DFUR2II /LJKWLVRII /LYLQJ5RRPVWHUHRLVRII /LYLQJ5RRP79LVRII +RWWXELVFRROLQJWRGHJUHHV

$OOWKH&RPPDQGVLQWKHPDFUR DUHH[HFXWHGZKHQZHLQYRNH WKHRQPDFUR

DQGZKHQZHLQYRNHWKHRII PDFUR/RRNVOLNHLWZRUNV





&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 37

WKHFRPPDQGSDWWHUQ

([HUFLVH

@FRPPDQGV SXEOLF0DFUR&RPPDQG &RPPDQG>@FRPPDQGV ^ WKLVFRPPDQGV FRPPDQGV ` SXEOLFYRLGH[HFXWH ^ IRU LQWL LFRPPDQGVOHQJWKL ^ FRPPDQGV>L@H[HFXWH  ` ` SXEOLFYRLGXQGR ^

` `

Q:

$O)ALWAYSNEEDARECEIVER 7HYCANTTHECOMMANDOBJECT IMPLEMENTTHEDETAILSOFTHE EXECUTE METHOD

A:

)NGENERAL WESTRIVEFORhDUMBv COMMANDOBJECTSTHATJUSTINVOKE ANACTIONONARECEIVERHOWEVER THEREAREMANYEXAMPLESOFhSMARTv COMMANDOBJECTSTHATIMPLEMENT MOST IFNOTALL OFTHELOGICNEEDED TOCARRYOUTAREQUEST#ERTAINLY YOUCANDOTHISJUSTKEEPINMIND YOULLNOLONGERHAVETHESAMELEVEL OFDECOUPLINGBETWEENTHEINVOKER ANDRECEIVER NORWILLYOUBEABLETO PARAMETERIZEYOURCOMMANDSWITH RECEIVERS

there are no Dumb Questions

Q:

(OWCAN)IMPLEMENTAHISTORY OFUNDOOPERATIONS)NOTHERWORDS )WANTTOBEABLETOPRESSTHEUNDO BUTTONMULTIPLETIMES

A:

'REATQUESTION)TSPRETTY EASYACTUALLYINSTEADOFKEEPINGJUST AREFERENCETOTHELAST#OMMAND EXECUTED YOUKEEPASTACKOFPREVIOUS COMMANDS4HEN WHENEVERUNDOIS PRESSED YOURINVOKERPOPSTHEFIRST ITEMOFFTHESTACKANDCALLSITSUNDO METHOD

Q:

#OULD)HAVEJUSTIMPLEMENTED 0ARTY-ODEASA#OMMANDBY CREATINGA0ARTY#OMMANDAND PUTTINGTHECALLSTOEXECUTETHEOTHER #OMMANDSINTHE0ARTY#OMMANDS EXECUTE METHOD

A:

9OUCOULDHOWEVER YOUD ESSENTIALLYBEhHARDCODINGvTHE PARTYMODEINTOTHE0ARTY#OMMAND 7HYGOTOTHETROUBLE7ITHTHE -ACRO#OMMAND YOUCANDECIDE DYNAMICALLYWHICH#OMMANDSYOU WANTTOGOINTOTHE0ARTY#OMMAND SOYOUHAVEMOREFLEXIBILITYUSING -ACRO#OMMANDS)NGENERAL THE -ACRO#OMMANDISAMOREELEGANT SOLUTIONANDREQUIRESLESSNEWCODE \RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 38

TXHXLQJUHTXHVWV

5WZM][M[WN\PM+WUUIVL8I\\MZV"Y]M]QVOZMY]M[\[ +WUUIVL[OQ^M][I_Ia\WXIKSIOMIXQMKMWN  KWUX]\I\QWVIZMKMQ^MZIVLI[M\WN IK\QWV[IVLXI[[Q\ IZW]VLI[IÅZ[\KTI[[WJRMK\6W_\PMKWUX]\I\QWVQ\[MTN  UIaJMQV^WSMLTWVOIN\MZ[WUMKTQMV\IXXTQKI\QWVKZMI\M[ \PMKWUUIVLWJRMK\1VNIK\Q\UIaM^MVJMQV^WSMLJaI LQNNMZMV\\PZMIL?MKIV\ISM\PQ[[KMVIZQWIVLIXXTaQ\\W UIVa][MN]TIXXTQKI\QWV[[]KPI[[KPML]TMZ[\PZMILXWWT[ IVLRWJY]M]M[\WVIUMINM_

VW

RP S DW LRQ

TXH

5H

DV N

X

DQ FLDO&RPS W

LOHU7

7D VN

HW FK

DW LRQ

X

VW TXH

PS

HW ZRUN)

1

Q )L

5H

   

&R  

&R P S LO H U

Y ]M

]M

DV N

PS

U

 H[HFXWH

VW 'L

'   LOHU7

5D \7UDFH

H[HFXWH

Q )L

DW LRQ

 



H[HFXWH

H[HFXWH

H[HFXWH

HW FK

 

Q )L



2W J

RZ QORDG

H[HFXWH

H[HFXWH

&R  

HW ZRUN)

DQ FLDO&RPS W

H[HFXWH

LEX HG& W

 5D \7UDFH H[HFXWH

  

H[HFXWH

H[HFXWH

RZ QORDG





1  

H[HFXWH

H[HFXWH

 



1UIOQVMIRWJY]M]M"aW]ILLKWUUIVL[\W\PMY]M]M WVWVMMVLIVLWV\PMW\PMZMVL[Q\IOZW]XWN \PZMIL[
'   

LQJWKH 2EMHFWVLPSOHPHQWFHDUH FRPPDQGLQWHUIDXHXH DGGHGWRWKHT

WDWLRQ

+WUUIVL[

X

DQ FLDO&RPS W



 

1   

&R P S LO H U

6W\M\PI\\PMRWJY]M]MKTI[[M[IZM\W\ITTaLMKW]XTMLNZWU\PMWJ RMK\[\PI\IZMLWQVO\PMKWUX]\I\QWV7VMUQV]\MI\PZMILUIaJM KWUX]\QVOIÅVIVKQITKWUX]\I\QWVIVL\PMVM`\Q\UIaJMZM\ZQM^QVO [WUM\PQVONZWU\PMVM\_WZS
 

K UH D G


RZ

7 K UH D G

TXH

H[HFXWH H[HFXWH

VW

H[HFXWH

5D \7UDFH

H[HFXWH

HW ZRUN)

5H



  7

'   

 

7 K UH D G

 

 

 

 

HW FK

   

7KUHDGVUHPRYHFRPPDQGV IURPWKHTXHXHRQHE\RQH DQGFDOOWKHLUH[HFXWH  PHWKRG2QFHFRPSOHWH WKH\JREDFNIRUDQHZ FRPPDQGREMHFW

7D VN

7KLVJLYHVXVDQHIIHFWLYHZD\ WROLPLWFRPSXWDWLRQWRD IL[HGQXPEHURIWKUHDGV

G

 QORD 7 K UH D G

YiX`e gfn\i +RZPLJKWDZHEVHUYHUPDNH XVHRIVXFKDTXHXH":KDWRWKHU DSSOLFDWLRQVFDQ\RXWKLQNRI"

&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 39

WKHFRPPDQGSDWWHUQ

5WZM][M[WN\PM+WUUIVL8I\\MZV"TWOOQVOZMY]M[\[
LQWHUIDFH!

!

0W_LWM[\PQ[_WZS')[_MM`MK]\MKWUUIVL[_M[\WZMIPQ[\WZaWN \PMUWVLQ[S ?PMVIKZI[PWKK]Z[_MZMTWIL\PMKWUUIVLWJRMK\[IVLQV^WSM\PMQZM`MK]\M UM\PWL[QVJI\KPIVLQVWZLMZ

H[HFXWH XQGR VWRUH ORDG

6W_\PQ[SQVLWN TWOOQVO_W]TLV¼\UISM[MV[MNWZIZMUW\MKWV\ZWT#PW_M^MZ\PMZM IZMUIVaIXXTQKI\QWV[\PI\QV^WSMIK\QWV[WVTIZOMLI\I[\Z]K\]ZM[\PI\KIV¼\JMY]QKSTa [I^MLMIKP\QUMIKPIVOMQ[UILM*a][QVOTWOOQVO_MKIV[I^MITT\PMWXMZI\QWV[ [QVKM\PMTI[\KPMKSXWQV\IVLQN \PMZMQ[I[a[\MUNIQT]ZMIXXTa\PW[MWXMZI\QWV[\WW]Z KPMKSXWQV\
5HVWRUH

G ORD

 &

$VHDFKFRPPDQG LVH[HFXWHGLWLV VWRUHGRQGLVN

&UDVK

ORDG

DQG2

H[HFXWH VWRUH ORDG

&R PPDQG 7

 

ORD G

H[HFXWH VWRUH ORDG

RP P

QH

DQG7K

H $IWHUDV\VWHPIDLOXU WKHREMHFWVDUH  UHORDGHGDQGH[HFXWHG HU RUG FW UUH LQWKHFR

 H[ HF XWH H[HFXWH

ZR

UH

&

RP P

H

H[HFXWH VWRUH ORDG

UH VWR

H[HFXWH VWRUH ORDG

&

RP P

XWH [HF H

, QY R NH U

H

ZR

&R PPDQG 7

 

, QY R N H U

H[HFXWH VWRUH ORDG

UH

DQG2

H[HFXWH

 H[ HF XWH

VWRUH

QH

H[HFXWH VWRUH ORDG

RP P

:HDGGWZRPHWKRGV IRUORJJLQJ

VWR UH

 &

XWH [HF H

&RPPDQG

DQG7K

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 40

\RXUGHVLJQWRROER[


V 223ULQFLSOH

22%DVLFV

223DWWHLQUHVQDILVIQHDPVLO\DRRQIHDOJRWRULWKPPVDQDO\

GHFRXSOHVDQREMHFWPDNLQJ DUHTXHVWIURPWKHRQHWKDW NQRZVKRZWRSHUIRUPLW FHQWHURIWKLVGHFRXSOLQJDQG HQFDSVXODWHVDUHFHLYHUZLWK DQDFWLRQ RUVHWRIDFWLRQV 

ƒ $QLQYRNHUPDNHVDUHTXHVWRI D&RPPDQGREMHFWE\FDOOLQJ LWVH[HFXWH PHWKRGZKLFK LQYRNHVWKRVHDFWLRQVRQWKH UHFHLYHU

RW LQWHUIDFHVQ 3URJUDPWR RQV WL WD LPSOHPHQ GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW RE EHWZHHQ

EVWUDFWL 'HSHQGRQD QFUHWHFODVVHV GHSHQGRQFR

ƒ 7KH&RPPDQG3DWWHUQ

ƒ $&RPPDQGREMHFWLVDWWKH

$EVWUDFWLRQ RQ (QFDSVXODWL DWYDULHV ZK H P LV DW XO SK SV (QFD QFH 3RO\PRU RYHULQKHULWD Q LR VLW SR H RP QF )DYRUF ,QKHULWD

QIRU XOGEHRSHI &ODVVHVVKR HG RU RV FO W EX Q H[WHQVLR LRQ PRGLILFDW W RQV'RQR

:MDD=LHGAFLK

ƒ ,QYRNHUVFDQEHSDUDPHWHUL]HG ZLWK&RPPDQGVHYHQ G\QDPLFDOO\DWUXQWLPH

HFRXSOHDQ :KHQ\RXQHHGWRTXGHVWVIURP UH REMHFWPDNLQJ WNQRZKRZ WKHREMHFWVWKD UHTXHVWVXVH WRSHUIRUPWKH WWHUQ WKH&RPPDQG3D

RQ YLWGHDQ GUHIGH GLVR PWLW WDG DFMHHVRKFW DN 3URKD 6WUD $QWW QG 2EWHVHJ\HFWHURYH UMHRKH\KHVFWGDWH LFVLQDOIHO\DQ UQHZD) HH HI LWODP DFKWUERDRHWFW DP\REFW LWR HDF\  GOJDP DOLOL' RU\Q XODQG HVKP W K RE WV Q W WD HW OH SH V D HQFDGHSV' ERQHDHQV)UVW HV I HJ 0 WR $ \ QJ QJ DW V U LH MH WL WU KD R  6 HD OLW RE F LW FW EL  KDV GVKRFWRQXWO\EX Q H FU FW VH D VL OH EO D U WH MH DV X LE FO QJ DW IR RE GD QJ VS H[ WL D WK UHKDQLQRQWHHUIDFHSU HFWVZLWODHQ HD DGVIO QW XUMHXS H OLH QVREG U LQWHZUFKH WHVW LGFRLI ROSRUHLQTX (DQ IR LHFU RPW HRY VVGLORWQJ Q IUOH W DF V RW \ ED HQ [W F WO UI Q RU H HG HQ FK UH WH J DW J RU HS KL QG LQ D D D RU Z LQ I G SH V WV V HF 6 GH H QJSHWURH RUWRODVVVXEHVFOGDVDHFVLQG VHVXGODOHWHWV 'SHGHQG LG DVDSKR WHLYG YDU\GHLQ ODDW UHUQHQ (YLFOQFHW 0 FU FH  EF RQ H DQ G VX F VW Q LU \R W D LQ O\ OH J KH H P DO LQ W P U\ RQ &HVRHVWR)DFLMHWWRFWWKHULRQHEWR\WOHWWKH HUXHQW HFLFLIDO\LDQLWQJWL\FF DXDOWRWHPVSDW D DW IXQFWLLQRQVWRI DVDQURE LQVWDQWLDWLHQWVZLWKGLII DFODVVGHSDIH PHWHUL]HFO RUORJUHTXHVWVDQG UD  VXEFODVVHVUHTXHVWVTXHXH SHUDWLRQV DEOHR VXSSRUWXQGR

ƒ &RPPDQGVPD\VXSSRUWXQGR E\LPSOHPHQWLQJDQXQGR PHWKRGWKDWUHVWRUHVWKHREMHFW WRLWVSUHYLRXVVWDWHEHIRUH WKHH[FXWH PHWKRGZDVODVW FDOOHG

ƒ 0DFUR&RPPDQGVDUHDVLPSOH H[WHQVLRQRI&RPPDQGWKDW DOORZPXOWLSOHFRPPDQGVWR EHLQYRNHG/LNHZLVH0DFUR &RPPDQGVFDQHDVLO\VXSSRUW XQGR 

ƒ ,QSUDFWLFHLWLVQRWXQFRPPRQ IRU´VPDUWµ&RPPDQGREMHFWV WRLPSOHPHQWWKHUHTXHVW WKHPVHOYHVUDWKHUWKDQ GHOHJDWLQJWRDUHFHLYHU

ƒ &RPPDQGVPD\DOVREHXVHG WRLPSOHPHQWORJJLQJDQG WUDQVDFWLRQDOV\VWHPV



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 41

WKHFRPPDQGSDWWHUQ




 

 

 









  

 





   +)** .* &%   &$$%   *+ & + &%* %  ) -)  ) ,**  %) && ,)-&) + +/

 + * + ) -)* % + )$&+ &%+)&#  !+ ++ "%&.* + + &%* % + ) -)  %&+) + % &$$% % &   !+ ++ "%&.* &. +& + + %* &%    &$$% %'*,#+* + *

 &# & ,*+&$) % + &$$% '++)%  ,)  )*+ &$$% &!+ &%+)&## + *  %-&") % ) -) ) 

 &$'%/ ++ &+ ,* .&) & $&,+ ,* %**  ## &$$%* ')&-  + *   &&" % + * ')*&% .)  % +#/ &,'#  )) * &,+  )(,*+    +)**  %+ & + *

\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 42

H[HUFLVHVROXWLRQV

([HUFLVH VROXWLRQV

5I\KP\PMLQVMZWJRMK\[IVLUM\PWL[_Q\P\PMKWZZM[XWVLQVOVIUM[NZWU\PM +WUUIVL8I\\MZV

'LQHU

&RPPDQG3DWWHUQ

Waitress

Command

Short Order Cook

execute()

orderUp()

Client

Order

Invoker

Customer

Receiver

takeOrder()

setCommand()

6KDUSHQ \RXU SHQFLO SXEOLFFODVV*DUDJH'RRU2SHQ&RPPDQGLPSOHPHQWV&RPPDQG^ *DUDJH'RRUJDUDJH'RRU SXEOLF*DUDJH'RRU2SHQ&RPPDQG *DUDJH'RRUJDUDJH'RRU ^ WKLVJDUDJH'RRU JDUDJH'RRU ` SXEOLFYRLGH[HFXWH ^ JDUDJH'RRUXS  ` ` )LOH(GLW:LQGRZ+HOS*UHHQ(JJV +DP

MDYD5HPRWH&RQWURO7HVW /LJKWLVRQ *DUDJH'RRULV2SHQ 



&KDSWHU

Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 6. Encapsulating Invocation

Return to Table of Contents

Page 43

WKHFRPPDQGSDWWHUQ

?ZQ\M\PM]VLWUM\PWLNWZ5IKZW+WUUIVL

([HUFLVH SXEOLFFODVV0DFUR&RPPDQGLPSOHPHQWV&RPPDQG^ &RPPDQG>@FRPPDQGV SXEOLF0DFUR&RPPDQG &RPPDQG>@FRPPDQGV ^ WKLVFRPPDQGV FRPPDQGV `

([HUFLVH VROXWLRQV

SXEOLFYRLGH[HFXWH ^ IRU LQWL LFRPPDQGVOHQJWKL ^ FRPPDQGV>L@H[HFXWH  ` ` SXEOLFYRLGXQGR ^ IRU LQWL LFRPPDQGVOHQJWKL ^ FRPPDQGV>L@XQGR  ` ` `

6KDUSHQ \RXU SHQFLO

?M_QTTIT[WVMMLKWUUIVL[NWZ\PMWNN J]\\WV ?ZQ\M\PMKWLM\WKZMI\M\PW[MPMZM"

/LJKW2II&RPPDQGOLJKW2II QHZ/LJKW2II&RPPDQG OLJKW  6WHUHR2II&RPPDQGVWHUHR2II QHZ6WHUHR2II&RPPDQG VWHUHR  792II&RPPDQGWY2II QHZ792II&RPPDQG WY  +RWWXE2II&RPPDQGKRWWXE2II QHZ+RWWXE2II&RPPDQG KRWWXE 



 





































#



 

























#























! #











































"





#















!

 





  



#



%

 



!













!





 $





" 







$





!











"



!



\RXDUHKHUH



Chapter 6. Encapsulating Invocation Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Table of Contents Chapter 7. Being Adaptive............................................................................ 1 Section 7.1. Adapters all around us................................................................................................................................................. 2 Section 7.2. Object oriented adapters............................................................................................................................................. 3 Section 7.3. If it walks like a duck and quacks like a duck, then it must might be a duck turkey wrapped with a duck adapter.... . . 4 Section 7.4. Test drive the adapter................................................................................................................................................. 6 Section 7.5. The Adapter Pattern explained................................................................................................................................... 7 Section 7.6. There are no Dumb Questions.................................................................................................................................... 8 Section 7.7. Adapter Pattern defined.............................................................................................................................................. 9 Section 7.8. Object and class adapters.......................................................................................................................................... 10 Section 7.9. Duck Magnets............................................................................................................................................................. 11 Section 7.10. Duck Magnets Answer............................................................................................................................................. 12 Section 7.11. Fireside Chats........................................................................................................................................................... 13 Section 7.12. Real world adapters................................................................................................................................................. 14 Section 7.13. Adapting an Enumeration to an Iterator................................................................................................................. 15 Section 7.14. Fireside Chats........................................................................................................................................................... 18 Section 7.15. And now for something different............................................................................................................................ 20 Section 7.16. Home Sweet Home Theater..................................................................................................................................... 21 Section 7.17. Watching a movie (the hard way)............................................................................................................................ 22 Section 7.18. Lights, Camera, Facade!.......................................................................................................................................... 24 Section 7.19. There are no Dumb Questions................................................................................................................................ 26 Section 7.20. Constructing your home theater facade................................................................................................................. 27 Section 7.21. Implementing the simplified interface................................................................................................................... 28 Section 7.22. Time to watch a movie (the easy way).................................................................................................................... 29 Section 7.23. Facade Pattern defined........................................................................................................................................... 30 Section 7.24. The Principle of Least Knowledge........................................................................................................................... 31 Section 7.25. How NOT to Win Friends and Influence Objects................................................................................................... 32 Section 7.26. there are no Dumb Questions................................................................................................................................. 33 Section 7.27. The Facade and the Principle of Least Knowledge................................................................................................. 35 Section 7.28. Tools for your Design Toolbox................................................................................................................................ 36 Section 7.29. Exercise solutions................................................................................................................................................... 38 Section 7.30. Exercise solutions................................................................................................................................................... 39 Section 7.31. Exercise solutions.................................................................................................................................................... 40

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 1

the Adapter and Facade Patterns

4

5

%HLQJ$GDSWLYH 4

'R\RXWKLQNWKHUHDGHUVDUH UHDOO\JHWWLQJWKHLPSUHVVLRQZH·UH ZDWFKLQJDKRUVHUDFHUDWKHUWKDQ VLWWLQJLQDSKRWRVWXGLR"

7KDW·VWKH EHDXW\RIRXUSURIHVVLRQ ZHFDQPDNHWKLQJVORRN OLNHVRPHWKLQJWKH\·UHQRW


:UDSSHGLQ WKLVFRDW,·PD GLIIHUHQWPDQ

,QWKLVFKDSWHUZH·UHJRLQJWRDWWHPSWVXFKLPSRVVLEOHIHDWVDV SXWWLQJDVTXDUHSHJLQDURXQGKROH6RXQGLPSRVVLEOH"1RWZKHQZHKDYH 'HVLJQ3DWWHUQV5HPHPEHUWKH'HFRUDWRU3DWWHUQ":HZUDSSHGREMHFWVWRJLYHWKHPQHZ UHVSRQVLELOLWLHV1RZZH¶UHJRLQJWRZUDSVRPHREMHFWVZLWKDGLIIHUHQWSXUSRVHWRPDNHWKHLU LQWHUIDFHVORRNOLNHVRPHWKLQJWKH\¶UHQRW:K\ZRXOGZHGRWKDW"6RZHFDQDGDSWDGHVLJQ H[SHFWLQJRQHLQWHUIDFHWRDFODVVWKDWLPSOHPHQWVDGLIIHUHQWLQWHUIDFH7KDW¶VQRWDOOZKLOH ZH¶UHDWLWZH¶UHJRLQJWRORRNDWDQRWKHUSDWWHUQWKDWZUDSVREMHFWVWRVLPSOLI\WKHLULQWHUIDFH

WKLVLVDQHZFKDSWHU



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 2

DGDSWHUVHYHU\ZKHUH

)LIX\MZ[ITTIZW]VL][
-]ZWXMIV?ITT7]\TM\ )+8W_MZ)LIX\MZ ;\IVLIZL)+8T]O

[SRVHV RXWOHWHSRZHU OO D Z  Q D H J RS 7KH(XU UIDFHIRUJHWWLQ RQHLQWH

7KH86ODSWRSH[SHFWV DQRWKHULQWHUIDFH

7KHDGDSWHUFRQYHUWVRQH LQWHUIDFHLQWRDQRWKHU

AW]SVW__PI\\PMILIX\MZLWM["Q\[Q\[QVJM\_MMV\PMXT]OWN aW]ZTIX\WXIVL\PM -]ZWXMIV)+W]\TM\#Q\[RWJQ[\WILIX\\PM-]ZWXMIVW]\TM\[W\PI\aW]KIVXT]OaW]Z TIX\WXQV\WQ\IVLZMKMQ^MXW_MZ7ZTWWSI\Q\\PQ[_Ia"\PMILIX\MZKPIVOM[\PMQV\MZNIKM WN \PMW]\TM\QV\WWVM\PI\aW]ZTIX\WXM`XMK\[

 OZRUOG HUUHD LQNRI" K W R  \ K DQ W +RZP HUVFDQ\RX DGDSW

;WUM)+ILIX\MZ[IZM[QUXTM·\PMaWVTaKPIVOM\PM[PIXMWN \PMW]\TM\[W\PI\Q\UI\KPM[ aW]ZXT]OIVL\PMaXI[[\PM)+K]ZZMV\[\ZIQOP\\PZW]OP·J]\W\PMZILIX\MZ[IZMUWZM KWUXTM`QV\MZVITTaIVLUIaVMML\W[\MX\PMXW_MZ]XWZLW_V\WUI\KPaW]ZLM^QKM[¼ VMML[ 7SIa\PI\¼[\PMZMIT_WZTL_PI\IJW]\WJRMK\WZQMV\MLILIX\MZ['?MTTW]Z77ILIX\MZ[ XTIa\PM[IUMZWTMI[\PMQZZMIT_WZTLKW]V\MZXIZ\["\PMa\ISMIVQV\MZNIKMIVLILIX\Q\\W WVM\PI\IKTQMV\Q[M`XMK\QVO 

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 3

WKHDGDSWHUSDWWHUQ

7JRMK\WZQMV\MLILIX\MZ[ ;IaaW]¼^MOW\IVM`Q[\QVO[WN\_IZM[a[\MU\PI\aW]VMML\W_WZSIVM_^MVLWZKTI[[TQJZIZa QV\WJ]\\PMVM_^MVLWZLM[QOVML\PMQZQV\MZNIKM[LQNNMZMV\Ta\PIV\PMTI[\^MVLWZ" >MVLWZ +TI[[

AW]Z -`Q[\QVO ;a[\MU

H KHRQH\RX·Y VQ·WPDWFKW LVQ·WJRLQJWRZRUN RH G FH ID HU 7KHLULQW UFRGHDJDLQVW7KLV ZULWWHQ\RX 7SIaaW]LWV¼\_IV\\W[WT^M\PMXZWJTMUJaKPIVOQVOaW]ZM`Q[\QVOKWLMIVLaW]KIV¼\ KPIVOM\PM^MVLWZ¼[KWLM;W_PI\LWaW]LW'?MTTaW]KIV_ZQ\MIKTI[[\PI\ILIX\[\PM VM_^MVLWZQV\MZNIKMQV\W\PMWVMaW]¼ZMM`XMK\QVO

AW]Z -`Q[\QVO ;a[\MU

>MVLWZ +TI[[

)LIX\MZ

7KHDGDSWHULPSOHPHQWVWKH LQWHUIDFH\RXUFODVVHVH[SHFW

DFH HYHQGRULQWHUI $QGWDONVWRWK UHTXHVWV U RX WRVHUYLFH\


)LIX\MZ

1RFRGHFKDQJHV

1HZFRGH

>MVLWZ +TI[[

 RIDVROXWLRQ &DQ\RXWKLQNUHTXLUH<28WR WKDWGRHVQ·W GGLWLRQDOFRGH ZULWH$1<DWKHQHZYHQGRU WRLQWHJUDWH DERXWPDNLQJWKH FODVVHV"+RZ\WKHDGDSWHUFODVV YHQGRUVXSSO

1RFRGHFKDQJHV \RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 4

WXUNH\DGDSWHU

1NQ\_ITS[TQSMIL]KSIVLY]IKS[TQSMIL]KS \PMVQ\U][\UQOP\JMIL]KS\]ZSMa_ZIXXML _Q\PIL]KSILIX\MZ ,W·VWLPHWRVHHDQDGDSWHULQDFWLRQ5HPHPEHURXU GXFNVIURP&KDSWHU"/HW·VUHYLHZDVOLJKWO\VLPSOLÀHG YHUVLRQRIWKH'XFNLQWHUIDFHVDQGFODVVHV

RXQGRXU 7KLVWLPHDU HQWD'XFN GXFNVLPSOHP DWDOORZV LQWHUIDFHWKDFNDQGIO\ 'XFNVWRTX

SXEOLFLQWHUIDFH'XFN^ SXEOLFYRLGTXDFN  SXEOLFYRLGÀ\  `

+HUH·VDVXEFODVVRI'XFNWKH0DOODUG'XFN SXEOLFFODVV0DOODUG'XFNLPSOHPHQWV'XFN^ SXEOLFYRLGTXDFN ^ 6\VWHPRXWSULQWOQ ³4XDFN´  `  SXEOLFYRLGÀ\ ^ 6\VWHPRXWSULQWOQ ³,¶PÀ\LQJ´  ` `

KHGXFN HQWDWLRQVW 6LPSOHLPSOHP WZKDWLWLVGRLQJ MXVWSULQWVRX

1RZLW·VWLPHWRPHHWWKHQHZHVWIRZORQWKHEORFN

FNWKH\JRE

SXEOLFLQWHUIDFH7XUNH\^ SXEOLFYRLGJREEOH  SXEOLFYRLGÀ\  `



·WTXD 7XUNH\VGRQ

EOH

7XUNH\VFDQIO\DOWKRXJKWKH\ FDQRQO\IO\VKRUWGLVWDQFHV

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 5

WKHDGDSWHUSDWWHUQ

WDWLRQ

PSOHPHQ SXEOLFFODVV:LOG7XUNH\LPSOHPHQWV7XUNH\^ +HUH·VDFRQFUHWHL LWMXVW XFN SXEOLFYRLGJREEOH ^ ' NH OL RI7XUNH\ V 6\VWHPRXWSULQWOQ ³*REEOHJREEOH´  SULQWVRXWLWVDFWLRQ `  SXEOLFYRLGÀ\ ^ 6\VWHPRXWSULQWOQ ³,¶PÀ\LQJDVKRUWGLVWDQFH´  ` ` 1RZOHW·VVD\\RX·UHVKRUWRQ'XFNREMHFWVDQG\RX·GOLNHWR XVHVRPH7XUNH\REMHFWVLQWKHLUSODFH2EYLRXVO\ZHFDQ·W XVHWKHWXUNH\VRXWULJKWEHFDXVHWKH\KDYHDGLIIHUHQWLQWHUIDFH 6ROHW·VZULWHDQ$GDSWHU

&RGH8S&ORVH

)LUVW\RXQHHGWRLPSOHPHQWWKHLQWHUIDFH RIWKHW\SH\RX·UHDGDSWLQJWR7KLVLVWKH LQWHUIDFH\RXUFOLHQWH[SHFWVWRVHH

SXEOLFFODVV7XUNH\$GDSWHULPSOHPHQWV'XFN^ 7XUNH\WXUNH\  1H[WZHQHHGWRJHWDUHIHUHQFHWR SXEOLF7XUNH\$GDSWHU 7XUNH\WXUNH\ ^ WKHREMHFWWKDWZHDUHDGDSWLQJKHUH WKLVWXUNH\ WXUNH\ ZHGRWKDWWKURXJKWKHFRQVWUXFWRU `  SXEOLFYRLGTXDFN ^ 1RZZHQHHGWRLPSOHPHQWDOOWKHPHWKRGVLQ WXUNH\JREEOH  WKHLQWHUIDFHWKHTXDFN WUDQVODWLRQEHWZHHQ ` FODVVHVLVHDV\MXVWFDOOWKHJREEOH PHWKRG  SXEOLFYRLGÀ\ ^ IRU LQWL LL ^ WXUNH\À\  (YHQWKRXJKERWKLQWHUIDFHVKDYHDIO\  ` PHWKRG7XUNH\VIO\LQVKRUWVSXUWVWKH\ ` FDQ·WGRORQJGLVWDQFHIO\LQJOLNHGXFNV7R `

PDSEHWZHHQD'XFN·VIO\ PHWKRGDQGD 7XUNH\·VZHQHHGWRFDOOWKH7XUNH\·VIO\  PHWKRGILYHWLPHVWRPDNHXSIRULW \RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 6

WHVWWKHDGDSWHU


N

F SXEOLFFODVV'XFN7HVW'ULYH^ DWHD'X /HW·VFUH SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ UNH\ 0DOODUG'XFNGXFN QHZ0DOODUG'XFN  DQGD7X  :LOG7XUNH\WXUNH\ QHZ:LOG7XUNH\  $QGWKHQZUDSWKHWXUNH\ 'XFNWXUNH\$GDSWHU QHZ7XUNH\$GDSWHU WXUNH\  LQD7XUNH\$GDSWHUZKLFK  PDNHVLWORRNOLNHD'XFN 6\VWHPRXWSULQWOQ ³7KH7XUNH\VD\V´  WXUNH\JREEOH  WXUNH\À\  7KHQOHW·VWHVWWKH7XUNH\  PDNHLWJREEOHPDNHLWIO\ 6\VWHPRXWSULQWOQ ³?Q7KH'XFNVD\V´  WHVW'XFN GXFN  1RZOHW·VWHVWWKHGXFN  E\FDOOLQJWKHWHVW'XFN  6\VWHPRXWSULQWOQ ³?Q7KH7XUNH\$GDSWHUVD\V´  PHWKRGZKLFKH[SHFWVD WHVW'XFN WXUNH\$GDSWHU  ` 'XFNREMHFW 1RZW  VWDWLFYRLGWHVW'XFN 'XFNGXFN ^ RIIWKKHELJWHVW HWXUNH Z GXFNTXDFN  \DVDHWU\WRSDV +HUH·VRXUWHVW'XF GXFNÀ\  V GXFN N P HWKRGLW JHWVDGXFNDQ ` DQGIO\ PHW GFDOOVLWVTXDFN  ` KRGV

7HVWUXQ

)LOH(GLW:LQGRZ+HOS'RQ¶W)RUJHW7R'XFN

MDYD5HPRWH&RQWURO7HVW 7KH7XUNH\VD\V

7KH7XUNH\JREEOHVDQG IOLHVDVKRUWGLVWDQFH

*REEOHJREEOH ,¶PÀ\LQJDVKRUWGLVWDQFH

7KH'XFNTXDFNVDQGIOLHV MXVWOLNH\RX·GH[SHFW

7KH'XFNVD\V 4XDFN ,¶PÀ\LQJ 7KH7XUNH\$GDSWHUVD\V *REEOHJREEOH ,¶PÀ\LQJDVKRUWGLVWDQFH ,¶PÀ\LQJDVKRUWGLVWDQFH ,¶PÀ\LQJDVKRUWGLVWDQFH ,¶PÀ\LQJDVKRUWGLVWDQFH ,¶PÀ\LQJDVKRUWGLVWDQFH 

$QGWKHDGDSWHUJREEOHVZKHQ  TXDFN LVFDOOHGDQGIOLHVDIHZ H WLPHVZKHQIO\ LVFDOOHG7K VLW WHVW'XFN PHWKRGQHYHUNQRZ N GXF VD HGD JXLV GLV KDVDWXUNH\

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 7

WKHDGDSWHUSDWWHUQ


VW

+TQMV\

UHTX

HVW

WUDQ

VODW

)LIX\MM

H HTX HG5

7KH&OLHQWLVLPSOHPHQWHG DJDLQVWWKHWDUJHWLQWHUIDFH

)LIX\MZ DGDSWH H LQWHUI DFH

FH

UID LQWH UJHW

WD

7KH$GDSWHULPSOHPHQWVWKH WDUJHWLQWHUIDFHDQGKROGVDQ LQVWDQFHRIWKH$GDSWHH

0MZM¼[PW_\PM+TQMV\][M[\PM)LIX\MZ 

PHQWHG SWHULPSDOHFH'XFN D G $ \ H N U 7X HWLQWHUI WKHWDUJ

7KHFOLHQWPDNHVDUHTXHVWWRWKH DGDSWHUE\FDOOLQJDPHWKRGRQLWXVLQJ WKHWDUJHWLQWHUIDFH



7KHDGDSWHUWUDQVODWHVWKDWUHTXHVWLQWR RQHRUPRUHFDOOVRQWKHDGDSWHHXVLQJ WKHDGDSWHHLQWHUIDFH



7KHFOLHQWUHFHLYHVWKHUHVXOWVRIWKH FDOODQGQHYHUNQRZVWKHUHLVDQDGDSWHU GRLQJWKHWUDQVODWLRQ

7XUNH\ZDVWKH DGDSWHHLQWHUIDFH

WHH &OLHQWDQG$GDS V 1RWHWKDWWKH RZ NQ U HLWKH DUHGHFRXSOHG²UQ DERXWWKHRWKH

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 8

DGDSWHUSDWWHUQGH¿QHG

6KDUSHQ \RXU SHQFLO /HW¶VVD\ZHDOVRQHHGDQ$GDSWHUWKDWFRQYHUWVD'XFNWRD7XUNH\ /HW¶VFDOOLW'XFN$GDSWHU:ULWHWKDWFODVV

+RZGLG\RXKDQGOHWKHÀ\PHWKRG DIWHUDOOZHNQRZGXFNVÀ\ORQJHUWKDQWXUNH\V "&KHFNWKHDQVZHUVDW WKHHQGRIWKHFKDSWHUIRURXUVROXWLRQ'LG\RXWKLQNRIDEHWWHUZD\"

there are no

Dumb Questions

Q:

+RZPXFK´DGDSWLQJµGRHV DQDGDSWHUQHHGWRGR",WVHHPVOLNH LI,QHHGWRLPSOHPHQWDODUJHWDUJHW LQWHUIDFH,FRXOGKDYHD/27RIZRUNRQ P\KDQGV

A:




Q:

Q:

'RHVDQDGDSWHUDOZD\VZUDSRQH DQGRQO\RQHFODVV"

A:

7KH$GDSWHU3DWWHUQ·VUROHLVWR FRQYHUWRQHLQWHUIDFHLQWRDQRWKHU:KLOH PRVWH[DPSOHVRIWKHDGDSWHUSDWWHUQVKRZ DQDGDSWHUZUDSSLQJRQHDGDSWHHZHERWK NQRZWKHZRUOGLVRIWHQDELWPRUHPHVV\ 6R\RXPD\ZHOOKDYHVLWXDWLRQVZKHUHDQ DGDSWHUKROGVWZRRUPRUHDGDSWHHVWKDWDUH QHHGHGWRLPSOHPHQWWKHWDUJHWLQWHUIDFH 7KLVUHODWHVWRDQRWKHUSDWWHUQFDOOHGWKH )DFDGH3DWWHUQSHRSOHRIWHQFRQIXVHWKH WZR5HPLQGXVWRUHYLVLWWKLVSRLQWZKHQZH WDONDERXWIDFDGHVODWHULQWKLVFKDSWHU

:KDWLI,KDYHROGDQGQHZSDUWV RIP\V\VWHPWKHROGSDUWVH[SHFWWKH ROGYHQGRULQWHUIDFHEXWZH·YHDOUHDG\ ZULWWHQWKHQHZSDUWVWRXVHWKHQHZ YHQGRULQWHUIDFH",WLVJRLQJWRJHW FRQIXVLQJXVLQJDQDGDSWHUKHUHDQGWKH XQZUDSSHGLQWHUIDFHWKHUH:RXOGQ·W,EH EHWWHURIIMXVWZULWLQJP\ROGHUFRGHDQG IRUJHWWLQJWKHDGDSWHU"

A:

1RWQHFHVVDULO\2QHWKLQJ\RX FDQGRLVFUHDWHD7ZR:D\$GDSWHUWKDW VXSSRUWVERWKLQWHUIDFHV7RFUHDWHD7ZR :D\$GDSWHUMXVWLPSOHPHQWERWKLQWHUIDFHV LQYROYHGVRWKHDGDSWHUFDQDFWDVDQROG LQWHUIDFHRUDQHZLQWHUIDFH

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 9

WKHDGDSWHUSDWWHUQ

)LIX\MZ8I\\MZVLMNQVML -VW]OPL]KS[\]ZSMa[IVL)+XW_MZILIX\MZ[#TM\¼[OM\ZMITIVLTWWSI\\PMWNÅKQIT LMÅVQ\QWVWN \PM)LIX\MZ8I\\MZV"


6W__MSVW_\PQ[XI\\MZVITTW_[][\W][MIKTQMV\_Q\PIVQVKWUXI\QJTMQV\MZNIKMJa KZMI\QVOIV)LIX\MZ\PI\LWM[\PMKWV^MZ[QWV
LQWHUIDFH!! 7DUJHW

&OLHQW

UHTXHVW

7KH$GDSWHULPSOHPHQWV WKH7DUJHWLQWHUIDFH

7KHFOLHQWVHHVRQO\WKH 7DUJHWLQWHUIDFH $GDSWHU

$GDSWHH VSHFLILF5HTXHVW

UHTXHVW

$GDSWHULVFRPSRVHG ZLWKWKH$GDSWHH

$OOUHTXHVWVJHW GHOHJDWHGWRWKH $GDSWHH


\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 10

REMHFWDQGFODVVDGDSWHUV

7JRMK\IVLKTI[[ILIX\MZ[ 6W_LM[XQ\MPI^QVOLMÅVML\PMXI\\MZV_MPI^MV¼\\WTLaW]\PM_PWTM[\WZaaM\
7DUJHW

&OLHQW

$GDSWHH

UHTXHVW

VSHFLILF5HTXHVW

$GDSWHU UHTXHVW

,QVWHDGRIXVLQJFRP SRVLWLRQWRDGDSWWKH $GDSWHHWKH$GDSWHUQRZ VXEFODVVHVWKH$GDSWHH DQGWKH7DUJHWFODVVHV 4WWSNIUQTQIZ'
YiX`e gfn\i 2EMHFWDGDSWHUVDQGFODVVDGDSWHUVXVHWZRGLIIHUHQWPHDQVRI DGDSWLQJWKHDGDSWHH FRPSRVLWLRQYHUVXVLQKHULWDQFH +RZGRWKHVH LPSOHPHQWDWLRQGLIIHUHQFHVDIIHFWWKHÀH[LELOLW\RIWKHDGDSWHU"



&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 11

WKHDGDSWHUSDWWHUQ

'XFN0DJQHWV AW]ZRWJQ[\W\ISM\PML]KSIVL\]ZSMaUIOVM\[IVL LZIO\PMUW^MZ\PMXIZ\WN \PMLQIOZIU\PI\LM[KZQJM[ \PMZWTMXTIaMLJa\PI\JQZLQVW]ZMIZTQMZM`IUXTM
&ODVV$GDSWHU 7DUJHW

&OLHQW

$GDSWHH

UHTXHVW

VSHFLILF5HTXHVW

$GDSWHU UHTXHVW

2EMHFW$GDSWHU &OLHQW

LQWHUIDFH!! 7DUJHW UHTXHVW

$GDSWHU UHTXHVW

$GDSWHH VSHFLILF5HTXHVW

'UDJWKHVHRQWR KHFODVVGLDJUDP WRVKRZZKLFKSDW RIWKHGLDJU UHSUHVHQWVWKH'UW XFNDQGZKLFK DP UHSUHVHQWVWKH7XU NH\

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 12

H[HUFLVHDQVZHUV

'XFN0DJQHWV $QVZHU

1RWHWKHFODVVDG PXOWLSOHLQKHULWDQFHDSWHUXVHV FDQ·WGRLWLQ-DYDVR\RX

7XUNH\FODVV

'XFNFODVV &ODVV$GDSWHU 7DUJHW

&OLHQW UHTXHVW

&OLHQWWKLQNVKH·V WDONLQJWRD'XFN

$GDSWHH VSHFLILF5HTXHVW

QRW FODVVGRHV H\ N V H XU K 7 W G H V R K L K 7 HW PHW VD 7KH7DUJVV7KLV WKHVDPHH$GDSWHUFDQ YH D K OD F K W 'XFN KHFOLHQW 'XFNEXWNPHWKRGFDOOV H $GDSWHU LVZKDWW HWKRGVRQ XF ' H LQYRN N D W UHTXHVW URXQGDQG LQYRNHVP DQGWXUQDRQWKH7XUNH\ 7KH$GDSWHUOHWVWKH PHWKRGV WRUHTXHVWVRQD'XFN7XUNH\UHVSRQG %27+FODVVHV 'XFNDQE\H[WHQGLQJ G7XUNH\ 

'XFNLQWHUIDFH 2EMHFW$GDSWHU &OLHQW

&OLHQWWKLQNVKH·V WDONLQJWRD'XFN

LQWHUIDFH!! 7DUJHW UHTXHVW

DSWHU K&ODVV$G -XVWDVZJLWHWLVWKH'XFN W WKH7DU LVLVZKDWWKHFOLHQ FODVV7K HWKRGVRQ $GDSWHU LQYRNHVP UHTXHVW

7KH$GDSWHULPSOHPHQWV LQWHUIDFHEXWZKHQ WKH'XFN JHWVD PHWKRGFDOOLWWXUQVLW XQGDQG GHOHJDWHVWKHFDOOVWRDUR D7XUNH\ 

7KH7XUNH\FODVVGRHVQ LQWHUIDFHDVWKH' ·WKDYHWKHVDPH ,QRWKHUZRUGV 7XUNH\VGRQ·WKDYHXFN TXDFN PHWKRGVHWF

$GDSWHH

7XUNH\ REMHFW

VSHFLILF5HTXHVW

WKH7XUNH\ KH$GDSWHU 7KDQNVWRWZLOOJHWFDOOVWKDWWKHDFH $GDSWHH HVRQWKH'XFNLQWHUI FOLHQWPDN

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 13

WKHDGDSWHUSDWWHUQ


7JRMK\)LIX\MZ

+TI[[)LIX\MZ

*MKI][M1][MKWUXW[Q\QWV1¼^MOW\ITMO]X1KIV VW\WVTaILIX\IVILIX\MMKTI[[J]\IVaWN Q\[ []JKTI[[M[


1VUaXIZ\WN \PM_WZTL_MTQSM\W][M KWUXW[Q\QWVW^MZQVPMZQ\IVKM#aW]UIaJM [I^QVOINM_TQVM[WN KWLMJ]\ITT1¼ULWQVOQ[ _ZQ\QVOITQ\\TMKWLM\WLMTMOI\M\W\PMILIX\MM ?MTQSM\WSMMX\PQVO[ÆM`QJTM .TM`QJTMUIaJMMNÅKQMV\'6W=[QVOIKTI[[ ILIX\MZ\PMZMQ[R][\WVMWN UMVW\IVILIX\MZ IVLIVILIX\MM AW]¼ZM_WZZQMLIJW]\WVMTQ\\TMWJRMK\'AW] UQOP\JMIJTM\WY]QKSTaW^MZZQLMIUM\PWL J]\IVaJMPI^QWZ1ILL\WUaILIX\MZKWLM _WZS[_Q\PUaILIX\MMKTI[[IVLITTQ\[ []JKTI[[M[ 0MaKWUMWVK]\UMIJZMIS1R][\VMML\W KWUXW[M_Q\P\PM[]JKTI[[\WUISM\PI\_WZS

AMIPJ]\_PI\QN I[]JKTI[[WN ILIX\MMILL[ [WUMVM_JMPI^QWZ
;W]VL[UM[[a AW]_IVVI[MMUM[[a'4WWSQV\PMUQZZWZ

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 14

UHDOZRUOGDGDSWHUV

:MIT_WZTLILIX\MZ[ 4M\¼[\ISMITWWSI\\PM][MWN I[QUXTM)LIX\MZQV\PMZMIT_WZTL [WUM\PQVOUWZM[MZQW][\PIV,]KS[I\TMI[\

7TL_WZTL-V]UMZI\WZ[ 1N aW]¼^MJMMVIZW]VL2I^INWZI_PQTM aW]XZWJIJTaZMUMUJMZ\PI\\PMMIZTa KWTTMK\QWV[\aXM[>MK\WZ;\IKS0I[P\IJTM IVLINM_W\PMZ[QUXTMUMV\IUM\PWL MTMUMV\[_PQKPZM\]ZV[IV-V]UMZI\QWV
SOHLQWHUI

KDVDVLP XPHUDWLRQ

(Q LQWHUIDFH!! (QXPHUDWLRQ KDV0RUH(OHPHQWV

7HOOV\RXLIWKHUHDUHDQ\ WLRQ PRUHHOHPHQWVLQWKHFROOHF

QH[W(OHPHQW

*LYHV\RXWKHQH[WHOHPHQW LQWKHFROOHFWLRQ

6M__WZTL1\MZI\WZ[ ?PMV;]VZMTMI[ML\PMQZUWZMZMKMV\ +WTTMK\QWV[KTI[[M[\PMaJMOIV][QVOIV 1\MZI\WZQV\MZNIKM\PI\TQSM-V]UMZI\QWV ITTW_[aW]\WQ\MZI\M\PZW]OPI[M\WN Q\MU[ QVIKWTTMK\QWVJ]\IT[WILL[\PMIJQTQ\a\W ZMUW^MQ\MU[

DFH

LQWHUIDFH! ,WHUDWRU KDV1H[W QH[W UHPRYH

 $QDORJRXVWRKDV0RUH(OHPHQWV FH LQWKH(QXPHUDWLRQLQWHUIDLI 7KLVPHWKRGMXVWWHOOV\RX PVLQ \RX·YHORRNHGDWDOOWKHLWH WKHFROOHFWLRQ *LYHV\RXWKHQH[W HOHPHQWLQWKHFROOHFWLRQ 5HPRYHVDQLWHP IURPWKHFROOHFWLRQ

)VL\WLIa ?MIZMWN\MVNIKML_Q\PTMOIKaKWLM\PI\M`XW[M[\PM -V]UMZI\WZQV\MZNIKMaM\_M¼LTQSMNWZW]ZVM_KWLM\WWVTa ][M1\MZI\WZ[1\TWWS[TQSM_MVMML\WJ]QTLIVILIX\MZ



&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 15

WKHDGDSWHUSDWWHUQ

)LIX\QVOIV-V]UMZI\QWV\WIV1\MZI\WZ .QZ[\_M¼TTTWWSI\\PM\_WQV\MZNIKM[\WÅO]ZMW]\PW_\PMUM\PWL[UIXNZWU WVM\W\PMW\PMZ1VW\PMZ_WZL[_M¼TTÅO]ZMW]\_PI\\WKITTWV\PMILIX\MM _PMV\PMKTQMV\QV^WSM[IUM\PWLWV\PM\IZOM\

7KHVHWZRPHWKRGVORRNHDV\ WKH\PDSVWUDLJKWWRKDV1H[W  DQGQH[W LQ,WHUDWRU

7DUJHWLQWHUIDFH LQWHUIDFH!! ,WHUDWRU

LQWHUIDFH!! (QXPHUDWLRQ KDV0RUH(OHPHQWV QH[W(OHPHQW

KDV1H[W QH[W UHPRYH

$GDSWHHLQWHUIDFH

%XWZKDWDERXWWKLVPHWKRG UHPRYH LQ,WHUDWRU"7KHUH·V QRWKLQJOLNHWKDWLQ(QXPHUDWLRQ

,M[QOVQVO\PM)LIX\MZ 0MZM¼[_PI\\PMKTI[[M[[PW]TLTWWSTQSM"_MVMMLIVILIX\MZ\PI\QUXTMUMV\[ \PM

(QXPHUDWLRQ,WHUDWRU LVWKHDGDSWHU

LQWHUIDFH!! ,WHUDWRU KDV1H[W QH[W UHPRYH

:H·UHPDNLQJWKH(QXPHUDWLRQV LQ\RXUROGFRGHORRNOLNH ,WHUDWRUVIRU\RXUQHZFRGH

LQWHUIDFH!!

(QXPHUDWLRQ,WHUDWRU KDV1H[W QH[W UHPRYH

$FODVV LPSOHPHQWLQJ WKH(QXPHUDWLRQ LQWHUIDFHLVWKH DGDSWHH

(QXPHUDWLRQ

KDV0RUH(OHPHQWV QH[W(OHPHQW

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 16

HQXPHUDWLRQLWHUDWRUDGDSWHU

,MITQVO_Q\P\PMZMUW^MUM\PWL ?MTT_MSVW_-V]UMZI\QWVR][\LWM[V¼\[]XXWZ\ZMUW^M1\¼[I¹ZMILWVTaºQV\MZNIKM
?ZQ\QVO\PM-V]UMZI\QWV1\MZI\WZILIX\MZ 0MZM¼[[QUXTMJ]\MNNMK\Q^MKWLMNWZITT\PW[MTMOIKaKTI[[M[[\QTTXZWL]KQVO-V]UMZI\QWV["

SXEOLFFODVV(QXPHUDWLRQ,WHUDWRULPSOHPHQWV,WHUDWRU ^ (QXPHUDWLRQHQXP  SXEOLF(QXPHUDWLRQ,WHUDWRU (QXPHUDWLRQHQXP ^ WKLVHQXP HQXP `  SXEOLFERROHDQKDV1H[W ^ UHWXUQHQXPKDV0RUH(OHPHQWV  `  SXEOLF2EMHFWQH[W ^ UHWXUQHQXPQH[W(OHPHQW  `  SXEOLFYRLGUHPRYH ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  ` `



6LQFHZH·UHDGDSWLQJ(QXPHUDWLRQ WR,WHUDWRURXU$GDSWHU LPSOHPHQWVWKH,WHUDWRULQWHUIDFH LWKDVWRORRNOLNHDQ,WHUDWRU 7KH(QXPHUDWLRQZH·UHDGDSWLQJ :H·UHXVLQJFRPSRVLWLRQVRZHVWDVK LWLQDQLQVWDQFHYDULDEOH 7KH,WHUDWRU·VKDV1H[W PHWKRG LVGHOHJDWHGWRWKH(QXPHUDWLRQ·V KDV0RUH(OHPHQWV PHWKRG DQGWKH,WHUDWRU·VQH[W PHWKRG LVGHOHJDWHGWRWKH(QXPHUDWLRQV·V QH[W(OHPHQW PHWKRG

8QIRUWXQDWHO\ZHFDQ·WVXSSRUW ,WHUDWRU·VUHPRYH PHWKRGVR ZHKDYHWRSXQW LQRWKHUZRUGV ZHJLYHXS +HUHZHMXVWWKURZ DQH[FHSWLRQ

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 17

WKHDGDSWHUSDWWHUQ

([HUFLVH

?PQTM2I^IPI[OWVM\PMLQZMK\QWVWN \PM1\MZI\WZ\PMZMQ[VM^MZ\PMTM[[ITW\WN  TMOIKaKTQMV\KWLM\PI\LMXMVL[WV\PM-V]UMZI\QWVQV\MZNIKM[WIV)LIX\MZ \PI\KWV^MZ\[IV1\MZI\WZ\WIV-V]UMZI\QWVQ[IT[WY]Q\M][MN]T ?ZQ\MIV)LIX\MZ\PI\ILIX\[IV1\MZI\WZ\WIV-V]UMZI\QWVAW]KIV\M[\aW]Z KWLMJaILIX\QVOIV)ZZIa4Q[\
YiX`e gfn\i 6RPH$&DGDSWHUVGRPRUHWKDQMXVWFKDQJHWKHLQWHUIDFH±WKH\DGGRWKHUIHDWXUHVOLNHVXUJH SURWHFWLRQLQGLFDWRUOLJKWVDQGRWKHUEHOOVDQGZKLVWOHV ,I\RXZHUHJRLQJWRLPSOHPHQWWKHVHNLQGVRIIHDWXUHVZKDWSDWWHUQZRXOG\RXXVH"

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 18

¿UHVLGHFKDWVGHFRUDWRUDQGDGDSWHU


,MKWZI\WZ

)LIX\MZ

1¼UQUXWZ\IV\5aRWJQ[ITTIJW]\ZM[XWV[QJQTQ\a· aW]SVW_\PI\_PMVI,MKWZI\WZQ[QV^WT^ML\PMZM¼[ OWQVO\WJM[WUMVM_ZM[XWV[QJQTQ\QM[WZJMPI^QWZ[ ILLML\WaW]ZLM[QOV AW]O]a[_IV\ITT\PMOTWZa_PQTM][ILIX\MZ[ IZMLW_VQV\PM\ZMVKPM[LWQVO\PMLQZ\a_WZS" KWV^MZ\QVOQV\MZNIKM[7]ZRWJ[UIaVW\JM OTIUWZW][J]\W]ZKTQMV\[[]ZMLWIXXZMKQI\M ][UISQVO\PMQZTQ^M[[QUXTMZ
&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 19

WKHDGDSWHUSDWWHUQ

,MKWZI\WZ

)LIX\MZ *]\\PMOZMI\\PQVOIJW]\][ILIX\MZ[Q[\PI\_M ITTW_KTQMV\[\WUISM][MWN VM_TQJZIZQM[IVL []J[M\[_Q\PW]\KPIVOQVOIVaKWLM\PMaR][\ZMTa WV][\WLW\PMKWV^MZ[QWVNWZ\PMU0MaQ\¼[I VQKPMJ]\_M¼ZMOWWLI\Q\

?MTT][LMKWZI\WZ[LW\PI\I[_MTTWVTa_MITTW_ VM_JMPI^QWZ\WJMILLML\WKTI[[M[_Q\PW]\IT\MZQVO M`Q[\QVOKWLM1[\QTT[Ia\PI\ILIX\MZ[IZMR][\NIVKa LMKWZI\WZ[·1UMIVR][\TQSM][aW]_ZIXIVWJRMK\ 6WVWVWVW\I\ITT?MIT_Ia[KWV^MZ\\PM QV\MZNIKMWN _PI\_M_ZIXaW]VM^MZLW1¼L [IaILMKWZI\WZQ[TQSMIVILIX\MZ#Q\Q[R][\\PI\ aW]LWV¼\KPIVOM\PMQV\MZNIKM =PVW7]ZRWJQVTQNMQ[\WM`\MVL\PM JMPI^QWZ[WZZM[XWV[QJQTQ\QM[WN \PMWJRMK\[_M _ZIX_MIZMV¼\I[QUXTMXI[[\PZW]OP 0Ma_PWIZMaW]KITTQVOI[QUXTMXI[[ \PZW]OP'+WUMWVLW_VIVL_M¼TT[MMPW_ TWVOaW]TI[\KWV^MZ\QVOINM_QV\MZNIKM[ 5IaJM_M[PW]TLIOZMM\WLQ[IOZMM?M[MMU \WTWWS[WUM_PI\[QUQTIZWVXIXMZJ]\KTMIZTa _MIZMUQTM[I_IaQVW]ZQV\MV\ 7PaMIP1¼U_Q\PaW]\PMZM

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 20

ZKRGRHVZKDW"

)VLVW_NWZ[WUM\PQVOLQNNMZMV\ 7KHUH·VDQRWKHUSDWWHUQLQWKLVFKDSWHU AW]¼^M[MMVPW_\PM)LIX\MZ8I\\MZVKWV^MZ\[\PMQV\MZNIKMWN IKTI[[QV\W WVM\PI\IKTQMV\Q[M`XMK\QVOAW]IT[WSVW__MIKPQM^M\PQ[QV2I^IJa _ZIXXQVO\PMWJRMK\\PI\PI[IVQVKWUXI\QJTMQV\MZNIKM_Q\PIVWJRMK\\PI\ QUXTMUMV\[\PMKWZZMK\WVM ?M¼ZMOWQVO\WTWWSI\IXI\\MZVVW_\PI\IT\MZ[IVQV\MZNIKMJ]\NWZI LQNNMZMV\ZMI[WV"\W[QUXTQNa\PMQV\MZNIKM1\¼[IX\TaVIUML\PM.IKILM 8I\\MZVJMKI][M\PQ[XI\\MZVPQLM[ITT\PMKWUXTM`Q\aWN WVMWZUWZM KTI[[M[JMPQVLIKTMIV_MTTTQ\NIKILM

5I\KPMIKPXI\\MZV_Q\PQ\[QV\MV\"

3DWWHUQ

,QWHQW

Decorator

Converts one interface to another

Adapter

DoesnÕt alter the interface, but adds responsibility

Facade Makes an interface simpler



&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 21

WKHDGDSWHUSDWWHUQ

0 WUM;_MM\0WUM,XTIaMZIXZWRMK\QWV^QLMW[a[\MUIV I]\WUI\ML[KZMMV[]ZZW]VL[W]VLIVLM^MVIXWXKWZVXWXXMZ +PMKSW]\ITT\PMKWUXWVMV\[aW]¼^MX]\\WOM\PMZ"

$PSOLILHU

7XQHU DPSOLILHU

RQ RII VHW$P VHW)P VHW)UHTXHQF\

WXQHU GYG3OD\HU FG3OD\HU RQ RII VHW&G VHW'YG VHW6WHUHR6RXQG VHW6XUURXQG6RXG VHW7XQHU VHW9ROXPH

&G3OD\HU DPSOLILHU

'YG3OD\HU DPSOLILHU RQ RII HMHFW SDXVH SOD\ SOD\ VHW6XUURXQG$XGLR VHW7ZR&KDQQHO$XGLR VWRS

RQ RII HMHFW SDXVH SOD\ SOD\ VWRS

6FUHHQ XS GRZQ

7KDW·VDORWRI FODVVHVDORW RILQWHUDFWLRQV DQGDELJVHWRI LQWHUIDFHVWR OHDUQDQGXVH

3URMHFWRU GYG3OD\HU

3RSFRUQ3RSSHU RQ RII SRS

7KHDWHU/LJKWV

RQ RII WY0RGH ZLGH6FUHHQ0RGH

RQ RII GLP

AW]¼^M[XMV\_MMS[Z]VVQVO_QZMUW]V\QVO\PMXZWRMK\WZUISQVOITT \PMKWVVMK\QWV[IVLÅVM\]VQVO6W_Q\¼[\QUM\WX]\Q\ITTQVUW\QWV IVLMVRWaIUW^QM

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 22

WDVNVWRZDWFKDPRYLH

?I\KPQVOIUW^QM\PMPIZL_Ia 3LFNRXWD'9'UHOD[DQGJHWUHDG\IRUPRYLHPDJLF2K WKHUH·VMXVWRQHWKLQJ²WRZDWFKWKHPRYLH\RXQHHGWR SHUIRUPDIHZWDVNV 

<]ZVWV\PMXWXKWZVXWXXMZ



;\IZ\\PMXWXXMZXWXXQVO



,QU\PMTQOP\[



8]\\PM[KZMMVLW_V



<]ZV\PMXZWRMK\WZWV



;M\\PMXZWRMK\WZQVX]\\W,>,



8]\\PMXZWRMK\WZWV_QLM[KZMMVUWLM <]ZV\PM[W]VLIUXTQÅMZWV ;M\\PMIUXTQÅMZ\W,>,QVX]\

!





;M\\PMIUXTQÅMZ\W[]ZZW]VL[W]VL



;M\\PMIUXTQÅMZ^WT]UM\WUMLQ]U



<]ZV\PM,>,8TIaMZWV



;\IZ\\PM,>,8TIaMZXTIaQVO

,·PDOUHDG\H[KDXVWHG DQGDOO,·YHGRQHLVWXUQ HYHU\WKLQJRQ

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 23

WKHDGDSWHUSDWWHUQ

/HW·VFKHFNRXWWKRVHVDPHWDVNVLQWHUPVRIWKHFODVVHVDQGWKH PHWKRGFDOOVQHHGHGWRSHUIRUPWKHP

7XUQRQWKHSRSFRUQSRSSHUDQGVWD SRSSLQJ SRSSHURQ  SRSSHUSRS  OLJKWVGLP  

VHV

DV 6L[GLIIHUHQWFO G LQYROYH

VFUHHQGRZQ  SURMHFWRURQ  SURMHFWRUVHW,QSXW GYG  SURMHFWRUZLGH6FUHHQ0RGH  DPSRQ  DPSVHW'YG GYG  DPSVHW6XUURXQG6RXQG  DPSVHW9ROXPH   GYGRQ  GYGSOD\ PRYLH 

UW

'LPWKHOLJKWVWR 3XWWKHVFUHHQGRZQ WLQ 7XUQRQWKHSURMHFWRUDQGSXWL  YLH HPR UWK HIR PRG HHQ VFU ZLGH SXW 7XUQRQWKHDPSVHWLWWR'9' H LWLQVXUURXQGVRXQGPRGHDQGVHWWK  R PHW YROX  7XUQRQWKH'9'SOD\HU LH PRY WKH OD\ <S $// ),1 DQG

%XWWKHUH·VPRUH

ƒ?PMV\PMUW^QMQ[W^MZPW_LWaW]\]ZVM^MZa\PQVOWNN ' ?W]TLV¼\aW]PI^M\WLWITTWN \PQ[W^MZIOIQVQVZM^MZ[M'

ƒ?W]TLV¼\Q\JMI[KWUXTM`\WTQ[\MV\WI+,WZ\PMZILQW' ƒ1N aW]LMKQLM\W]XOZILMaW]Z[a[\MUaW]¼ZMXZWJIJTaOWQVO \WPI^M\WTMIZVI[TQOP\TaLQNNMZMV\XZWKML]ZM ;W_PI\\WLW'
\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 24

OLJKWVFDPHUDIDFDGH

4QOP\[+IUMZI.IKILM  ).IKILMQ[R][\_PI\aW]VMML"_Q\P\PM.IKILM8I\\MZVaW]KIV\ISMIKWUXTM` []J[a[\MUIVLUISMQ\MI[QMZ\W][MJaQUXTMUMV\QVOI.IKILMKTI[[\PI\ XZW^QLM[WVMUWZMZMI[WVIJTMQV\MZNIKM,WV¼\_WZZa#QN aW]VMML\PMXW_MZ WN \PMKWUXTM`[]J[a[\MUQ\¼[[\QTT\PMZMNWZaW]\W][MJ]\QN ITTaW]VMMLQ[I [\ZIQOP\NWZ_IZLQV\MZNIKM\PM.IKILMQ[\PMZMNWZaW] 4M\¼[\ISMITWWSI\PW_\PM.IKILMWXMZI\M["



/KAY TIMETOCREATEA &ACADEFORTHEHOME THEATERSYSTEM4ODO S THISWECREATEANEWCLAS (OME4HEATER&ACADE WHICHEXPOSESAFEW SIMPLEMETHODSSUCHAS WATCH-OVIE 

 4HE&ACADECLASSTREATS

THEHOMETHEATER COMPONENTSASA SUBSYSTEM ANDCALLS ONTHESUBSYSTEM TOIMPLEMENTITS WATCH-OVIE METHOD

7KH)DFDGH +RPH7KHDWHU)DFDGH ZDWFK0RYLH HQG0RYLH OLVWHQ7R&G HQG&G OLVWHQ7R5DGLR HQG5DGLR

$PSOLILHU WXQHU GYG3OD\HU FG3OD\HU RQ RII

7XQHU

VHW&G

'YG3OD\HU

VHW'YG

DPSOLILHU

VHW6WHUHR6RXQG

RQ

DPSOLILHU

VHW6XUURXQG6RXG

RII

VHW7XQHU

VHW$P

RII

VHW9ROXPH

VHW)P

RQ HMHFW

SOD\

SDXVH

VHW)UHTXHQF\

SOD\ SOD\

&G3OD\HU DPSOLILHU

6FUHHQ

VHW6XUURXQG$XGLR VHW7ZR&KDQQHO$XGLR VWRS

RQ

XS

RII

GRZQ

HMHFW SDXVH

KH 7KHVXEV\VWHPSOWLI\LQJ )DFDGHLVVLP

SOD\ SOD\

3URMHFWRU

VWRS GYG3OD\HU RQ

3RSFRUQ3RSSHU

RII WY0RGH

RQ RII

7KHDWHU/LJKWV

SRS RQ RII

ZLGH6FUHHQ0RGH

RQ

GLP



&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 25

WKHDGDSWHUSDWWHUQ

ZDWFK0

$FOLHQWRIWKH VXEV\VWHPIDFDGH

RYLH



LS 9OURCLIENTCODENOWCAL EATER METHODSONTHEHOMETH SYSTEM SUB THE TON NO ADE &AC VIEWEJUST 3ONOWTOWATCHAMO OVIE CHWAT OD CALLONEMETH HTHE ANDITCOMMUNICATESWIT OR LIGHTS $6$PLAYER PROJECT PCORN PO AND EN SCRE IER PLIF AM MAKERFORUS

,·YHJRWWRKDYHP\ ORZOHYHODFFHVV



RI )RUPHUO\SUHVLGHQW6FK RRO WKH5XVKPRUH+LJK  OXE H& HQF 6FL 9 $

4HE&ACADESTILLLEAVESTHESUBSYSTEM ACCESSIBLETOBEUSEDDIRECTLY)FYOU NEEDTHEADVANCEDFUNCTIONALITY OFTHESUBSYSTEMCLASSES THEYARE AVAILABLEFORYOURUSE

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 26

IDFDGHYHUVXVDGDSWHU

there are no

Dumb Questions

Q:

Q:

A:

A:

Q:

Q:

,IWKH)DFDGHHQFDSVXODWHVWKH VXEV\VWHPFODVVHVKRZGRHVDFOLHQW WKDWQHHGVORZHUOHYHOIXQFWLRQDOLW\JDLQ DFFHVVWRWKHP"

)DFDGHVGRQ·W´HQFDSVXODWHµWKH VXEV\VWHPFODVVHVWKH\PHUHO\SURYLGHD VLPSOLILHGLQWHUIDFHWRWKHLUIXQFWLRQDOLW\7KH VXEV\VWHPFODVVHVVWLOOUHPDLQDYDLODEOH IRUGLUHFWXVHE\FOLHQWVWKDWQHHGWRXVH PRUHVSHFLILFLQWHUIDFHV7KLVLVDQLFH SURSHUW\RIWKH)DFDGH3DWWHUQLWSURYLGHV DVLPSOLILHGLQWHUIDFHZKLOHVWLOOH[SRVLQJWKH IXOOIXQFWLRQDOLW\RIWKHV\VWHPWRWKRVHZKR PD\QHHGLW 'RHVWKHIDFDGHDGGDQ\ IXQFWLRQDOLW\RUGRHVLWMXVWSDVVWKURXJK HDFKUHTXHVWWRWKHVXEV\VWHP"

A:

$IDFDGHLVIUHHWRDGGLWVRZQ ´VPDUWVµLQDGGLWLRQWRPDNLQJXVHRIWKH VXEV\VWHP)RULQVWDQFHZKLOHRXUKRPH WKHDWHUIDFDGHGRHVQ·WLPSOHPHQWDQ\QHZ EHKDYLRULWLVVPDUWHQRXJKWRNQRZWKDWWKH SRSFRUQSRSSHUKDVWREHWXUQHGRQEHIRUHLW FDQSRS DVZHOODVWKHGHWDLOVRIKRZWRWXUQ RQDQGVWDJHDPRYLHVKRZLQJ 

Q:

'RHVHDFKVXEV\VWHPKDYHRQO\ RQHIDFDGH"

A:

1RWQHFHVVDULO\7KHSDWWHUQ FHUWDLQO\DOORZVIRUDQ\QXPEHURIIDFDGHVWR EHFUHDWHGIRUDJLYHQVXEV\VWHP



:KDWLVWKHEHQHILWRIWKHIDFDGH RWKHUWKDQWKHIDFWWKDW,QRZKDYHD VLPSOHULQWHUIDFH"

7KH)DFDGH3DWWHUQDOVRDOORZV \RXWRGHFRXSOH\RXUFOLHQWLPSOHPHQWDWLRQ IURPDQ\RQHVXEV\VWHP/HW·VVD\IRU LQVWDQFHWKDW\RXJHWDELJUDLVHDQGGHFLGH WRXSJUDGH\RXUKRPHWKHDWHUWRDOOQHZ FRPSRQHQWVWKDWKDYHGLIIHUHQWLQWHUIDFHV :HOOLI\RXFRGHG\RXUFOLHQWWRWKHIDFDGH UDWKHUWKDQWKHVXEV\VWHP\RXUFOLHQWFRGH GRHVQ·WQHHGWRFKDQJHMXVWWKHIDFDGH DQGKRSHIXOO\WKHPDQXIDFWXUHULVVXSSO\LQJ WKDW  6RWKHZD\WRWHOOWKHGLIIHUHQFH EHWZHHQWKH$GDSWHU3DWWHUQDQGWKH )DFDGH3DWWHUQLVWKDWWKHDGDSWHUZUDSV RQHFODVVDQGWKHIDFDGHPD\UHSUHVHQW PDQ\FODVVHV"

A:

1R5HPHPEHUWKH$GDSWHU3DWWHUQ FKDQJHVWKHLQWHUIDFHRIRQHRUPRUH FODVVHVLQWRRQHLQWHUIDFHWKDWDFOLHQWLV H[SHFWLQJ:KLOHPRVWWH[WERRNH[DPSOHV VKRZWKHDGDSWHUDGDSWLQJRQHFODVV\RX PD\QHHGWRDGDSWPDQ\FODVVHVWRSURYLGH WKHLQWHUIDFHDFOLHQWLVFRGHGWR/LNHZLVH D)DFDGHPD\SURYLGHDVLPSOLILHGLQWHUIDFH WRDVLQJOHFODVVZLWKDYHU\FRPSOH[ LQWHUIDFH 7KHGLIIHUHQFHEHWZHHQWKHWZRLVQRWLQ WHUPVRIKRZPDQ\FODVVHVWKH\´ZUDSµLW LVLQWKHLULQWHQW7KHLQWHQWRIWKH$GDSWHU 3DWWHUQLVWRDOWHUDQLQWHUIDFHVRWKDWLW PDWFKHVRQHDFOLHQWLVH[SHFWLQJ7KH LQWHQWRIWKH)DFDGH3DWWHUQLVWRSURYLGHD VLPSOLILHGLQWHUIDFHWRDVXEV\VWHP

$IDFDGHQRW RQO\VLPSOLILHV DQLQWHUIDFHLW GHFRXSOHVDFOLHQW IURPDVXEV\VWHP RIFRPSRQHQWV )DFDGHVDQG DGDSWHUVPD\ ZUDSPXOWLSOH FODVVHVEXWD IDFDGH·VLQWHQWLV WRVLPSOLI\ZKLOH DQDGDSWHU·V LVWRFRQYHUW WKHLQWHUIDFH WRVRPHWKLQJ GLIIHUHQW

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 27

WKHDGDSWHUSDWWHUQ

+WV[\Z]K\QVOaW]ZPWUM\PMI\MZNIKILM 4M\¼[[\MX\PZW]OP\PMKWV[\Z]K\QWVWN \PM0WUM
SXEOLFFODVV+RPH7KHDWHU)DFDGH^ $PSOL¿HUDPS +HUH·VWKHFRPSRVLWLRQWKHVH 7XQHUWXQHU DUHDOOWKHFRPSRQHQWVRIWKH 'YG3OD\HUGYG VXEV\VWHPZHDUHJRLQJWRXVH &G3OD\HUFG 3URMHFWRUSURMHFWRU 7KHDWHU/LJKWVOLJKWV 6FUHHQVFUHHQ 3RSFRUQ3RSSHUSRSSHU  SXEOLF+RPH7KHDWHU)DFDGH $PSOL¿HUDPS 7XQHUWXQHU 'YG3OD\HUGYG &G3OD\HUFG 3URMHFWRUSURMHFWRU 7KHIDFDGHLVSDVVHGD 6FUHHQVFUHHQ UHIHUHQFHWRHDFKFRPSRQHQW 7KHDWHU/LJKWVOLJKWV RIWKHVXEV\VWHPLQLWV 3RSFRUQ3RSSHUSRSSHU ^ FRQVWUXFWRU7KHIDFDGH  WKLVDPS DPS WKHQDVVLJQVHDFKWRWKH WKLVWXQHU WXQHU FRUUHVSRQGLQJLQVWDQFHYDULDEOH WKLVGYG GYG WKLVFG FG WKLVSURMHFWRU SURMHFWRU WKLVVFUHHQ VFUHHQ WKLVOLJKWV OLJKWV WKLVSRSSHU SRSSHU `  RWKHUPHWKRGVKHUH :H·UHMXVWDERXWWRILO  OWKHVHLQ `

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 28

LPSOHPHQWLQJIDFDGH

1UXTMUMV\QVO\PM[QUXTQNQMLQV\MZNIKM 6W_Q\¼[\QUM\WJZQVO\PMKWUXWVMV\[WN \PM[]J[a[\MU\WOM\PMZQV\WI]VQÅMLQV\MZNIKM 4M\¼[QUXTMUMV\\PM_I\KP5W^QMIVLMVL5W^QMUM\PWL["

SXEOLFYRLGZDWFK0RYLH 6WULQJPRYLH ^ 6\VWHPRXWSULQWOQ ³*HWUHDG\WRZDWFKDPRYLH´  SRSSHURQ  SRSSHUSRS  VHTXHQFH OLJKWVGLP   ZDWFK0RYLH IROORZVWKHVDPH EXWZUDSV UH HIR VFUHHQGRZQ  QGE \KD GRE ZHKDGWR VDOO GRH SURMHFWRURQ  KDW RGW HWK \P LWXSLQDKDQG SURMHFWRUZLGH6FUHHQ0RGH  WLFHWKDWIRUHDFKWDVNZH 1R UN ZR WKH DPSRQ  W\WRWKH DUHGHOHJDWLQJWKHUHVSRQVLELOLWKH DPSVHW'YG GYG  VXEV\VWHP LQ QHQW PSR JFR QGLQ HVSR FRUU DPSVHW6XUURXQG6RXQG  DPSVHW9ROXPH   GYGRQ  GYGSOD\ PRYLH  `  SXEOLFYRLGHQG0RYLH ^ 6\VWHPRXWSULQWOQ ³6KXWWLQJPRYLHWKHDWHUGRZQ´  SRSSHURII  OLJKWVRQ  VFUHHQXS  SURMHFWRURII  $QGHQG0RYLH WDNHVFDUH DPSRII  RIVKXWWLQJHYHU\WKLQJGRZQ GYGVWRS  IRUXV$JDLQHDFKWDVNLV GYGHMHFW  GHOHJDWHGWRWKHDSSURSULDWH GYGRII  FRPSRQHQWLQWKHVXEV\VWHP `

YiX`e gfn\i 7KLQNDERXWWKHIDFDGHV\RX¶YHHQFRXQWHUHGLQWKH-DYD$3, :KHUHZRXOG\RXOLNHWRKDYHDIHZQHZRQHV"



&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 29

WKHDGDSWHUSDWWHUQ


+HUHZH·UHFUHDWLQJWKHFRPSRQHQWV

SXEOLFFODVV+RPH7KHDWHU7HVW'ULYH^ ULJKWLQWKHWHVWGULYH1RUPDOO\WKH SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ FOLHQWLVJLYHQDIDFDGHLWGRHVQ·WKDYH LQVWDQWLDWHFRPSRQHQWVKHUH FWRQHLWVHOI WRFRQVWUX  +RPH7KHDWHU)DFDGHKRPH7KHDWHU  QHZ+RPH7KHDWHU)DFDGH DPSWXQHUGYGFG )LUVW\RXLQVWDQWLDWH SURMHFWRUVFUHHQOLJKWVSRSSHU  WKH)DFDGHZLWKDOOWKH  FRPSRQHQWVLQWKHVXEV\VWHP KRPH7KHDWHUZDWFK0RYLH ³5DLGHUVRIWKH/RVW$UN´  KRPH7KHDWHUHQG0RYLH  8VHWKHVLPSOLILHGLQWHUIDFHWR ` ILUVWVWDUWWKHPRYLHXSDQG `

WKHQVKXWLWGRZQ

)LOH(GLW:LQGRZ+HOS6QDNHV:K\¶G,W+DYH7R%H6QDNHV"

+HUH·VWKHRXWSXW &DOOLQJWKH)DFDGH·V ZDWFK0RYLH GRHVDOO WKLVZRUNIRUXV

DQGKHUHZH·UHGRQH ZDWFKLQJWKHPRYLHVR FDOOLQJHQG0RYLH WXUQV HYHU\WKLQJRII

MDYD+RPH7KHDWHU7HVW'ULYH *HWUHDG\WRZDWFKDPRYLH 3RSFRUQ3RSSHURQ 3RSFRUQ3RSSHUSRSSLQJSRSFRUQ 7KHDWHU&HLOLQJ/LJKWVGLPPLQJWR 7KHDWHU6FUHHQJRLQJGRZQ 7RS2/LQH3URMHFWRURQ 7RS2/LQH3URMHFWRULQZLGHVFUHHQPRGH [DVSHFWUDWLR 7RS2/LQH$PSOL¿HURQ 7RS2/LQH$PSOL¿HUVHWWLQJ'9'SOD\HUWR7RS2/LQH'9'3OD\HU 7RS2/LQH$PSOL¿HUVXUURXQGVRXQGRQ VSHDNHUVVXEZRRIHU 7RS2/LQH$PSOL¿HUVHWWLQJYROXPHWR 7RS2/LQH'9'3OD\HURQ 7RS2/LQH'9'3OD\HUSOD\LQJ³5DLGHUVRIWKH/RVW$UN´ 6KXWWLQJPRYLHWKHDWHUGRZQ 3RSFRUQ3RSSHURII 7KHDWHU&HLOLQJ/LJKWVRQ 7KHDWHU6FUHHQJRLQJXS 7RS2/LQH3URMHFWRURII 7RS2/LQH$PSOL¿HURII 7RS2/LQH'9'3OD\HUVWRSSHG³5DLGHUVRIWKH/RVW$UN´ 7RS2/LQH'9'3OD\HUHMHFW 7RS2/LQH'9'3OD\HURII

 \RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 30

IDFDGHSDWWHUQGH¿QHG

.IKILM8I\\MZVLMNQVML


RVH +DSS\FOLHQWZKH DP HF E MREMXVW  HDVLHUEHFDXVHRI WKHIDFDGH

&OLHQW

)DFDGH

8QLILHGLQWHUIDFH WKDWLVHDVLHUWRXVH

SUBSYSTEMCLASSES

\VWHP

EV 0RUHFRPSOH[VX




&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 31

WKHDGDSWHUSDWWHUQ


'HVLJQ3ULQFLSOH 3ULQFLSOHRI/HDVW.QRZOHGJH WDONRQO\WR\RXULPPHGLDWHIULHQGV

*]\_PI\LWM[\PQ[UMIVQVZMIT\MZU['1\UMIV[_PMVaW] IZMLM[QOVQVOI[a[\MUNWZIVaWJRMK\JMKIZMN]TWN \PM V]UJMZWN KTI[[M[Q\QV\MZIK\[_Q\PIVLIT[WPW_Q\KWUM[\W QV\MZIK\_Q\P\PW[MKTI[[M[
YiX`e gfn\i

+RZPDQ\FODVVHVLVWKLVFRGHFRXSOHGWR"

SXEOLFÀRDWJHW7HPS ^ UHWXUQVWDWLRQJHW7KHUPRPHWHU JHW7HPSHUDWXUH  `

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 32

SULQFLSOHRIOHDVWNQRZOHGJH

0W_67<\W?QV.ZQMVL[IVL1VÆ]MVKM7JRMK\[ 7SIaJ]\PW_LWaW]SMMXNZWULWQVO\PQ['
ƒ ƒ ƒ ƒ


OXVQRW LGHOLQHVWHO ZHUH JX H HV K W DW DW 1RWLFHWK KRGVRQREMHFWVWK HWKRGV WRFDOOPHW URPFDOOLQJRWKHUP UHWXUQHGI WWKDWLV QHQWµDVDQ\REMHF 7KLQNRID´FRPSRLQVWDQFHYDULDEOH,QRWKHU UHIHUHQFHGE\DQ LVDVD+$6$UHODWLRQVKLS ZRUGVWKLQNRIWK


:LWKRXWWKH 3ULQFLSOH

SXEOLFÀRDWJHW7HPS ^ 7KHUPRPHWHUWKHUPRPHWHU VWDWLRQJHW7KHUPRPHWHU  UHWXUQWKHUPRPHWHUJHW7HPSHUDWXUH  `

+HUHZHJHWWKHWKHUPRPHWHUREMHFW IURPWKHVWDWLRQDQGWKHQFDOOWKH JHW7HPSHUDWXUH PHWKRGRXUVHOYHV

:LWKWKH 3ULQFLSOH

SXEOLFÀRDWJHW7HPS ^ UHWXUQVWDWLRQJHW7HPSHUDWXUH  `

:KHQZHDSSO\WKHSULQFLSOHZHDGGD PHWKRGWRWKH6WDWLRQFODVVWKDWPDNHV WKHUHTXHVWWRWKHWKHUPRPHWHUIRUXV 7KLVUHGXFHVWKHQXPEHURIFODVVHVZH·UH GHSHQGHQWRQ 

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 33

WKHDGDSWHUSDWWHUQ

3MMXQVOaW]ZUM\PWLKITT[QVJW]VL[ 0MZM¼[I+IZKTI[[\PI\LMUWV[\ZI\M[ITT\PM_Ia[aW]KIVKITTUM\PWL[IVL[\QTT ILPMZM\W\PM8ZQVKQXTMWN 4MI[\3VW_TMLOM"

SXEOLFFODVV&DU^  (QJLQHHQJLQH  RWKHULQVWDQFHYDULDEOHV

SRQHQWRI +HUH·VDFRP HFDQFDOO :  VV OD F LV WK LWVPHWKRGV +HUHZH·UHFUHDWLQJDQHZ REMHFWLWVPHWKRGVDUHOHJDO

  

SXEOLF&DU ^  LQLWLDOL]HHQJLQHHWF `

   

SXEOLFYRLGVWDUW .H\NH\ ^  'RRUVGRRUV QHZ'RRUV  

ERROHDQDXWKRUL]HG NH\WXUQV 

     

     `

LI DXWKRUL]HG ^  HQJLQHVWDUW   XSGDWH'DVKERDUG'LVSOD\   GRRUVORFN  `

   `

SXEOLFYRLGXSGDWH'DVKERDUG'LVSOD\ ^  XSGDWHGLVSOD\ `



there are no

Dumb Questions

Q:

7KHUHLVDQRWKHUSULQFLSOHFDOOHG WKH/DZRI'HPHWHUKRZDUHWKH\ UHODWHG"

A:

7KHWZRDUHRQHDQGWKHVDPH DQG\RX·OOHQFRXQWHUWKHVHWHUPVEHLQJ LQWHUPL[HG:HSUHIHUWRXVHWKH3ULQFLSOHRI /HDVW.QRZOHGJHIRUDFRXSOHRIUHDVRQV   WKHQDPHLVPRUHLQWXLWLYHDQG  WKHXVHRI WKHZRUG´/DZµLPSOLHVZHDOZD\VKDYHWR

DSSO\WKLVSULQFLSOH,QIDFWQRSULQFLSOHLVD ODZDOOSULQFLSOHVVKRXOGEHXVHGZKHQDQG ZKHUHWKH\DUHKHOSIXO$OOGHVLJQLQYROYHV WUDGHRIIV DEVWUDFWLRQVYHUVXVVSHHGVSDFH YHUVXVWLPHDQGVRRQ DQGZKLOHSULQFLSOHV SURYLGHJXLGDQFHDOOIDFWRUVVKRXOGEHWDNHQ LQWRDFFRXQWEHIRUHDSSO\LQJWKHP

Q:

$UHWKHUHDQ\GLVDGYDQWDJHV WRDSSO\LQJWKH3ULQFLSOHRI/HDVW .QRZOHGJH"

A:


\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 34

YLRODWLQJWKHSULQFLSOHRIOHDVWNQRZOHGJH

6KDUSHQ \RXU SHQFLO 'RHLWKHURIWKHVHFODVVHVYLRODWHWKH3ULQFLSOHRI/HDVW.QRZOHGJH" :K\RUZK\QRW"

SXEOLF+RXVH^ :HDWKHU6WDWLRQVWDWLRQ RWKHUPHWKRGVDQG FRQVWUXFWRU SXEOLFÀRDWJHW7HPS ^ UHWXUQVWDWLRQJHW7KHUPRPHWHU JHW7HPSHUDWXUH  ` `

SXEOLF+RXVH^ :HDWKHU6WDWLRQVWDWLRQ RWKHUPHWKRGVDQGFRQVWUXFWRU SXEOLFÀRDWJHW7HPS ^ 7KHUPRPHWHUWKHUPRPHWHU VWDWLRQJHW7KHUPRPHWHU  UHWXUQJHW7HPS+HOSHU WKHUPRPHWHU  `  SXEOLFÀRDWJHW7HPS+HOSHU 7KHUPRPHWHUWKHUPRPHWHU ^ UHWXUQWKHUPRPHWHUJHW7HPSHUDWXUH  ` `

+DUGKDWDUHDZDWFKRXW IRUIDOOLQJDVVXPSWLRQV

YiX`e gfn\i &DQ\RXWKLQNRIDFRPPRQXVHRI-DYDWKDWYLRODWHVWKH3ULQFLSOHRI/HDVW.QRZOHGJH" 6KRXOG\RXFDUH" $QVZHU+RZDERXW6\VWHPRXWSULQWOQ "



&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 35

WKHDGDSWHUSDWWHUQ


&OLHQW

7KH+RPH7KHDWHU)DFDGH PDQDJHVDOOWKRVHVXEV\VWHP FRPSRQHQWVIRUWKHFOLHQW ,WNHHSVWKHFOLHQWVLPSOH DQGIOH[LEOH

+RPH7KHDWHU)DFDGH ZDWFK0RYLH HQG0RYLH OLVWHQ7R&G HQG&G OLVWHQ7R5DGLR HQG5DGLR

$PSOLILHU

H DGHWKHKRP :HFDQXSJU SRQHQWVZLWKRXW WKHDWHUFRP HFOLHQW DIIHFWLQJWK

WXQHU GYG3OD\HU FG3OD\HU RQ RII

7XQHU

VHW&G

'YG3OD\HU

VHW'YG

DPSOLILHU

VHW6WHUHR6RXQG

RQ

DPSOLILHU

VHW6XUURXQG6RXG

RII

VHW7XQHU

VHW$P

RII

VHW9ROXPH

VHW)P

RQ HMHFW SDXVH

VHW)UHTXHQF\

SOD\ SOD\ VHW6XUURXQG$XGLR

&G3OD\HU DPSOLILHU

V\VWHPVDGKHULQJ :HWU\WRNHHSVXE/HDVW.QRZOHGJH WRWKH3ULQFLSOHRIWVWRRFRPSOH[DQG DVZHOO,IWKLVJH HLQWHUPLQJOLQJZH WRRPDQ\IULHQGVDU LRQDOIDFDGHVWR FDQLQWURGXFHDGGLW EV\VWHPV IRUPOD\HUVRIVX

VHW7ZR&KDQQHO$XGLR VWRS

RQ

6FUHHQ XS

RII

GRZQ

HMHFW SDXVH SOD\ SOD\

3URMHFWRU

VWRS GYG3OD\HU RQ

3RSFRUQ3RSSHU

RII WY0RGH

RQ RII

7KHDWHU/LJKWV

SRS

ZLGH6FUHHQ0RGH

RQ RII GLP

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 36

\RXUGHVLJQWRROER[


V 223ULQFLSOH

22%DVLFV

223DWWHLQUHVQDILVIQHDPVLO\DRRQIHDOJRWRULWKPPVDQDO\

H[LVWLQJFODVVDQGLWVLQWHUIDFH LVQRWWKHRQH\RXQHHGXVHDQ DGDSWHU DQGXQLI\DODUJHLQWHUIDFHRU FRPSOH[VHWRILQWHUIDFHVXVHD IDFDGH

ƒ $QDGDSWHUFKDQJHVDQ LQWHUIDFHLQWRRQHDFOLHQW H[SHFWV

ƒ $IDFDGHGHFRXSOHVDFOLHQW

TXH QHZWHFKQL :HKDYHDDLQLQJDORZOHYHO IRUPDLQW JLQRXUGHVLJQV RIFRXSOLQ WDONRQO\WR\RXU UHPHPEHU IULHQGV 

IURPDFRPSOH[VXEV\VWHP

ƒ ,PSOHPHQWLQJDQDGDSWHUPD\ UHTXLUHOLWWOHZRUNRUDJUHDWGHDO RIZRUNGHSHQGLQJRQWKHVL]H DQGFRPSOH[LW\RIWKHWDUJHW LQWHUIDFH

ƒ ,PSOHPHQWLQJDIDFDGHUHTXLUHV

DQG7:2QHZSDWWHUQV (DFKFKDQJHVDQLQWHUIDFH WKHDGDSWHUWRFRQYHUW DQGWKHIDFDGHWRXQLI\ ƒ DQGVLPSOLI\

RQ YLWGHDQ GUHIGH GLVR PWLW WDG DFMHHVRKFW DN 3URKD PRE 6WUD $QWW QG 2EWHVHJ\HFWHURYH UMHRKH\KHVFWGDWH LFVLQDOIHO\DQ UQHZD) HH HI RRHW FW LWODP FKW D D RU\Q LWR HDF\ G OJ VUVW E  DOLOL'  FW XODQG HQ D HVKP W K RE U WV Q W WD HW OH SH DP V D HQFDGHSV' \QJHD ERQHD)VLEODELRE HV I HJ 0 WR $ \ QJ DW V U LH MH WL WU KD R  6 OLW RE F LW FW  KDV HVW GVKRFWRQXWO\EX Q H FU FW VH OHD ULGU LEMHXXS QJ DW IRRY H[ WLG DVFOWH WK UHKDQVSQJLQRQWHHUIDFMHHSU ZDVLWHQ H HD DGVIO QW XU FU DQ H OUHSRTXLQW FWGD OLH QV LQWHZUFKH R FRLI ( QJ IR LH W GL RE RP  H D VV Q IU W DF V V RW \ ED HQ [W W F WO WH Q UI RU OR H HG OH OD HQ FK UH WH RU KLYLFODSGH LQDWWH DLQRUJ GHSXEHVFOGDVHFGVLQG I SHRUHQ WV6G HFQG QF VHVJGOHWVJ \RX 'SHGH LGQJ (ZUR DVVXD H SHW YDU\GHLQ ODQG H UH EF HHQJ  OHWWLQ HW &WRLQWODRVWVPVVKHHDQPLUFHHDF)MHQDLQRQDFFWWHWFUWR RI\KR OHDW DOLY\LVXO\ LFW HUHHE DWHF WKDF0 W LIRQ UIU\ DXDOWRWHPVSUQ L WK RE DW WR \ V WL Q V LW UW DO D DQ HV Q YH DVFF LRVZWRLWWKKHGLIIHUHQQG VW RQ RQ LQ V WL D DW &  QF WL QW RI QW  DQ OLH LH IX FO F HU VW W H LQ FH UIDHUL] D V $GDS WRDDQRFOWKDVHUVSDLGHQW VW XH UDIHPHUHW HT U WHUIDFH NWRTXJHHXWKHHURUORJUDWLRQV 3URYLGHVDXQLILHGLQ WHP DFODVVLQ VVXFOEFDVODVHVVUHVHVTXZ RU HVWV \V   SH H EV R HW G RI VX OH D H D / F DE XV  D Q ) H[SHFW LVHRUEHWFDXQGR UIDFH LQWHUIDFHVL VXSS WRWKHUZ WRDVHWRI QHVDKLJKHUOHYHOLQWHWRXVH WKDWFRXOGQ·HLQWHUIDFHV IL U GH LH H DV EO DG H WL HP )DF LQFRPSD WKHVXEV\VW WKDWPDNHV



ƒ :KHQ\RXQHHGWRXVHDQ

ƒ :KHQ\RXQHHGWRVLPSOLI\

$EVWUDFWLRQ RQ (QFDSVXODWL YDULHV DW ZK H LV DW SK XO RU P (QFDSV ULWDQFH3RO\P LRQRYHULQKH VLW SR RP F RU )DY ,QKHULWDQFH RW LQWHUIDFHVQ 3URJUDPWR V RQ WL WD HQ HP LPSO GGHVLJQV RVHO\FRXSOH FW OR RU I YH UL 6W WHUD LQ DW WK V FW EHWZHHQREMH RUH[WHQVLRQ I HQ RS H E OG &ODVVHVVKRX PRGLILFDWLRQ RU EXWFORVHGI 'RQRW EVWUDFWLRQV 'HSHQGRQD UHWLRQV QF GHSHQGRQFR V \RXUIULHQG 2QO\WDONWR

:MDD=LHGAFLK

WKDWZHFRPSRVHWKHIDFDGH ZLWKLWVVXEV\VWHPDQGXVH GHOHJDWLRQWRSHUIRUPWKHZRUN RIWKHIDFDGH 7KHUHDUHWZRIRUPVRIWKH $GDSWHU3DWWHUQREMHFWDQG FODVVDGDSWHUV&ODVVDGDSWHUV UHTXLUHPXOWLSOHLQKHULWDQFH

ƒ
ƒ $QDGDSWHUZUDSVDQREMHFWWR FKDQJHLWVLQWHUIDFHDGHFRUDWRU ZUDSVDQREMHFWWRDGGQHZ EHKDYLRUVDQGUHVSRQVLELOLWLHV DQGDIDFDGH´ZUDSVµDVHWRI REMHFWVWRVLPSOLI\

&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 37

WKHDGDSWHUSDWWHUQ

AM[Q\¼[IVW\PMZKZW[[_WZL)TTWN\PM[WT]\QWV_WZL[IZMNZWU\PQ[KPIX\MZ



















  

 

 









 14$ .1 % +2$ # /3$12 " - .-+8 61 / .-$ .!)$"3  - # /3$1  - (-3$1% "$

 .5($ 6$ 6 3"'$#  6.1#2  % (- 41./$ 8.4 ,(&'3 -$$# .-$ .% 3'$2$ 36. 6.1#2  # /3$1 6(3' 36. 1.+$2 36. 6.1#2    " #$ 23(++  +.6 +$5$+ ""$22   4"*2 #. (3 !$33$1 3' - 41*$82   (2 #5 -3 &$ .% 3'$ 1(-"(/+$ .% $ 23 -.6+$#&$ 3.. , -8     2(,/+(%($2 - (-3$1% "$  $6 ,$1(" - #1$ , 36. 6.1#2

 $".1 3.1 " ++$# # /3$1 3'(2  6.1#2

 -$ #5 -3 &$ .%  " #$  1(-"(/+$ 3' 3 6 2-3 2 $ 28 2 (3 2.4-#$# 36. 6.1#2    ##2 -$6 !$' 5(.1   204$1 #(-& 2 4"*  7 ,/+$ 3' 3 5(.+ 3$2 3'$ 1(-"(/+$ .% $ 23 -.6+$#&$ 823$,.43   . ,.5($ (2 ".,/+$3$ 6(3'.43 3'(2   # /3$1 "+($-3 42$2 3'$  (-3$1% "$  - # /3$1 -# $".1 3.1 " - !$ 2 (# 3.  - .!)$"3

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 38

H[HUFLVHVROXWLRQV

6KDUSHQ \RXU SHQFLO

/HW¶VVD\ZHDOVRQHHGDQDGDSWHUWKDWFRQYHUWVD'XFNWRD7XUNH\ /HW¶VFDOOLW'XFN$GDSWHU:ULWHWKDWFODVV

NH\V GDSWLQJ7XU 1RZZHDUHDZHLPSOHPHQWWKH WR'XFNVVR DFH 7XUNH\LQWHUI

([HUFLVH VROXWLRQV

SXEOLFFODVV'XFN$GDSWHULPSOHPHQWV7XUNH\^ 'XFNGXFN 5DQGRPUDQG  :HVWDVKDUHIHUHQFHWRWKH'XFNZHDUHDGDSWLQJ SXEOLF'XFN$GDSWHU 'XFNGXFN ^ WKLVGXFN GXFN UDQG QHZ5DQGRP  ` :HDOVRUHFUHDWHDUDQGRPREMHFW  WDNHDORRNDWWKHIO\ PHWKRG SXEOLFYRLGJREEOH ^ GXFNTXDFN  WRVHHKRZLWLVXVHG ` $JREEOHMXVWEHFRPHVDTXDFN  SXEOLFYRLGÀ\ ^ LI UDQGQH[W,QW    ^ GXFNÀ\  ` ` UWKDQ 6LQFHGXFNVIO\DORWORQJH IO\WKH ` GWRRQO\

WXUNH\VZHGHFLGH YHWLPHV GXFNRQDYHUDJHRQHRIIL

6KDUSHQ \RXU SHQFLO

'RHLWKHURIWKHVHFODVVHVYLRODWHWKH3ULQFLSOHRI/HDVW.QRZOHGJH" )RUHDFKZK\RUZK\QRW"

SXEOLF+RXVH^ :HDWKHU6WDWLRQVWDWLRQ RWKHUPHWKRGVDQGFRQVWUXFWRU SXEOLFÀRDWJHW7HPS ^ UHWXUQVWDWLRQJHW7KHUPRPHWHU JHW7HPSHUDWXUH  ` `

 .QRZOHGJH OHRI/HDVW DQREMHFW KH3ULQFLS 9LRODWHVW OOLQJWKHPHWKRGRI
SXEOLF+RXVH^ :HDWKHU6WDWLRQVWDWLRQ RWKHUPHWKRGVDQGFRQVWUXFWRU

SXEOLFÀRDWJHW7HPS ^ 7KHUPRPHWHUWKHUPRPHWHU VWDWLRQJHW7KHUPRPHWHU  UHWXUQJHW7HPS+HOSHU WKHUPRPHWHU  `  SXEOLFÀRDWJHW7HPS+HOSHU 7KHUPRPHWHUWKHUPRPHWHU ^ UHWXUQWKHUPRPHWHUJHW7HPSHUDWXUH  ` ` /HDVW.QRZOHGJH

'RHVQ·WYLRODWH3ULQFLSOHRI XUZD\DURXQGWKH 7KLVVHHPVOLNHKDFNLQJRUHDOO\FKDQJHGVLQFHZH SULQFLSOH+DVDQ\WKLQJ DQRWKHUPHWKRG" OWR HFDO MXVWPRYHGRXWWK



&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 39

WKHDGDSWHUSDWWHUQ

([HUFLVHVROXWLRQV

AW]¼^M[MMVPW_\WQUXTMUMV\IVILIX\MZ\PI\ILIX\[IV-V]UMZI\QWV\WIV 1\MZI\WZ#VW__ZQ\MIVILIX\MZ\PI\ILIX\[IV1\MZI\WZ\WIV-V]UIZI\QWV SXEOLFFODVV,WHUDWRU(QXPHUDWLRQLPSOHPHQWV(QXPHUDWLRQ^ ,WHUDWRULWHUDWRU  SXEOLF,WHUDWRU(QXPHUDWLRQ ,WHUDWRULWHUDWRU ^ WKLVLWHUDWRU LWHUDWRU `  SXEOLFERROHDQKDV0RUH(OHPHQWV ^ UHWXUQLWHUDWRUKDV1H[W  `  SXEOLF2EMHFWQH[W(OHPHQW ^ UHWXUQLWHUDWRUQH[W  ` `

5I\KPMIKPXI\\MZV_Q\PQ\[QV\MV\"

3DWWHUQ

,QWHQW

Decorator

Convert one interface to another

Adapter

DonÕt alter interface, but add responsibility

Facade

Make interface simpler

\RXDUHKHUH



Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 7. Being Adaptive

Return to Table of Contents

Page 40

FURVVZRUGSX]]OHVROXWLRQ

([HUFLVHVROXWLRQV





















$













!



#

"







 

" %  % 

% 



!







&

" 













 





"





#

















"





!



&

!

 

"









"





%











"



%



!

 



"





 % !





 



 



!









 

"







!









"

 







#









!



&







"





" 





&KDSWHU

Chapter 7. Being Adaptive Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Table of Contents Chapter 8. Encapsulating Algorithms.......................................................... 1 Section 8.1. It's time for some more caffeine.................................................................................................................................. 2 Section 8.2. Whipping up some coffee and tea classes (in Java)................................................................................................... 3 Section 8.3. Sir, may I abstract your Coffee, Tea?.......................................................................................................................... 6 Section 8.4. Taking the design further............................................................................................................................................ 7 Section 8.5. Abstracting prepareRecipe()...................................................................................................................................... 8 Section 8.6. What have we done?.................................................................................................................................................. 11 Section 8.7. Meet the Template Method....................................................................................................................................... 12 Section 8.8. Let's make some tea...: Behind the Scenes............................................................................................................... 13 Section 8.9. What did the Template Method get us?.................................................................................................................... 14 Section 8.10. Template Method Pattern defined.......................................................................................................................... 15 Section 8.11. Hooked on Template Method.................................................................................................................................. 18 Section 8.12. Using the hook......................................................................................................................................................... 19 Section 8.13. Let's run the TestDrive............................................................................................................................................ 20 Section 8.14. there are no Dumb Questions.................................................................................................................................. 21 Section 8.15. The Hollywood Principle......................................................................................................................................... 22 Section 8.16. The Hollywood Principle and Template Method................................................................................................... 23 Section 8.17. there are no Dumb Questions................................................................................................................................. 24 Section 8.18. Template Methods in the Wild............................................................................................................................... 25 Section 8.19. Sorting with Template Method............................................................................................................................... 26 Section 8.20. We've got some ducks to sort................................................................................................................................. 27 Section 8.21. What is compareTo()?............................................................................................................................................. 27 Section 8.22. Comparing Ducks and Ducks................................................................................................................................. 28 Section 8.23. Let's sort some Ducks............................................................................................................................................. 29 Section 8.24. The making of the sorting duck machine............................................................................................................... 30 Section 8.25. there are no Dumb Questions................................................................................................................................. 31 Section 8.26. Swingin' with Frames............................................................................................................................................. 32 Section 8.27. Applets..................................................................................................................................................................... 33 Section 8.28. Fireside Charts........................................................................................................................................................ 34 Section 8.29. Tools for your Design Toolbox................................................................................................................................ 37 Section 8.30. Exercise solutions................................................................................................................................................... 38 Section 8.31. Exercise solutions.................................................................................................................................................... 39

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 1

the Template Method Pattern

5 (QFDSVXODWLQJ 4 $OJRULWKPV4 


:H·UHRQDQHQFDSVXODWLRQUROOZH·YHHQFDSVXODWHGREMHFW FUHDWLRQPHWKRGLQYRFDWLRQFRPSOH[LQWHUIDFHVGXFNV SL]]DVZKDWFRXOGEHQH[W":H¶UHJRLQJWRJHWGRZQWRHQFDSVXODWLQJ SLHFHVRIDOJRULWKPVVRWKDWVXEFODVVHVFDQKRRNWKHPVHOYHVULJKWLQWRDFRPSXWDWLRQ DQ\WLPHWKH\ZDQW:H¶UHHYHQJRLQJWROHDUQDERXWDGHVLJQSULQFLSOHLQVSLUHGE\ +ROO\ZRRG

WKLVLVDQHZFKDSWHU



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 2

FRIIHHDQGWHDUHFLSHVDUHVLPLODU

1\¼[\QUMNWZ[WUMUWZMKINNMQVM ;WUMXMWXTMKIV¼\TQ^M_Q\PW]\\PMQZKWNNMM#[WUM XMWXTMKIV¼\TQ^M_Q\PW]\\PMQZ\MI
CN KPI/CPW KP C T 6 VC KU QHHGG$CT V 5VCTDW\\% UHFLSH JHV WKHVH

 UD IROORZ ]EHYH OHDVH WDUEX] DV3 ULQJ6 W D V S L H U U D S % HQ HO\ZK SUHFLV

KRG QHHGG4GE 5VCTDW\\%

U U HZDWH JZDWH LOVRP ERLOLQ  %R HHLQ I I R F  HZ FXS  %U IHHLQ XUFRI ON  3R DQGPL  U D J X GV  $G

7KHUHFLSHIRU FRIIHHORRNVDORW OLNHWKHUHFLSHIRU WHDGRHVQ·WLW"

GC4GEKRG 5VCTDW\\6

U HZDWH ZDWHU LOVRP RLOLQJ  %R DLQE H W  S H H S  6W LQFX XUWHD  3R Q R P H GO  $G SW EHNH VKRXOG VDQG VHFUHW H DG HWU DO &RIIH ¿GHQWL DUEX]] O\FRQ DUH6W VWULFW FLSHV $OOUH



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 3

WKHWHPSODWHPHWKRGSDWWHUQ

?PQXXQVO]X[WUMKWNNMMIVL\MIKTI[[M[ QV2I^I /HW·VSOD\´FRGLQJEDULVWDµDQGZULWH VRPHFRGHIRUFUHDWLQJFRIIHHDQGWHD +HUH·VWKHFRIIHH

IRUPDNLQJFRIIHH

+HUH·VRXU&RIIHHFODVV

H SHIRUFRIIH +HUH·VRXUUHFL IWKHWUDLQLQJPDQXDO R VWUDLJKWRXW

SXEOLFFODVV&RIIHH^  HQWHGDV YRLGSUHSDUH5HFLSH ^ WHSVLVLPSOHP (DFKRIWKHVHWKRG ERLO:DWHU  EUHZ&RIIHH*ULQGV  DVHSDUDWHP SRXU,Q&XS  DGG6XJDU$QG0LON  `  SXEOLFYRLGERLO:DWHU ^ 6\VWHPRXWSULQWOQ ³%RLOLQJZDWHU´  (DFKRIWKHVHPHWKRGV ` LPSOHPHQWVRQHVWHSRI  WKHDOJRULWKP7KHUH·V SXEOLFYRLGEUHZ&RIIHH*ULQGV ^ DPHWKRGWRERLOZDWHU 6\VWHPRXWSULQWOQ ³'ULSSLQJ&RIIHHWKURXJK¿OWHU´  EUHZWKHFRIIHHSRXU ` WKHFRIIHHLQDFXSDQG  DGGVXJDUDQGPLON SXEOLFYRLGSRXU,Q&XS ^ 6\VWHPRXWSULQWOQ ³3RXULQJLQWRFXS´  `  SXEOLFYRLGDGG6XJDU$QG0LON ^ 6\VWHPRXWSULQWOQ ³$GGLQJ6XJDUDQG0LON´  ` `

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 4

WHDLPSOHPHQWDWLRQ

DQGQRZWKH7HD 7KLVORRNVYHU\VLPLODUWRWKH

RQHZHMXVWLPSOHPHQWHGLQ SXEOLFFODVV7HD^ &RIIHHWKHVHFRQGDQGIRUWK  VWHSVDUHGLIIHUHQWEXWLW·V YRLGSUHSDUH5HFLSH ^ ERLO:DWHU  EDVLFDOO\WKHVDPHUHFLSH VWHHS7HD%DJ  SRXU,Q&XS  DGG/HPRQ  `  SXEOLFYRLGERLO:DWHU ^ 6\VWHPRXWSULQWOQ ³%RLOLQJZDWHU´  `  SXEOLFYRLGVWHHS7HD%DJ ^ 6\VWHPRXWSULQWOQ ³6WHHSLQJWKHWHD´  7KHVHWZR ` PHWKRGVDUH  VSHFLDOL]HGWR SXEOLFYRLGDGG/HPRQ ^ 7HD 6\VWHPRXWSULQWOQ ³$GGLQJ/HPRQ´  `  SXEOLFYRLGSRXU,Q&XS ^ 6\VWHPRXWSULQWOQ ³3RXULQJLQWRFXS´  ` `

1RWLFHWKDW WKHVHWZR PHWKRGVDUH H[DFWO\WKH VDPHDVWKH\DUH LQ&RIIHH6R ZHGHILQLWHO\ KDYHVRPHFRGH GXSOLFDWLRQJRLQJ RQKHUH

:KHQZH·YHJRWFRGH GXSOLFDWLRQWKDW·VDJRRGVLJQ ZHQHHGWRFOHDQXSWKHGHVLJQ,W VHHPVOLNHKHUHZHVKRXOGDEVWUDFW WKHFRPPRQDOLW\LQWRDEDVHFODVV VLQFHFRIIHHDQGWHDDUH VR VLPLODU"



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 5

WKHWHPSODWHPHWKRGSDWWHUQ

'HVLJQ3X]]OH AW]¼^M[MMV\PI\\PM+WNNMMIVL
\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 6

¿UVWFXWDWDEVWUDFWLRQ

;QZUIa1IJ[\ZIK\aW]Z+WNNMM
RXU,Q&XS  7KHERLO:DWHU DQGS RWKVXEFODVVHV \E GE DUH VK PHWKRGVDUH KHVXSHUFODVV VRWKH\DUHGHILQHGLQW

&DIIHLQH%HYHUDJH SUHSDUH5HFLSH

7KHSUHSDUH5HFLSH PHWKRG GLIIHUVLQHDFKVXEFODVVVRLW LV GHILQHGDVDEVWUDFW

(DFKVXEFODVV LPSOHPHQWVLWV RZQUHFLSH

ERLO:DWHU SRXU,Q&XS

7HD

&RIIHH SUHSDUH5HFLSH

SUHSDUH5HFLSH

EUHZ&RIIHH*ULQGV

VWHHS7HD%DJ

DGG6XJDU$QG0LON

DGG/HPRQ

(DFKVXEFODVVRYHUULGHV WKHSUHSDUH5HFLSH  PHWKRGDQGLPSOHPHQWV LWVRZQUHFLSH

IHH SHFLILFWR&RI 7KHPHWKRGVV LQWKHVXEFODVVHV DQG7HDVWD\

YiX`e gfn\i 'LGZHGRDJRRGMRERQWKHUHGHVLJQ"+PPPPWDNHDQRWKHUORRN$UHZHRYHUORRNLQJVRPHRWKHU FRPPRQDOLW\":KDWDUHRWKHUZD\VWKDW&RIIHHDQG7HDDUHVLPLODU"



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 7

WKHWHPSODWHPHWKRGSDWWHUQ


KRG QHHGG4GE 5VCTDW\\%

U U HZDWH JZDWH LOVRP ERLOLQ  %R HHLQ I I R F  HZ FXS  %U IHHLQ XUFRI PLON  3R UDQG D 5VCTDW\\6GC4GEKRG J X V  G  $G  %RLOVRPHZDWHU  6WHHSWHDLQERLOLQJ ZDWHU  3RXUWHDLQFXS  $GGOHPRQ

1RWLFHWKDWERWKUHFLSHVIROORZWKHVDPHDOJRULWKP



*WQT[WUM_I\MZ



=[M\PMPW\_I\MZ\WM`\ZIK\\PMKWNNMM WZ\MI



8W]Z\PMZM[]T\QVOJM^MZIOMQV\WIK]X



)LL\PMIXXZWXZQI\MKWVLQUMV\[\W\PM JM^MZIOM

7KHVHDUHQ·W DEVWUDFWHGEXW DUHWKHVDPH WKH\MXVWDSSO\ WRGLIIHUHQW EHYHUDJHV

7KHVHWZRDUH DOUHDG\DEVWUDFWHG LQWRWKHEDVHFODVV

6RFDQZHÀQGDZD\WRDEVWUDFWSUHSDUH5HFLSH WRR"
\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 8

DEVWUDFWWKHDOJRULWKP

)J[\ZIK\QVOXZMXIZM:MKQXM /HW·VVWHSWKURXJKDEVWUDFWLQJSUHSDUH5HFLSH  IURPHDFKVXEFODVV WKDWLVWKH&RIIHHDQG7HD FODVVHV  


7HD

&RIIHH YRLGSUHSDUH5HFLSH ^ ERLO:DWHU  EUHZ&RIIHH*ULQGV  SRXU,Q&XS  DGG6XJDU$QG0LON  `

YRLGSUHSDUH5HFLSH ^ ERLO:DWHU  VWHHS7HD%DJ  SRXU,Q&XS  DGG/HPRQ  `

4M\¼[\PQVS\PZW]OP\PQ["[\MMXQVOIVLJZM_QVOIZMV¼\[WLQNNMZMV\#\PMa¼ZMXZM\\aIVITWOW][ ;WTM\¼[UISMIVM_UM\PWLVIUM[IaJZM_IVL_M¼TT][M\PM[IUMVIUM_PM\PMZ _M¼ZMJZM_QVOKWNNMMWZ[\MMXQVO\MI 4QSM_Q[MILLQVO[]OIZIVLUQTSQ[XZM\\aU]KP\PM[IUMI[ILLQVOITMUWV"JW\P IZMILLQVOKWVLQUMV\[\W\PMJM^MZIOM4M\¼[IT[WUISM]XIVM_UM\PWLVIUM ILL+WVLQUMV\[\WPIVLTM\PQ[;WW]ZVM_XZMXIZM:MKQXMUM\PWL_QTTTWWSTQSM\PQ["

YRLGSUHSDUH5HFLSH ^ ERLO:DWHU  EUHZ  SRXU,Q&XS  DGG&RQGLPHQWV  `





6W__MPI^MIVM_XZMXIZM:MKQXMUM\PWLJ]\_MVMML\WÅ\Q\QV\W\PMKWLM
&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 9

WKHWHPSODWHPHWKRGSDWWHUQ

MXVW

VWUDFW &DIIHLQH%HYHUDJHLVDE LJQ GHV VV FOD WKH OLNHLQ

PHWKRGZLOOEHXVHG 1RZWKHVDPHSUHSDUH5HFLSHIHHSUHSDUH5HFLSH LV &RI QG DD WRPDNHERWK7H RQ·WZDQWRXUVXEFODVVHV GHFODUHGILQDOEHFDXVHZHG PHWKRGDQGFKDQJHWKH WREHDEOHWRRYHUULGHWKLV HSVDQGWREUHZ  UHFLSH:H·YHJHQHUDOL]HGVW QWV  WKHEHYHUDJHDQGDGG&RQGLPH

SXEOLFDEVWUDFWFODVV&DIIHLQH%HYHUDJH^  ¿QDOYRLGSUHSDUH5HFLSH ^ ERLO:DWHU  EUHZ  SRXU,Q&XS  DGG&RQGLPHQWV  `  %HFDXVH&RIIHHDQG7HDKDQGOHWKHVHPHWKRGV DEVWUDFWYRLGEUHZ  LQGLIIHUHQWZD\VWKH\·UHJRLQJWRKDYHWR  EHGHFODUHGDVDEVWUDFW/HWWKHVXEFODVVHV DEVWUDFWYRLGDGG&RQGLPHQWV  ZRUU\DERXWWKDWVWXII  YRLGERLO:DWHU ^ 6\VWHPRXWSULQWOQ ³%RLOLQJZDWHU´  ` 5HPHPEHUZHPRYHGWKHVHLQWR  WKH&DIIHLQH%HYHUDJHFODVV EDFN YRLGSRXU,Q&XS ^ LQRXUFODVVGLDJUDP  6\VWHPRXWSULQWOQ ³3RXULQJLQWRFXS´  ` ` 

.QVITTa_MVMML\WLMIT_Q\P\PM+WNNMMIVL
$VLQRXUGHVLJQ7HDDQG&RIIHH QRZH[WHQG&DIIHLQH%HYHUDJH

7HDQHHGVWRGHILQHEUHZ DQG DGG&RQGLPHQWV ³WKHWZRDEVWUDFW PHWKRGVIURP%HYHUDJH 6DPHIRU&RIIHHH[FHSW&RIIHHGHDOV ZLWKFRIIHHDQGVXJDUDQGPLONLQVWHDG RIWHDEDJVDQGOHPRQ

SXEOLFFODVV&RIIHHH[WHQGV&DIIHLQH%HYHUDJH^ SXEOLFYRLGEUHZ ^ 6\VWHPRXWSULQWOQ ³'ULSSLQJ&RIIHHWKURXJK¿OWHU´  ` SXEOLFYRLGDGG&RQGLPHQWV ^ 6\VWHPRXWSULQWOQ ³$GGLQJ6XJDUDQG0LON´  ` `

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 10

FODVVGLDJUDPIRUFDIIHLQHEHYHUDJHV

6KDUSHQ \RXU SHQFLO



'UDZWKHQHZFODVVGLDJUDPQRZWKDWZH¶YHPRYHGWKH LPSOHPHQWDWLRQRISUHSDUH5HFLSH LQWRWKH&DIIHLQH%HYHUDJHFODVV

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 11

WKHWHPSODWHPHWKRGSDWWHUQ

?PI\PI^M_MLWVM' :H·YHUHFRJQL]HG WKDWWKHWZRUHFLSHV DUHHVVHQWLDOO\WKH VDPHDOWKRXJK VRPHRIWKHVWHSV UHTXLUHGLIIHUHQW LPSOHPHQWDWLRQV6R ZH·YHJHQHUDOL]HGWKH UHFLSHDQGSODFHGLWLQ WKHEDVHFODVV


 

MZ

I\MZ JIOQV\P M_ ;\MM X\P M\MI



K ]X 8W ]Z\M IQVI



)LLTMUWV

+ W N NM M 

*W QT[ WU M_I\M Z  * ZM _\ P M KW N NM MO Z QVL[  8W ] ZKW N NM MQVIK ] X  ) LL[ ]O I Z IVLUQT S

+INNMQVM*M^MZIOM JHQHUDOL]H

UHOLHVRQ VXEFODVVIRU

VV 7HDVXEFOD

VRPHVWHSV



;\M MX\PM\M IJIOQV\P M_ I\M Z



)LLTMUWV



*WQT[WUM_I\MZ



*ZM_



8W]ZJM^MZIOMQVIK]X



)LLKWVLQUMV\[

JHQHUDOL]H

UHOLHVRQ VXEFODVVIRU VRPHVWHSV

&RIIHH

VXEFODVV

HNQRZV &DIIHLQH%HYHUDJ WHSVRI DQGFRQWUROVWKHV IRUPV WKHUHFLSHDQGSHUIEXW VWHSVDQGLWVHO RIIHH UHOLHVRQ7HDRU&  WRGRVWHSVDQG





NM MOZ QVL[ *ZM_\ PMK WN UQTS )LL[ ]O IZIVL

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 12

PHHWWKHWHPSODWHPHWKRGSDWWHUQ

5MM\\PM
SUHSDUH5HFLSH LVRXUWHPSODWHPHWKRG :K\" SXEOLFDEVWUDFWFODVV&DIIHLQH%HYHUDJH^ YRLG¿QDOSUHSDUH5HFLSH ^ ERLO:DWHU 

EUHZ 

%HFDXVH   ,WLVDPHWKRGDIWHUDOO   ,WVHUYHVDVDWHPSODWHIRUDQ DOJRULWKPLQWKLVFDVHDQDOJRULWKPIRU PDNLQJFDIIHLQDWHGEHYHUDJHV

,QWKHWHPSODWHHDFKVWHSRI WKHDOJRULWKPLVUHSUHVHQWHG E\DPHWKRG

SRXU,Q&XS 

6RPHPHWKRGVDUHKDQGOHG E\WKLVFODVV

DGG&RQGLPHQWV  `

DQGVRPHDUHKDQGOHG E\WKHVXEFODVV

DEVWUDFWYRLGEUHZ  DEVWUDFWYRLGDGG&RQGLPHQWV  YRLGERLO:DWHU ^ LPSOHPHQWDWLRQ `

7KHPHWKRGVWKDWQHHGWR EHVXSSOLHGE\DVXEFODVVDUH GHFODUHGDEVWUDFW

YRLGSRXU,Q&XS ^ LPSOHPHQWDWLRQ ` `

7KH7HPSODWH0HWKRGGHILQHVWKHVWHSVRIDQDOJRULWKPDQGDOORZV VXEFODVVHVWRSURYLGHWKHLPSOHPHQWDWLRQIRURQHRUPRUHVWHSV 

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 13

WKHWHPSODWHPHWKRGSDWWHUQ

4M\¼[UISM[WUM\MI

%HKLQG

/HW·VVWHSWKURXJKPDNLQJDWHDDQGWUDFHWKURXJK KRZWKHWHPSODWHPHWKRGZRUNV


7SIaÅZ[\_MVMMLI


WKH6FHQHV

ERLO:DWHU  EUHZ  SRXU,Q&XS  DGG&RQGLPHQWV 




.QZ[\_MJWQT_I\MZ"

7KHSUHSDUH5HFLSH  PHWKRGFRQWUROVWKH DOJRULWKPQRRQHFDQ FKDQJHWKLVDQGLW FRXQWVRQVXEFODVVHVWR SURYLGHVRPHRUDOORI WKHLPSOHPHQWDWLRQ &DIIHLQH%HYHUDJH

ERLO:DWHU 

SUHSDUH5HFLSH ERLO:DWHU

_PQKPPIXXMV[QV+INNMQVM*M^MZIOM



SRXU,Q&XS

6M`\_MVMML\WJZM_\PM\MI_PQKPWVTa\PM[]JKTI[[SVW_[ PW_\WLW" EUHZ  7HD



6W__MXW]Z\PM\MIQV\PMK]X#\PQ[Q[\PM[IUMNWZITTJM^MZIOM[[WQ\ PIXXMV[QV+INNMQVM*M^MZIOM"

EUHZ DGG&RQGLPHQWV 

SRXU,Q&XS 



.QVITTa_MILL\PMKWVLQUMV\[_PQKPIZM[XMKQÅK\WMIKPJM^MZIOM[W \PM[]JKTI[[QUXTMUMV\[\PQ[" DGG&RQGLPHQWV 

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 14

ZKDWGLGWHPSODWHPHWKRGJHWXV"

?PI\LQL\PM
=VLMZXW_MZML


6M_PQX+INNMQVM*M^MZIOM XW_MZMLJa
&RIIHHDQG7HDDUHUXQQLQJWKHVKRZ WKH\FRQWUROWKHDOJRULWKP

7KH&DIIHLQH%HYHUDJHFODVVUXQV WKHVKRZLWKDVWKHDOJRULWKPDQG SURWHFWVLW

&RGHLVGXSOLFDWHGDFURVV&RIIHHDQG 7HD

7KH&DIIHLQH%HYHUDJHFODVV PD[LPL]HVUHXVHDPRQJWKH VXEFODVVHV

&RGHFKDQJHVWRWKHDOJRULWKP UHTXLUHRSHQLQJWKHVXEFODVVHVDQG PDNLQJPXOWLSOHFKDQJHV

7KHDOJRULWKPOLYHVLQRQHSODFHDQG FRGHFKDQJHVRQO\QHHGWREHPDGH WKHUH

&ODVVHVDUHRUJDQL]HGLQDVWUXFWXUH WKDWUHTXLUHVDORWRIZRUNWRDGGD QHZFDIIHLQHEHYHUDJH

7KH7HPSODWH0HWKRGYHUVLRQSURYLGHV DIUDPHZRUNWKDWRWKHUFDIIHLQH EHYHUDJHVFDQEHSOXJJHGLQWR1HZ FDIIHLQHEHYHUDJHVRQO\QHHGWR LPSOHPHQWDFRXSOHRIPHWKRGV

.QRZOHGJHRIWKHDOJRULWKPDQGKRZ WRLPSOHPHQWLWLVGLVWULEXWHGRYHU PDQ\FODVVHV

7KH&DIIHLQH%HYHUDJHFODVV FRQFHQWUDWHVNQRZOHGJHDERXWWKH DOJRULWKPDQGUHOLHVRQVXEFODVVHVWR SURYLGHFRPSOHWHLPSOHPHQWDWLRQV

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 15

WKHWHPSODWHPHWKRGSDWWHUQ




7KHWHPSODWHPHWKRGPDNHVXVHRIWKH SULPLWLYH2SHUDWLRQVWRLPSOHPHQWDQ DOJRULWKP,WLVGHFRXSOHGIURPWKHDFWXDO LPSOHPHQWDWLRQRIWKHVHRSHUDWLRQV

7KH$EVWUDFW&ODVV FRQWDLQVWKHWHPSODWH PHWKRG DQGDEVWUDFWYHUVLRQV RIWKHRSHUDWLRQVXVHG LQWKHWHPSODWHPHWKRG

$EVWUDFW&ODVV SULPLWLYH2SHUDWLRQ 

WHPSODWH0HWKRG

SULPLWLYH2SHUDWLRQ 

SULPLWLYH2SHUDWLRQ SULPLWLYH2SHUDWLRQ

&RQFUHWH&ODVV

Q\ D\EHPD 7KHUHP H&ODVVHVHDFK RI &RQFUHW WLQJWKHIXOOVHW KH LPSOHPHQ QVUHTXLUHGE\W RSHUDWLR PHWKRG WHPSODWH

SULPLWLYH2SHUDWLRQ SULPLWLYH2SHUDWLRQ

7KH&RQFUHWH&ODVVLPSOHPHQWV WKHDEVWUDFWRSHUDWLRQV ZKLFKDUHFDOOHGZKHQWKH WHPSODWH0HWKRG QHHGVWKHP

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 16

WHPSODWHPHWKRGSDWWHUQXSFORVH

&RGH8S&ORVH 4M\¼[\ISMIKTW[MZTWWSI\PW_\PM)J[\ZIK\+TI[[Q[LMÅVMLQVKT]LQVO\PM\MUXTI\MUM\PWL IVLXZQUQ\Q^MWXMZI\QWV[

VVLW +HUHZHKDYHRXUDEVWUDFWFODQWWR LVGHFODUHGDEVWUDFWDQGPHD URYLGH EHVXEFODVVHGE\FODVVHVWKDWSLRQV LPSOHPHQWDWLRQVRIWKHRSHUDW

,W·V +HUH·VWKHWHPSODWHPHWKRG FODVVHV GHFODUHGILQDOWRSUHYHQWVXE I IURPUHZRUNLQJWKHVHTXHQFHR VWHSVLQWKHDOJRULWKP

DEVWUDFWFODVV$EVWUDFW&ODVV^  ¿QDOYRLGWHPSODWH0HWKRG ^ SULPLWLYH2SHUDWLRQ  SULPLWLYH2SHUDWLRQ  FRQFUHWH2SHUDWLRQ  `

7KHWHPSODWHPHWKRG GHILQHVWKHVHTXHQFHRI VWHSVHDFKUHSUHVHQWHG E\DPHWKRG

DEVWUDFWYRLGSULPLWLYH2SHUDWLRQ   DEVWUDFWYRLGSULPLWLYH2SHUDWLRQ   YRLGFRQFUHWH2SHUDWLRQ ^ LPSOHPHQWDWLRQKHUH ` `

,QWKLVH[DPSOHWZRRI WKHSULPLWLYHRSHUDWLRQV PXVWEHLPSOHPHQWHGE\ FRQFUHWHVXEFODVVHV

:HDOVRKDYHDFRQFUHWHRSHUDWLRQGHILQHG LQWKHDEVWUDFWFODVV0RUHDERXWWKHVH NLQGVRIPHWKRGVLQDELW



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 17

WKHWHPSODWHPHWKRGSDWWHUQ

&RGH:D\8S&ORVH 6W__M¼ZMOWQVO\WTWWSM^MVKTW[MZI\\PM\aXM[WN UM\PWL\PI\KIVOWQV\PMIJ[\ZIK\KTI[["

:H·YHFKDQJHGWKH RLQFOXGH WHPSODWH0HWKRG W DQHZPHWKRGFDOO DEVWUDFWFODVV$EVWUDFW&ODVV^  ¿QDOYRLGWHPSODWH0HWKRG ^ SULPLWLYH2SHUDWLRQ  SULPLWLYH2SHUDWLRQ  FRQFUHWH2SHUDWLRQ  KRRN  ` DEVWUDFWYRLGSULPLWLYH2SHUDWLRQ   DEVWUDFWYRLGSULPLWLYH2SHUDWLRQ   ¿QDOYRLGFRQFUHWH2SHUDWLRQ ^ LPSOHPHQWDWLRQKHUH ` YRLGKRRN ^`

:HVWLOOKDYHRXUSULPLWLYH PHWKRGVWKHVHDUH DEVWUDFWDQGLPSOHPHQWHG E\FRQFUHWHVXEFODVVHV

ILQHGLQWKH $FRQFUHWHRSHUDWLRQLVGH GHFODUHG HLV VRQ 7KL V FODV FW WUD DEV ·WRYHUULGHLW ILQDOVRWKDWVXEFODVVHVFDQ DWHPHWKRG PSO WH WKH LQ ,WPD\EHXVHG VVHV GLUHFWO\RUXVHGE\VXEFOD

`

$FRQFUHWHPHWKRGEXW LWGRHVQRWKLQJ

:HFDQDOVRKDYHFRQFUHWHPHWKRGVWKDWGRQRWKLQJ E\GHIDXOWZHFDOOWKHVH´KRRNVµ6XEFODVVHVDUHIUHH WRRYHUULGHWKHVHEXWGRQ·WKDYHWR:H·UHJRLQJWR VHHKRZWKHVHDUHXVHIXORQWKHQH[WSDJH

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 18

LPSOHPHQWDKRRN

0WWSMLWV
:LWKDKRRN,FDQRYHUULGH WKHPHWKRGRUQRW,W·VP\FKRLFH ,I,GRQ·WWKHDEVWUDFWFODVV SURYLGHVDGHIDXOWLPSOHPHQWDWLRQ


SXEOLFDEVWUDFWFODVV&DIIHLQH%HYHUDJH:LWK+RRN^  YRLGSUHSDUH5HFLSH ^ ERLO:DWHU  EUHZ  SRXU,Q&XS  LI FXVWRPHU:DQWV&RQGLPHQWV ^ DGG&RQGLPHQWV  ` `  DEVWUDFWYRLGEUHZ   DEVWUDFWYRLGDGG&RQGLPHQWV   YRLGERLO:DWHU ^ 6\VWHPRXWSULQWOQ ³%RLOLQJZDWHU´  `  YRLGSRXU,Q&XS ^ 6\VWHPRXWSULQWOQ ³3RXULQJLQWRFXS´  `  ERROHDQFXVWRPHU:DQWV&RQGLPHQWV ^ UHWXUQWUXH ` `



QW FRQGLWLRQDOVWDWHPH :H·YHDGGHGDOLWWOH RQDFRQFUHWH ,I WKDWEDVHVLWVVXFFHVV DQWV&RQGLPHQWV  PHWKRGFXVWRPHU: 6DFRQGLPHQWVRQO\ 17 WKHFXVWRPHU:$ RQGLPHQWV  WKHQGRZHFDOODGG&

DPHWKRG +HUHZH·YHGHILQHG \GHIDXOW SW HP O\ RVW ZLWKD P LVPHWKRGMXVW LPSOHPHQWDWLRQ7K HVQRWKLQJHOVH GR G UHWXUQVWUXHDQ 7KLVLVDKRRNEHFDXVHWKH VXEFODVVFDQRYHUULGHWKLV PHWKRGEXWGRHVQ·WKDYHWR

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 19

WKHWHPSODWHPHWKRGSDWWHUQ

=[QVO\PMPWWS
SXEOLFFODVV&RIIHH:LWK+RRNH[WHQGV&DIIHLQH%HYHUDJH:LWK+RRN^  SXEOLFYRLGEUHZ ^ 6\VWHPRXWSULQWOQ ³'ULSSLQJ&RIIHHWKURXJK¿OWHU´  `  SXEOLFYRLGDGG&RQGLPHQWV ^ 6\VWHPRXWSULQWOQ ³$GGLQJ6XJDUDQG0LON´  ULGH +HUH·VZKHUH\RXRYHU\RXU ` SURYLGH QG ND RR HK WK  RZQIXQFWLRQDOLW\ SXEOLFERROHDQFXVWRPHU:DQWV&RQGLPHQWV ^ 6WULQJDQVZHU JHW8VHU,QSXW  LI DQVZHUWR/RZHU&DVH VWDUWV:LWK ³\´ ^ UHWXUQWUXH `HOVH^ UHWXUQIDOVH ` `  SULYDWH6WULQJJHW8VHU,QSXW ^ 6WULQJDQVZHU QXOO

*HWWKHXVHU·VLQSXWRQ WKHFRQGLPHQWGHFLVLRQ DQGUHWXUQWUXHRUIDOVH GHSHQGLQJRQWKHLQSXW

6\VWHPRXWSULQW ³:RXOG\RXOLNHPLONDQGVXJDUZLWK\RXUFRIIHH \Q "³  %XIIHUHG5HDGHULQ QHZ%XIIHUHG5HDGHU QHZ,QSXW6WUHDP5HDGHU 6\VWHPLQ  WU\^ DQVZHU LQUHDG/LQH  `FDWFK ,2([FHSWLRQLRH ^ 6\VWHPHUUSULQWOQ ³,2HUURUWU\LQJWRUHDG\RXUDQVZHU´  ` LI DQVZHU QXOO ^ UHWXUQ³QR´ QG KH·GOLNHPLOND GOLQH ` DQ DVNVWKHXVHULI PP GH FR FR H V WK KL 7 UHWXUQDQVZHU LVLQSXWIURP VXJDUDQGJHWVK ` ` \RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 20

WHVWGULYH

4M\¼[Z]V\PM
SXEOLFFODVV%HYHUDJH7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^  7HD:LWK+RRNWHD+RRN QHZ7HD:LWK+RRN  &RIIHH:LWK+RRNFRIIHH+RRN QHZ&RIIHH:LWK+RRN   6\VWHPRXWSULQWOQ ³?Q0DNLQJWHD´  WHD+RRNSUHSDUH5HFLSH   6\VWHPRXWSULQWOQ ³?Q0DNLQJFRIIHH´  FRIIHH+RRNSUHSDUH5HFLSH  ` `

&UHDWHDWHD $FRIIHH  $QGFDOOSUHSDUH5HFLSH RQERWK

)VLTM\¼[OQ^MQ\IZ]V )LOH(GLW:LQGRZ+HOSVHQGPRUHKRQHVWWHD

MDYD%HYHUDJH7HVW'ULYH 0DNLQJWHD %RLOLQJZDWHU $VWHDPLQJFXSRIWHDDQG\HVRI 6WHHSLQJWKHWHD FRXUVHZHZDQWWKDWOHPRQ 3RXULQJLQWRFXS :RXOG\RXOLNHOHPRQZLWK\RXUWHD \Q "\ $GGLQJ/HPRQ

IIHH

RIFR 0DNLQJFRIIHH $QGDQLFHKRWFXS HZDLVWOLQH %RLOLQJZDWHU EXWZH·OOSDVVRQWK V 'ULSSLQJ&RIIHHWKURXJK¿OWHU H[SDQGLQJFRQGLPHQW 3RXULQJLQWRFXS :RXOG\RXOLNHPLONDQGVXJDUZLWK\RXUFRIIHH \Q "Q 



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 21

WKHWHPSODWHPHWKRGSDWWHUQ

1RZ,ZRXOGKDYHWKRXJKW WKDWIXQFWLRQDOLW\OLNHDVNLQJWKH FXVWRPHUFRXOGKDYHEHHQXVHGE\ DOOVXEFODVVHV"

AW]SVW__PI\'?MIOZMM_Q\PaW]*]\aW] PI^M\WILUQ\JMNWZMaW]\PW]OP\WN \PI\Q\_I[I XZM\\aKWWTM`IUXTMWN PW_IPWWSKIVJM][ML \WKWVLQ\QWVITTaKWV\ZWT\PMÆW_WN \PMITOWZQ\PU QV\PMIJ[\ZIK\KTI[[:QOP\' ?M¼ZM[]ZMaW]KIV\PQVSWN UIVaW\PMZUWZM ZMITQ[\QK[KMVIZQW[_PMZMaW]KW]TL][M\PM \MUXTI\MUM\PWLIVLPWWS[QVaW]ZW_VKWLM

there are no

Dumb Questions

Q:

:KHQ,·PFUHDWLQJDWHPSODWH PHWKRGKRZGR,NQRZZKHQWRXVH DEVWUDFWPHWKRGVDQGZKHQWRXVH KRRNV"

A:

8VHDEVWUDFWPHWKRGVZKHQ\RXU VXEFODVV0867SURYLGHDQLPSOHPHQWDWLRQ RIWKHPHWKRGRUVWHSLQWKHDOJRULWKP 8VHKRRNVZKHQWKDWSDUWRIWKHDOJRULWKP LVRSWLRQDO:LWKKRRNVDVXEFODVVPD\ FKRRVHWRLPSOHPHQWWKDWKRRNEXWLWGRHVQ·W KDYHWR

Q:

:KDWDUHKRRNVUHDOO\VXSSRVHG WREHXVHGIRU"

A:

7KHUHDUHDIHZXVHVRIKRRNV$V ZHMXVWVDLGDKRRNPD\SURYLGHDZD\IRU DVXEFODVVWRLPSOHPHQWDQRSWLRQDOSDUW

RIDQDOJRULWKPRULILWLVQ·WLPSRUWDQWWR WKHVXEFODVV·LPSOHPHQWDWLRQLWFDQVNLS LW$QRWKHUXVHLVWRJLYHWKHVXEFODVV DFKDQFHWRUHDFWWRVRPHVWHSLQWKH WHPSODWHPHWKRGWKDWLVDERXWWRKDSSHQ RUMXVWKDSSHQHG)RULQVWDQFHDKRRN PHWKRGOLNHMXVW5H2UGHUHG/LVW DOORZVWKH VXEFODVVWRSHUIRUPVRPHDFWLYLW\ VXFKDV UHGLVSOD\LQJDQRQVFUHHQUHSUHVHQWDWLRQ  DIWHUDQLQWHUQDOOLVWLVUHRUGHUHG$V\RX·YH VHHQDKRRNFDQDOVRSURYLGHDVXEFODVV ZLWKWKHDELOLW\WRPDNHDGHFLVLRQIRUWKH DEVWUDFWFODVV

Q:

'RHVDVXEFODVVKDYHWR LPSOHPHQWDOOWKHDEVWUDFWPHWKRGVLQWKH $EVWUDFW&ODVV"

A:


SURYLGHVDFRPSOHWHLPSOHPHQWDWLRQRIWKH XQGHILQHGVWHSVRIWKHWHPSODWHPHWKRG·V DOJRULWKP

Q:

,WVHHPVOLNH,VKRXOGNHHSP\ DEVWUDFWPHWKRGVVPDOOLQQXPEHU RWKHUZLVHLWZLOOEHDELJMREWRLPSOHPHQW WKHPLQWKHVXEFODVV

A:

7KDW·VDJRRGWKLQJWRNHHSLQ PLQGZKHQ\RXZULWHWHPSODWHPHWKRGV 6RPHWLPHVWKLVFDQEHGRQHE\QRWPDNLQJ WKHVWHSVRI\RXUDOJRULWKPWRRJUDQXODU%XW LW·VREYLRXVO\DWUDGHRIIWKHOHVVJUDQXODULW\ WKHOHVVIOH[LELOLW\ 5HPHPEHUWRRWKDWVRPHVWHSVZLOOEH RSWLRQDOVR\RXFDQLPSOHPHQWWKHVHDV KRRNVUDWKHUWKDQDEVWUDFWFODVVHVHDVLQJ WKHEXUGHQRQWKHVXEFODVVHVRI\RXU DEVWUDFWFODVV

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 22

WKHKROO\ZRRGSULQFLSOH



7KH+ROO\ZRRG3ULQFLSOH 'RQ¶WFDOOXVZH¶OOFDOO\RX

-I[a\WZMUMUJMZZQOP\'*]\_PI\PI[Q\OW\\WLW_Q\P77 LM[QOV'
0QOP4M^MT+WUXWVMV\

QWV OFRPSRQH /RZOHYHLFLSDWHLQWKH FDQSDUW LRQ FRPSXWDW



4W_4M^MT +WUXWVMV\

)VW\PMZ 4W_4M^MT +WUXWVMV\

%XWWKHKLJKOHYHOO FRPSRQHQWVFRQWUR ZKHQDQGKRZ

$ORZOHYHOFRPSRQHQWQ HYHU FDOOVDKLJKOHYHOFRPSRQHQ W GLUHFWO\

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 23

WKHWHPSODWHPHWKRGSDWWHUQ


KOHYHO &DIIHLQH%HYHUDJHLVRXUKLJRYHUWKH FRPSRQHQW,WKDVFRQWURO GFDOOVRQ DOJRULWKPIRUWKHUHFLSHDQ\·UHQHHGHG WKHVXEFODVVHVRQO\ZKHQWKHPHWKRG IRUDQLPSOHPHQWDWLRQRID

&OLHQWVRIEHYHUD RQWKH&DIIHLQH%HJHVZLOOGHSHQG DEVWUDFWLRQUDWKH YHUDJH FRQFUHWH7HDRU UWKDQD UHGXFHVGHSHQGHQF&RIIHHZKLFK RYHUDOOV\VWHP LHVLQWKH

&DIIHLQH%HYHUDJH SUHSDUH5HFLSH ERLO:DWHU SRXU,Q&XS EUHZ DGG&RQGLPHQWV

&RIIHH EUHZ DGG&RQGLPHQWV

7HD EUHZ DGG&RQGLPHQWV

YHU 7HDDQG&RIIHHQHFODVV FDOOWKHDEVWUDFWEHLQJ GLUHFWO\ZLWKRXW ´FDOOHGµILUVW

7KHVXEFODVVHVDUH SURYLGHLPSOHPHQW XVHGVLPSO\WR DWLRQGHWDLOV

YiX`e gfn\i

:KDWRWKHUSDWWHUQVPDNHXVHRIWKH+ROO\ZRRG3ULQFLSOH"

7KH)DFWRU\0HWKRG2EVHUYHUDQ\RWKHUV" \RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 24

ZKRGRHVZKDW

there are no

Dumb Questions

Q:

+RZGRHVWKH+ROO\ZRRG3ULQFLSOH UHODWHWRWKH'HSHQGHQF\,QYHUVLRQ 3ULQFLSOHWKDWZHOHDUQHGDIHZFKDSWHUV EDFN"

A:

7KH'HSHQGHQF\,QYHUVLRQ 3ULQFLSOHWHDFKHVXVWRDYRLGWKHXVHRI FRQFUHWHFODVVHVDQGLQVWHDGZRUNDV PXFKDVSRVVLEOHZLWKDEVWUDFWLRQV7KH +ROO\ZRRG3ULQFLSOHLVDWHFKQLTXHIRU EXLOGLQJIUDPHZRUNVRUFRPSRQHQWVVRWKDW ORZHUOHYHOFRPSRQHQWVFDQEHKRRNHG

LQWRWKHFRPSXWDWLRQEXWZLWKRXWFUHDWLQJ GHSHQGHQFLHVEHWZHHQWKHORZHUOHYHO FRPSRQHQWVDQGWKHKLJKHUOHYHOOD\HUV6R WKH\ERWKKDYHWKHJRDORIGHFRXSOLQJEXW WKH'HSHQGHQF\,QYHUVLRQ3ULQFLSOHPDNHVD PXFKVWURQJHUDQGJHQHUDOVWDWHPHQWDERXW KRZWRDYRLGGHSHQGHQFLHVLQGHVLJQ 7KH+ROO\ZRRG3ULQFLSOHJLYHVXVD WHFKQLTXHIRUFUHDWLQJGHVLJQVWKDWDOORZ ORZOHYHOVWUXFWXUHVWRLQWHURSHUDWHZKLOH SUHYHQWLQJRWKHUFODVVHVIURPEHFRPLQJWRR GHSHQGHQWRQWKHP

Q:

,VDORZOHYHOFRPSRQHQW GLVDOORZHGIURPFDOOLQJDPHWKRGLQD KLJKHUOHYHOFRPSRQHQW"

A:

1RWUHDOO\,QIDFWDORZOHYHO FRPSRQHQWZLOORIWHQHQGXSFDOOLQJDPHWKRG GHILQHGDERYHLWLQWKHLQKHULWDQFHKLHUDUFK\ SXUHO\WKURXJKLQKHULWDQFH%XWZHZDQWWR DYRLGFUHDWLQJH[SOLFLWFLUFXODUGHSHQGHQFLHV EHWZHHQWKHORZOHYHOFRPSRQHQWDQGWKH KLJKOHYHORQHV

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"



3DWWHUQ

'HVFULSWLRQ

Template Method

Encapsulate interchangeable behaviors and use delegation to decide which behavior to use

Strategy

Subclasses decide how to implement steps in an algorithm

Factory Method

Subclasses decide which concrete classes to create

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 25

WKHWHPSODWHPHWKRGSDWWHUQ


,QWUDLQLQJZHVWXG\WKH FODVVLFSDWWHUQV+RZHYHU ZKHQZHDUHRXWLQWKHUHDOZRUOGZH PXVWOHDUQWRUHFRJQL]HWKHSDWWHUQV RXWRIFRQWH[W:HPXVWDOVROHDUQ WRUHFRJQL]HYDULDWLRQVRISDWWHUQV EHFDXVHLQWKHUHDOZRUOGDVTXDUH KROHLVQRWDOZD\VWUXO\VTXDUH

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 26

VRUWLQJZLWKWHPSODWHPHWKRG

;WZ\QVO_Q\P
FWWRJHWKHUWR

KH\D :HDFWXDOO\KDYHWZRPHWKRGVKHUHDQGW  DOLW\ FWLRQ WIXQ SURYLGHWKHVRU

:H·YHSDLUHGGRZQWKLV FRGHDOLWWOHWRPDNHLW HDVLHUWRH[SODLQ,I\RX·G OLNHWRVHHLWDOOJUDE WKHVRXUFHIURP6XQDQG FKHFNLWRXW

HOSHUPHWKRG RUW LVMXVWDKQGSDVVHVLWDORQJ V RG WK PH W LUV D 7KHI RS\RIWKHDUUD\ PHWKRG WKDWFUHDWHVDFRQDUUD\WRWKHPHUJH6RUW  QGWHOOV WL D QD D\ WL WKHDUU DVWKHGHV JWKHOHQJWKRI ,WDOVRSDVVHVDORQWDWWKHILUVWHOHPHQW WKHVRUWWRVWDU

SXEOLFVWDWLFYRLGVRUW 2EMHFW>@D ^ 2EMHFWDX[>@  2EMHFW>@ DFORQH  PHUJH6RUW DX[DDOHQJWK  `

7KHPHUJH6RUW PHWKRGFRQWDLQV WKHVRUWDOJRULWKPDQGUHOLHVRQDQ LPSOHPHQWDWLRQRIWKHFRPSDUH7R  PHWKRGWRFRPSOHWHWKHDOJRULWKP SULYDWHVWDWLFYRLGPHUJH6RUW 2EMHFWVUF>@2EMHFWGHVW>@   LQWORZLQWKLJKLQWRII  ^

7KLQNRIWKLVDVWKH WHPSODWHPHWKRG

IRU LQWL ORZLKLJKL ^ IRU LQWM LM!ORZ  &RPSDUDEOH GHVW>M@ FRPSDUH7R &RPSDUDEOH GHVW>M@ !M ^ VZDS GHVWMM  ` FRPSDUH7R LVWKHPHWKRGZH 7KLVLVDFRQFUHWHPHWKRGDOUHDG\ ` QHHGWRLPSOHPHQWWR´ILOORXWµ UHWXUQ GHILQHGLQWKH$UUD\VFODVV HPSODWHPHWKRG WKHW `



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 27

WKHWHPSODWHPHWKRGSDWWHUQ

?M¼^MOW\[WUML]KS[\W[WZ\ 4M\¼[[IaaW]PI^MIVIZZIaWN L]KS[\PI\aW]¼LTQSM\W[WZ\0W_ LWaW]LWQ\'?MTT\PM[WZ\\MUXTI\MUM\PWLQV)ZZIa[OQ^M[][\PM ITOWZQ\PUJ]\aW]VMML\W\MTTQ\PW_\WKWUXIZML]KS[_PQKPaW]LWJa QUXTMUMV\QVO\PMKWUXIZM
1RLWGRHVQ·W$UHQ·W ZHVXSSRVHGWREH VXEFODVVLQJVRPHWKLQJ",WKRXJKW WKDWZDVWKHSRLQWRI7HPSODWH 0HWKRG$QDUUD\GRHVQ·WVXEFODVV DQ\WKLQJVR,GRQ·WJHWKRZZH·G XVHVRUW 

:H·YHJRWDQDUUD\RI 'XFNVZHQHHGWRVRUW

/WWLXWQV\0MZM¼[\PMLMIT"\PMLM[QOVMZ[WN [WZ\_IV\MLQ\ \WJM][MN]TIKZW[[ITTIZZIa[[W\PMaPIL\WUISM[WZ\I[\I\QK UM\PWL\PI\KW]TLJM][MLNZWUIVa_PMZM*]\\PI\¼[WSIa Q\_WZS[ITUW[\\PM[IUMI[QN Q\_MZMQVI[]XMZKTI[[6W_ PMZMQ[WVMUWZMLM\IQT"JMKI][M[WZ\ZMITTaQ[V¼\LMÅVMLQV W]Z[]XMZKTI[[\PM[WZ\UM\PWLVMML[\WSVW_\PI\aW]¼^M QUXTMUMV\ML\PMKWUXIZM
?PI\Q[KWUXIZM
$P,JUHDWHU WKDQ\RX"

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 28

LPSOHPHQWLQJFRPSDUDEOH

+WUXIZQVO,]KS[IVL,]KS[ 7SIa[WaW]SVW_\PI\QN aW]_IV\\W[WZ\,]KS[ aW]¼ZMOWQVO\WPI^M\WQUXTMUMV\\PQ[KWUXIZM
SDUDEOH 5HPHPEHUZHQHHGWRLPSOHPHQWWKH&RPJ LQWHUIDFHVLQFHZHDUHQ·WUHDOO\VXEFODVVLQ SXEOLFFODVV'XFNLPSOHPHQWV&RPSDUDEOH^ 6WULQJQDPH LQWZHLJKW 2XU'XFNVKDYHDQDPHDQGDZHLJKW  SXEOLF'XFN 6WULQJQDPHLQWZHLJKW ^ WKLVQDPH QDPH WKLVZHLJKW ZHLJKW `  :H·UHNHHSLQ·LWVLPSOHDOO'XFNVGR SXEOLF6WULQJWR6WULQJ ^ LVSULQWWKHLUQDPHDQGZHLJKW UHWXUQQDPH³ZHLJKV³ZHLJKW `   2ND\KHUH·VZKDWVRUWQHHGV  SXEOLFLQWFRPSDUH7R 2EMHFWREMHFW ^  FRPSDUH7R WDNHVDQRWKHU'XFNWRFRPSDUH7+,6'XFNWR 'XFNRWKHU'XFN  'XFN REMHFW  LI WKLVZHLJKWRWKHU'XFNZHLJKW ^ UHWXUQ +HUH·VZKHUHZHVSHFLI\KRZ'XFNV `HOVHLI WKLVZHLJKW RWKHU'XFNZHLJKW ^ FRPSDUH,I7+,6'XFNZHLJKVOHVV UHWXUQ WKDQRWKHU'XFNWKHQZHUHWXUQ `HOVH^WKLVZHLJKW!RWKHU'XFNZHLJKW UHWXUQ LIWKH\DUHHTXDOZHUHWXUQDQGLI ` 7+,6'XFNZHLJKVPRUHZHUHWXUQ ` `



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 29

WKHWHPSODWHPHWKRGSDWWHUQ

4M\¼[[WZ\[WUM,]KS[ +HUH·VWKHWHVWGULYHIRUVRUWLQJ'XFNV

SXEOLFFODVV'XFN6RUW7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 'XFN>@GXFNV ^ QHZ'XFN ³'DII\´  QHZ'XFN ³'HZH\´  QHZ'XFN ³+RZDUG´  QHZ'XFN ³/RXLH´  QHZ'XFN ³'RQDOG´  QHZ'XFN ³+XH\´ `

1RWLFHWKDWZH FDOO$UUD\V·VWD6\VWHPRXWSULQWOQ ³%HIRUHVRUWLQJ´  WLF GLVSOD\ GXFNV  PHWKRGVRUWDQG SDVVLWRXU'XFNV $UUD\VVRUW GXFNV   6\VWHPRXWSULQWOQ ³?Q$IWHUVRUWLQJ´  GLVSOD\ GXFNV  `

UD\RI :HQHHGDQDURRNJRRG O VH KH W NV 'XF

/HW·VSULQWWKHPWRVHH WKHLUQDPHVDQGZHLJKWV

,W·VVRUWWLPH

/HW·VSULQWWKHP DJDLQ WRVHH WKHLUQDPHVDQGZHLJKWV

SXEOLFVWDWLFYRLGGLVSOD\ 'XFN>@GXFNV ^ IRU LQWL LGXFNVOHQJWKL ^ 6\VWHPRXWSULQWOQ GXFNV>L@  ` ` `

/HWWKHVRUWLQJFRPPHQFH )LOH(GLW:LQGRZ+HOS'RQDOG1HHGV7R*R2Q$'LHW

MDYD'XFN6RUW7HVW'ULYH %HIRUHVRUWLQJ 'DII\ZHLJKV 'HZH\ZHLJKV +RZDUGZHLJKV /RXLHZHLJKV 'RQDOGZHLJKV +XH\ZHLJKV $IWHUVRUWLQJ 'HZH\ZHLJKV /RXLHZHLJKV +XH\ZHLJKV +RZDUGZHLJKV 'DII\ZHLJKV 'RQDOGZHLJKV

7KHXQVRUWHG'XFNV

7KHVRUWHG'XFNV



\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 30

EHKLQGWKHVFHQHVVRUWLQJGXFNV


%HKLQG

/HW·VWUDFHWKURXJKKRZWKH$UUD\VVRUW WHPSODWH WKH6FHQHV PHWKRGZRUNV:H·OOFKHFNRXWKRZWKHWHPSODWH PHWKRGFRQWUROVWKHDOJRULWKPDQGDWFHUWDLQ SRLQWVLQWKHDOJRULWKPKRZLWDVNVRXU'XFNVWR VXSSO\WKHLPSOHPHQWDWLRQRIDVWHS IRU LQWL ORZLKLJKL ^



FRPSDUH7R  VZDS  `

.QZ[\_MVMMLIVIZZIaWN ,]KS[" 'XFN>@GXFNV ^QHZ'XFN ³'DII\´ `






7KHVRUW PHWKRGFRQWUROV WKHDOJRULWKPQRFODVVFDQ FKDQJHWKLVVRUW FRXQWV RQD&RPSDUDEOHFODVVWR SURYLGHWKHLPSOHPHQWDWLRQRI FRPSDUH7R


GXFNV>@FRPSDUH7R GXFNV>@ 

)LUVW'XFN 

FRPSDUH7R WR6WULQJ

'XFNWRFRPSDUHLWWR

1RLQKHULWDQFHXQOLNH DW\SLFDOWHPSODWH PHWKRG

1N \PM,]KS[IZMVW\QV[WZ\MLWZLMZ\PMa¼ZM[_IXXML_Q\P \PMKWVKZM\M[_IXUM\PWLQV)ZZIa[" VZDS

$UUD\V VRUW VZDS






Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 31

WKHWHPSODWHPHWKRGSDWWHUQ

there are no

Dumb Questions

Q:

WKHDOJRULWKPWRWKHLWHPVEHLQJVRUWHG

,VWKLVUHDOO\WKH7HPSODWH 0HWKRG3DWWHUQRUDUH\RXWU\LQJWRR KDUG"

A:

7KHSDWWHUQFDOOVIRULPSOHPHQWLQJ DQDOJRULWKPDQGOHWWLQJVXEFODVVHVVXSSO\ WKHLPSOHPHQWDWLRQRIWKHVWHSV²DQGWKH $UUD\VVRUWLVFOHDUO\QRWGRLQJWKDW%XW DVZHNQRZSDWWHUQVLQWKHZLOGDUHQ·W DOZD\VMXVWOLNHWKHWH[WERRNSDWWHUQV7KH\ KDYHWREHPRGLILHGWRILWWKHFRQWH[WDQG LPSOHPHQWDWLRQFRQVWUDLQWV 7KHGHVLJQHUVRIWKH$UUD\VVRUW PHWKRG KDGDIHZFRQVWUDLQWV,QJHQHUDO\RXFDQ·W VXEFODVVD-DYDDUUD\DQGWKH\ZDQWHGWKH VRUWWREHXVHGRQDOODUUD\V DQGHDFKDUUD\ LVDGLIIHUHQWFODVV 6RWKH\GHILQHGDVWDWLF PHWKRGDQGGHIHUUHGWKHFRPSDULVRQSDUWRI

6RZKLOHLW·VQRWDWH[WERRNWHPSODWH PHWKRGWKLVLPSOHPHQWDWLRQLVVWLOOLQWKH VSLULWRIWKH7HPSODWH0HWKRG3DWWHUQ$OVR E\HOLPLQDWLQJWKHUHTXLUHPHQWWKDW\RXKDYH WRVXEFODVV$UUD\VWRXVHWKLVDOJRULWKP WKH\·YHPDGHVRUWLQJLQVRPHZD\VPRUH IOH[LEOHDQGXVHIXO

Q:

7KLVLPSOHPHQWDWLRQRIVRUWLQJ DFWXDOO\VHHPVPRUHOLNHWKH6WUDWHJ\ 3DWWHUQWKDQWKH7HPSODWH0HWKRG 3DWWHUQ:K\GRZHFRQVLGHULW 7HPSODWH0HWKRG"

A:


XVLQJWKH$UUD\VREMHFWWRVRUWRXUDUUD\VR WKDW·VVLPLODUWR6WUDWHJ\%XWUHPHPEHU LQ6WUDWHJ\WKHFODVVWKDW\RXFRPSRVH ZLWKLPSOHPHQWVWKHHQWLUHDOJRULWKP7KH DOJRULWKPWKDW$UUD\VLPSOHPHQWVIRUVRUW LVLQFRPSOHWHLWQHHGVDFODVVWRILOOLQWKH PLVVLQJFRPSDUH7R PHWKRG6RLQWKDW ZD\LW·VPRUHOLNH7HPSODWH0HWKRG

Q:

$UHWKHUHRWKHUH[DPSOHVRI WHPSODWHPHWKRGVLQWKH-DYD$3,"

A:

@LQWRIILQWOHQ 

YiX`e gfn\i :HNQRZWKDWZHVKRXOGIDYRUFRPSRVLWLRQRYHULQKHULWDQFHULJKW":HOOWKHLPSOHPHQWHUVRIWKH VRUW WHPSODWHPHWKRGGHFLGHGQRWWRXVHLQKHULWDQFHDQGLQVWHDGWRLPSOHPHQWVRUW DVDVWDWLF PHWKRGWKDWLVFRPSRVHGZLWKD&RPSDUDEOHDWUXQWLPH+RZLVWKLVEHWWHU"+RZLVLWZRUVH"+RZ ZRXOG\RXDSSURDFKWKLVSUREOHP"'R-DYDDUUD\VPDNHWKLVSDUWLFXODUO\WULFN\"

)

YiX`e gfn\i 7KLQNRIDQRWKHUSDWWHUQWKDWLVDVSHFLDOL]DWLRQRIWKHWHPSODWHPHWKRG,QWKLVVSHFLDOL]DWLRQSULPLWLYH RSHUDWLRQVDUHXVHGWRFUHDWHDQGUHWXUQREMHFWV:KDWSDWWHUQLVWKLV"

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 32

WKHSDLQWKRRN

;_QVOQV¼_Q\P.ZIUM[ =XVM`\WVW]Z
SXEOLFFODVV0\)UDPHH[WHQGV-)UDPH^

:H·UHH[WHQGLQJ DPHWKRGXSGDWH WKDWFRQWUROVWKH DOJRULWKPIRUXSGDWLQJWKHVFUHHQ :HFDQKRRNLQWRWKDWDOJRULWKPE\ RYHUULGLQJWKHSDLQW KRRNPHWKRG 'RQ·WORRNEHKLQGWKH FXUWDLQ-XVWVRPH LQLWLDOL]DWLRQKHUH

SXEOLF0\)UDPH 6WULQJWLWOH ^ VXSHU WLWOH  WKLVVHW'HIDXOW&ORVH2SHUDWLRQ -)UDPH(;,7B21B&/26(  WKLVVHW6L]H   WKLVVHW9LVLEOH WUXH  ` SXEOLFYRLGSDLQW *UDSKLFVJUDSKLFV ^ VXSHUSDLQW JUDSKLFV  6WULQJPVJ ³,UXOH´ JUDSKLFVGUDZ6WULQJ PVJ  `

-)UDPH·VXSGDWHDOJRULWKPFDOOVSDLQW %\ N GHIDXOWSDLQW GRHVQRWKLQJLW·VDKRR :H·UHRYHUULGLQJSDLQW DQGWHOOLQJWKH  -)UDPHWRGUDZDPHVVDJHLQWKHZLQGRZ

SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 0\)UDPHP\)UDPH QHZ0\)UDPH ³+HDG)LUVW'HVLJQ3DWWHUQV´  ` `

+HUH·VWKHPHVVDJHWKDWJHWV SDLQWHGLQWKHIUDPHEHFDXVHZH·YH KRRNHGLQWRWKHSDLQW PHWKRG



&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 33

WKHWHPSODWHPHWKRGSDWWHUQ

)XXTM\[ 7]ZÅVIT[\WXWV\PM[INIZQ"\PMIXXTM\ AW]XZWJIJTaSVW_IVIXXTM\Q[I[UITTXZWOZIU\PI\Z]V[QVI_MJXIOM)Va IXXTM\U][\[]JKTI[[)XXTM\IVL\PQ[KTI[[XZW^QLM[[M^MZITPWWS[4M\¼[\ISMITWWS I\INM_WN \PMU"

WHYHU 7KHLQLWKRRNDOORZVWKHDSSOHWWRGRZKDWWLPH LWZDQWVWRLQLWLDOL]HWKHDSSOHWWKHILUV

SXEOLFFODVV0\$SSOHWH[WHQGV$SSOHW^ 6WULQJPHVVDJH   SXEOLFYRLGLQLW ^ UHSDLQW LVDFRQFUHWHPHWKRGLQWKH$SSOHW RZ PHVVDJH ³+HOOR:RUOG,¶PDOLYH´ FODVVWKDWOHWVXSSHUOHYHOFRPSRQHQWVNQ UHSDLQW  WKHDSSOHWQHHGVWREHUHGUDZQ `  7KHVWDUWKRRNDOORZVWKHDSSOHWWRGR SXEOLFYRLGVWDUW ^ VRPHWKLQJZKHQWKHDSSOHWLVMXVWDERXW PHVVDJH ³1RZ,¶PVWDUWLQJXS´ UHSDLQW  WREHGLVSOD\HGRQWKHZHESDJH `  SXEOLFYRLGVWRS ^ PHVVDJH ³2KQRZ,¶PEHLQJVWRSSHG´ WKH ,IWKHXVHUJRHVWRDQRWKHUSDJHWFDQGR UHSDLQW  SSOH KHD QGW GD VWRSKRRNLVXVH ` LWVDFWLRQV ZKDWHYHULWQHHGVWRGRWRVWRS  SXEOLFYRLGGHVWUR\ ^ DSSOHWLVJRLQJDZD\ ` $QGWKHGHVWUR\KRRNLVXVHGZKHQWKHDSSOHW  SXEOLFYRLGSDLQW *UDSKLFVJ ^ LVJRLQJWREHGHVWUR\HGVD\ZKHQWKHEURZVHU JGUDZ6WULQJ PHVVDJH  SDQHLVFORVHG:HFRXOGWU\WRGLVSOD\ ` VRPHWKLQJKHUHEXWZKDWZRXOGEHWKHSRLQW" `

:HOOORRN\KHUH2XUROGIULHQGWKH SDLQW PHWKRG$SSOHWDOVRPDNHV XVHRIWKLVPHWKRGDVDKRRN

&RQFUHWHDSSOHWVPDNHH[WHQVLYHXVHRIKRRNVWRVXSSO\WKHLU RZQEHKDYLRUV%HFDXVHWKHVHPHWKRGVDUHLPSOHPHQWHGDV KRRNVWKHDSSOHWLVQ·WUHTXLUHGWRLPSOHPHQWWKHP \RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 34

¿UHVLGHFKDWVWHPSODWHPHWKRGDQGVWUDWHJ\



;\ZI\MOa

)DFWRU\0HWKRG +H\,KHDUG WKDW

0Ma;\ZI\MOa_PI\IZMaW]LWQVOQVUa KPIX\MZ'1ÅO]ZML1¼LOM\[\]KS_Q\P[WUMWVM JWZQVOTQSM.IK\WZa5M\PWL

6WXMQ\¼[UMIT\PW]OPJMKIZMN]T·aW]IVL .IK\WZa5M\PWLIZMZMTI\MLIZMV¼\aW]' 1_I[R][\SQLLQVO *]\[MZQW][Ta_PI\IZMaW] LWQVOPMZM'?MPI^MV¼\PMIZLNZWUaW]QVMQOP\ KPIX\MZ[

AW]UQOP\_IV\\WZMUQVL\PMZMILMZ_PI\ aW]¼ZMITTIJW]\[QVKMQ\¼[JMMV[WTWVO

1LWV¼\SVW_[QVKM+PIX\MZXMWXTMPI^M JMMV[\WXXQVOUMQV\PM[\ZMM\[IaQVO¹)ZMV¼\ aW]\PI\XI\\MZVº;W1\PQVS\PMaSVW__PW 1IU*]\NWZaW]Z[ISM"1LMÅVMINIUQTaWN  ITOWZQ\PU[IVLUISM\PMUQV\MZKPIVOMIJTM ;QVKMMIKPITOWZQ\PUQ[MVKIX[]TI\ML\PMKTQMV\ KIV][MLQNNMZMV\ITOWZQ\PU[MI[QTa

0Ma\PI\LWM[[W]VLITW\TQSM_PI\1LW*]\ UaQV\MV\¼[ITQ\\TMLQNNMZMV\NZWUaW]Z[#UaRWJ Q[\WLMÅVM\PMW]\TQVMWN IVITOWZQ\PUJ]\ TM\Ua[]JKTI[[M[LW[WUMWN \PM_WZS


1¼LPMIZLaW]_MZMWV\PMÅVITLZIN\WN aW]Z KPIX\MZIVL1\PW]OP\1¼L[_QVOJa\W[MMPW_ Q\_I[OWQVO?MPI^MITW\QVKWUUWV[W1 \PW]OP\1UQOP\JMIJTM\WPMTX

1¼UVW\[]ZM1¼LX]\Q\Y]Q\MTQSM\PI\IVL IVa_Ia1¼UVW\[\]KS][QVOQVPMZQ\IVKMNWZ ITOWZQ\PUQUXTMUMV\I\QWV[1WNNMZKTQMV\[I KPWQKMWN ITOWZQ\PUQUXTMUMV\I\QWV\PZW]OP WJRMK\KWUXW[Q\QWV

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 35

WKHWHPSODWHPHWKRGSDWWHUQ


;\ZI\MOa

1ZMUMUJMZ\PI\*]\1PI^MUWZMKWV\ZWTW^MZ UaITOWZQ\PUIVL1LWV¼\L]XTQKI\MKWLM1VNIK\ QN M^MZaXIZ\WN UaITOWZQ\PUQ[\PM[IUMM`KMX\ NWZ[IaWVMTQVM\PMVUaKTI[[M[IZMU]KPUWZM MNÅKQMV\\PIVaW]Z[)TTUaL]XTQKI\MLKWLM OM\[X]\QV\W\PM[]XMZKTI[[[WITT\PM[]JKTI[[M[ KIV[PIZMQ\

AW]UQOP\JMITQ\\TMUWZMMNÅKQMV\R][\ITQ\\TM IVLZMY]QZMNM_MZWJRMK\[)VLaW]UQOP\IT[W JMITQ\\TMTM[[KWUXTQKI\MLQVKWUXIZQ[WV\W UaLMTMOI\QWVUWLMTJ]\1¼UUWZMÆM`QJTM JMKI][M1][MWJRMK\KWUXW[Q\QWV?Q\PUM KTQMV\[KIVKPIVOM\PMQZITOWZQ\PU[I\Z]V\QUM [QUXTaJa][QVOILQNNMZMV\[\ZI\MOaWJRMK\ +WUMWV\PMaLQLV¼\KPWW[MUMNWZ+PIX\MZ NWZVW\PQVO

AMIP_MTT1¼UZMITPIXXaNWZaIJ]\LWV¼\ NWZOM\1¼U\PMUW[\][MLXI\\MZVIZW]VL ?Pa'*MKI][M1XZW^QLMIN]VLIUMV\IT UM\PWLNWZKWLMZM][M\PI\ITTW_[[]JKTI[[M[\W [XMKQNaJMPI^QWZ1¼U[]ZMaW]KIV[MM\PI\\PQ[ Q[XMZNMK\NWZKZMI\QVONZIUM_WZS[ AMIP1O]M[[J]\_PI\IJW]\LMXMVLMVKa' AW]¼ZM_IaUWZMLMXMVLMV\\PIVUM 0W_¼[\PI\'5a[]XMZKTI[[Q[IJ[\ZIK\ *]\aW]PI^M\WLMXMVLWVUM\PWL[ QUXTMUMV\MLQVaW]Z[]XMZKTI[[_PQKPIZMXIZ\ WN aW]ZITOWZQ\PU1LWV¼\LMXMVLWVIVaWVM# 1KIVLW\PMMV\QZMITOWZQ\PUUa[MTN 4QSM1[IQL;\ZI\MOa1¼UZMITPIXXaNWZaW]
7SIaWSIaLWV¼\OM\\W]KPa1¼TTTM\aW] _WZSJ]\TM\UMSVW_QN aW]VMMLUa[XMKQIT \MKPVQY]M[IVa_Ia1¼UIT_Ia[OTIL\WPMTX

/W\Q\,WV¼\KITT][_M¼TTKITTaW] \RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 36

FURVVZRUGSX]]OH

1\¼[\PI\\QUMIOIQV







  



























 20 2$&6 31$1  0 2'$0 2' (-'$0(2 -"$

 6/$ .% 1.02 31$# (- 00 61  '$ 0 ,$ '..* ,$2'.# 2' 2 5$ .4$00.#$ 2. /0(-2  3+$  '$ $,/+ 2$ $2'.#  22$0- 31$1  2. #$%$0 (,/+$,$-2 2(.- 2. .2'$0 "+ 11$1  .%%$$ -#   .-2 " ++ 31 5$++ " ++ 6.3 (1 *-.5- 1 2'$  0(-"(/+$   2$,/+ 2$ ,$2'.# #$%(-$1 2'$ 12$/1 .%    - 2'(1 "' /2$0 5$ & 4$ 6.3 ,.0$    '$ 2$,/+ 2$ ,$2'.# (1 313 ++6 #$%(-$# (-  "+ 11   + 11 2' 2 +(*$1 5$! / &$1

  +&.0(2', 12$/1 0$ (,/+$,$-2$# !6 '..* ,$2'.#1   "2.06 $2'.# (1  .% $,/+ 2$ $2'.#

 '$ 12$/1 (- 2'$ +&.0(2', 2' 2 ,312 !$ 13//+($# !6 2'$ 13!"+ 11$1 0$ 313 ++6 #$"+ 0$#   3$6 .3($ -# $5$6 ++ 5$(&'  /.3-#1   ,$2'.# (- 2'$ !120 "2 13/$0"+ 11 2' 2 #.$1 -.2'(-& .0 /0.4(#$1 #$% 3+2 !$' 4(.0 (1 " ++$#  ,$2'.#  (& '$ #$# / 22$0 30 % 4.0(2$ ".%%$$ 1'./ (- !)$"24(++$   '$ 00 61 "+ 11 (,/+$,$-21 (21 2$,/+ 2$ ,$2'.# 1  ,$2'.#

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 37

WKHWHPSODWHPHWKRGSDWWHUQ


V 223ULQFLSOH

3DWWHUQJLYHVXVDQLPSRUWDQW WHFKQLTXHIRUFRGHUHXVH

$EVWUDFWLRQ RQ (QFDSVXODWL YDULHV DW ZK P H LV DW SK XO (QFDSV H 3RO\PRU HULQKHULWDQF RY Q LR VLW H SR QF ,QKHULWD )DYRUFRP

223DWWHUQV

WKHVWHSVRIDQDOJRULWKP GHIHUULQJWRVXEFODVVHVIRUWKH LPSOHPHQWDWLRQRIWKRVHVWHSV

ƒ 7KH7HPSODWH0HWKRG

22%DVLFV

RW LQWHUIDFHVQ 3URJUDPWR RQV WL LPSOHPHQWD GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW EHWZHHQRE RUH[WHQVLRQ OGEHRSHQI &ODVVHVVKRX RUPRGLILFDWLRQ I EXWFORVHG 'RQRW EVWUDFWLRQV 'HSHQGRQD QFUHWHFODVVHV FR GHSHQGRQ V \RXUIULHQG 2QO\WDONWR RX O\ DO F ·OO VZH 'RQ·WFDOOX

:MDD=LHGAFLK

ƒ $´WHPSODWHPHWKRGµGHILQHV

ƒ 7KHWHPSODWHPHWKRG·V DEVWUDFWFODVVPD\GHILQH FRQFUHWHPHWKRGVDEVWUDFW PHWKRGVDQGKRRNV

ƒ $EVWUDFWPHWKRGVDUH LPSOHPHQWHGE\VXEFODVVHV

ƒ +RRNVDUHPHWKRGVWKDWGR

UHPLQGV WSULQFLSOH 2XUQHZHV RXUVXSHUFODVVHV \RXWKDW\JWKHVKRZVROHW  DUHUXQQLQ \RXUVXEFODVVHVZKHQ  WKHPFDOO HGHGMXVWOLNHWKH\ WKH\·UHQH ZRRG GRLQ+ROO\ $QGRXUQHZHVWSDWWHUQ OHWVFODVVHVLPSOHPHQWLQJ DQDOJRULWKPGHIHUVRPH VWHSVWRVXEFODVVHV

 DOJR WRULWKPPVDQ\ LO\RRQIH RQ GHDILIQHDPVDDN GUHILQHV GLVR PWLW KDDOYLWGHDO\QDQ KH WDG K HV V DF UR 3 FW WW P 6WUD MH $   QG 2EWHVHJ\HFWHURYH \ RE  D U LFVLQDOIH UQHZ) HHQDFWRERW HI LWODP DFKWUERDRHWFW LWR HDF\  DOLOL' RU\Q RWDKHFWGIDWHGOJDP XODQG HVKP W OHHW SH D\FUQJQ HQFDGHSV' EHDHQV)UVW HVWVWLVKMHQJ HJ 0 WRU $ \ DW V U LH MH WU KD R  6 HD OLW RE F LW FW EL  KDV HVW GVKRFWRQXWO\EX Q H FW VH D VL OH EO D WH MH DV X LE RQ FO QJ DW IR RE GD H[ WLG WK UHKDQVSQJLQRQWHHUIDFHSU HFWDVZLWHQ HD DGVIO QW XUMHXS H OUHSRTXLQW OLH QV U LQWHZUFKH LGFRLI R (DQ IR LHFU RY GLORWVQJ RE RPW H D VV Q IU W DF V RW \ ED HQ [W F WO WH Q UI RU H HG OH OD HQ FK UH WH J DW J RU HS KL VX QG LQ D D RU Z LQ I G SH DS WV6GRU VVVXEHVFOG HFQG QJ QFYLFOGH 'SHGH LG VLQG (UR DVVHV UHTXHVW WH H SHW YDU\GHLQ ODDW H UHHQ FU EF HHQJ HWDS\KRVXOHGODWWOHWHLQWVVJD\RX\RTX &WRLQWODRVWPKHHDQPLUDFHDFS)DVMHQDHFWRQDFGFWHU OHLFW (HUQFHE DOLY\LVXO\ 0 U\ W  WR DWHF WK LIRQ  J  LQ D W DXDOWRWHPVSUQ KH L G V WW OHODWH $HVQVREWR VWMHDQFWHWLFODW GLIIHUUHHQXWHQHVXW HWKH WL\FFDW WR\ DODQLWDDV D VXWK LW IXQFWLLQRQVWRI HU HILQ QG LQJ U QDLQRE FDL]GH HLHWKFO(QWLRHUOQFLHWKQVRJQWHEDSZHU0 D '\R HU WWVGII D LW\XHK OHVWRGL DVIH Z P)HW V K HE HT U HW DFODVVSDGHUD ODRUWRUHOLHUDRJQWWLDUVRQOJHTZRUVLWXHLWKVWKPGLVLDIIQQGHUDQHQRWSHUDWLRQ REHXL]MHSHFW HWQTXHU HP DVWVPD7 SD HVUD VXEFODVVUHHVTX FO DQ H I HX TX HU  VDFOQG DVVH V DE RQ HW WV GR P HV HW XHVW XQ RQHT VXE TXSDWUDVNHO OHL]RHOHSH UHRU VVWR  SH HS R VXSS VWWLU RU HOUDRJ H P DE HX VR GR TX J  XQ VHVUHGHILQH LQ WV DV W UU V HV FO RU RQ IH VXSSUHTXGH OHHWRKRSHGUDOHWLWVVXE PZLWKRXW DE GR 0 XQ H W DW SO RU WK UL VXSS7HP VRIDQDOJR H FHUWDLQVWHS DOJRULWKP·VVWUXFWXU KH W QJ JL FKDQ

QRWKLQJRUGHIDXOWEHKDYLRULQ WKHDEVWUDFWFODVVEXWPD\EH RYHUULGGHQLQWKHVXEFODVV

ƒ 7RSUHYHQWVXEFODVVHVIURP FKDQJLQJWKHDOJRULWKPLQWKH WHPSODWHPHWKRGGHFODUHWKH WHPSODWHPHWKRGDVILQDO

ƒ 7KH+ROO\ZRRG3ULQFLSOHJXLGHV XVWRSXWGHFLVLRQPDNLQJLQ KLJKOHYHOPRGXOHVWKDWFDQ GHFLGHKRZDQGZKHQWRFDOO ORZOHYHOPRGXOHV

ƒ
ƒ 7KH6WUDWHJ\DQG7HPSODWH 0HWKRG3DWWHUQVERWK HQFDSVXODWHDOJRULWKPVRQH E\LQKHULWDQFHDQGRQHE\ FRPSRVLWLRQ

ƒ 7KH)DFWRU\0HWKRGLVD VSHFLDOL]DWLRQRI7HPSODWH 0HWKRG \RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 38

H[HUFLVHVROXWLRQV

6KDUSHQ \RXU SHQFLO

([HUFLVH VROXWLRQV

'UDZWKHQHZFODVVGLDJUDPQRZWKDWZH¶YHPRYHG SUHSDUH5HFLSH LQWRWKH&DIIHLQH%HYHUDJHFODVV

&DIIHLQH%HYHUDJH SUHSDUH5HFLSH ERLO:DWHU SRXU,Q&XS EUHZ DGG&RQGLPHQWV

&RIIHH EUHZ DGG&RQGLPHQWV

7HD EUHZ DGG&RQGLPHQWV

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"



3DWWHUQ

'HVFULSWLRQ

Template Method

Encapsulate interchangable behaviors and use delegation to decide which behavior to use

Strategy

Subclasses decide how to implement steps in an algorithm

Factory Method

Subclasses decide which concrete classes to create

&KDSWHU

Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 8. Encapsulating Algorithms

Return to Table of Contents

Page 39

WKHWHPSODWHPHWKRGSDWWHUQ

([HUFLVHVROXWLRQV







 







!

 

" 













$









 

!















& 





"











!











"



% $ 





"























 "

"



"









!

" 

!













"

 





"

















"









!

"





"





"

" 



#



"

&

%









&

\RXDUHKHUH



Chapter 8. Encapsulating Algorithms Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Table of Contents Chapter 9. Well-Managed Collections.......................................................... 1 Section 9.1. Breaking News: Objectville Diner Merge and Objectville Pancake House................................................................ 2 Section 9.2. Check out the Menu Items.......................................................................................................................................... 3 Section 9.3. Lou and Mel's Menu implementations....................................................................................................................... 4 Section 9.4. What's the problem with having two different menu representations?.................................................................... 6 Section 9.5. Sharpen your pencil.................................................................................................................................................... 8 Section 9.6. What now?.................................................................................................................................................................. 8 Section 9.7. Can we encapsulate the iteration?.............................................................................................................................. 9 Section 9.8. Meet the Iterator Pattern........................................................................................................................................... 11 Section 9.9. Adding an Iterator to DinerMenu............................................................................................................................. 12 Section 9.10. Reworking the Diner Menu with Iterator............................................................................................................... 13 Section 9.11. Exercise..................................................................................................................................................................... 13 Section 9.12. Fixing up the Waitress code.................................................................................................................................... 14 Section 9.13. Testing our code....................................................................................................................................................... 15 Section 9.14. What have we done so far?...................................................................................................................................... 16 Section 9.15. What we have so far................................................................................................................................................. 17 Section 9.16. Making some improvements................................................................................................................................... 18 Section 9.17. There are no Dumb Questions................................................................................................................................. 18 Section 9.18. Cleaning things up with java.util.Iterator............................................................................................................... 19 Section 9.19. We are almost there................................................................................................................................................ 20 Section 9.20. What does this get us?............................................................................................................................................. 21 Section 9.21. Iterator Pattern defined.......................................................................................................................................... 22 Section 9.22. There are no Dumb Questions................................................................................................................................ 24 Section 9.23. Single Responsibility............................................................................................................................................... 25 Section 9.24. BRAIN POWER....................................................................................................................................................... 26 Section 9.25. BRAIN2 POWER..................................................................................................................................................... 26 Section 9.26. Taking a look at the Café Menu.............................................................................................................................. 28 Section 9.27. Sharpen your pencil................................................................................................................................................ 28 Section 9.28. Reworking the Café Menu code.............................................................................................................................. 29 Section 9.29. Code Up Close......................................................................................................................................................... 29 Section 9.30. Adding the Café Menu to the Waitress.................................................................................................................. 30 Section 9.31. Breakfast, lunch AND dinner.................................................................................................................................. 31 Section 9.32. What did we do?...................................................................................................................................................... 32 Section 9.33. We decoupled the Waitress.................................................................................................................................... 32 Section 9.34. ... and we made the Waitress more extensible....................................................................................................... 33 Section 9.35. But there's more!..................................................................................................................................................... 33 Section 9.36. Iterators and Collections......................................................................................................................................... 34 Section 9.37. Iterators and Collections in Java 5......................................................................................................................... 35 Section 9.38. Code Magnets.......................................................................................................................................................... 36 Section 9.39. Is the Waitress ready for prime time?.................................................................................................................... 37 Section 9.40. Just when we thought it was safe........................................................................................................................... 39 Section 9.41. What do we need?................................................................................................................................................... 40 Section 9.42. The Composite Pattern defined.............................................................................................................................. 42 Section 9.43. Designing Menus with Composite.......................................................................................................................... 45 Section 9.44. Implementing the Menu Component..................................................................................................................... 46 Section 9.45. Implementing the Menu Item................................................................................................................................. 47 Section 9.46. Implementing the Composite Menu...................................................................................................................... 48 Section 9.47. Getting ready for a test drive.................................................................................................................................. 50 Section 9.48. Now for the test drive.............................................................................................................................................. 51 Section 9.49. Getting ready for a test drive.................................................................................................................................. 52 Section 9.50. Flashback to Iterator............................................................................................................................................... 54 Section 9.51. The Composite Iterator........................................................................................................................................... 55 Section 9.52. The Null Iterator..................................................................................................................................................... 58 Section 9.53. Give me the vegetarian menu................................................................................................................................. 59 Section 9.54. The magic of Iterator & Composite together.......................................................................................................... 60 Section 9.55. Patterns Exposed..................................................................................................................................................... 62 Section 9.56. WHO DOES WHAT?............................................................................................................................................... 65

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Section 9.57. Tools for your Design Toolbox................................................................................................................................ 66 Section 9.58. Exercise solutions................................................................................................................................................... 67 Section 9.59. Code Magnets Solution........................................................................................................................................... 68 Section 9.60. WHO DOES WHAT?.............................................................................................................................................. 69 Section 9.61. Exercise Solution..................................................................................................................................................... 70

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 1

the Iterator and Composite Patterns

4

:HOO0DQDJHG 5 &ROOHFWLRQV

4


7KHUHDUHORWVRI ZD\VWRVWXII REMHFWVLQWRDFROOHFWLRQ3XWWKHP LQDQ$UUD\D6WDFND/LVWD+DVKWDEOHWDNH\RXUSLFN(DFKKDVLWVRZQDGYDQWDJHVDQG WUDGHRIIV%XWDWVRPHSRLQW\RXUFOLHQWLVJRLQJWRZDQWWRLWHUDWHRYHUWKRVHREMHFWVDQG ZKHQKHGRHVDUH\RXJRLQJWRVKRZKLP\RXULPSOHPHQWDWLRQ":HFHUWDLQO\KRSHQRW 7KDWMXVWZRXOGQ¶WEHSURIHVVLRQDO:HOO\RXGRQ¶WKDYHWRULVN\RXUFDUHHU\RX¶UHJRLQJ WRVHHKRZ\RXFDQDOORZ\RXUFOLHQWVWRLWHUDWHWKURXJK\RXUREMHFWVZLWKRXWHYHUJHWWLQJ DSHHNDWKRZ\RXVWRUH\RXUREMHFWV


Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 2

ELJQHZV

*ZMISQVO6M_["7JRMK\ ^QTTM,QVMZIVL 7JRMK\ ^QTTM8IVKISM0W][M5MZOM
EXWZHFDQ·WDJUHHRQ KRZWRLPSOHPHQWRXUPHQXV 7KDWMRNHURYHUWKHUHXVHGDQ $UUD\/LVWWRKROGKLVPHQXLWHPVDQG ,XVHGDQ$UUD\1HLWKHURQHRIXVLV ZLOOLQJWRFKDQJHRXULPSOHPHQWDWLRQV ZHMXVWKDYHWRRPXFKFRGHZULWWHQ WKDWGHSHQGVRQWKHP

7KH\ ZDQWWRXVH P\3DQFDNH+RXVH PHQXDVWKHEUHDNIDVWPHQX DQGWKH'LQHU·VPHQXDVWKH OXQFKPHQX:H·YHDJUHHGRQ DQLPSOHPHQWDWLRQIRUWKH PHQXLWHPV

/RX 0HO



&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 3

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

+PMKSW]\\PM5MV]1\MU[

1DLGEVXKNNG&KPGT

)\TMI[\4W]IVL5MTIOZMMWV\PM QUXTMUMV\I\QWVWN \PM5MV]1\MU[ 4M\¼[KPMKSW]\\PMQ\MU[WVMIKP UMV]IVLIT[W\ISMITWWSI\\PM QUXTMUMV\I\QWV

6EGETARIAN", 4 &AKIN "A  CONWITHLETTUC ETOMATOON WHOLEWHE AT ",4 "ACONWITH  LETTUCETOMA TOONWHOLEWH 3OUPOFTHED AY EAT !BOWLOF  THESOUPOFTH + EDAY WI "STH ASIDEOFP 0ANCAKE"REA  OTATOSALAD KFAST 0ANCAKES  (OT$OG WITHSCRAMBLE DEGGS ANDTO !HOTDOG AST WITHSAURKRAU 2E  T RELISH GU ON TOPPEDWI LARION 0A NCAKE"REAKFA S THCH ST 0ANCAKES 3TEAMED6EGG EESE  WI TH FRIEDEGGS SAU IESAND"ROW SAGE N2 !MEDLEYO FSTEAMEDVEG "LUICE ETABLEEB SOERR Y0 VERBRAN OWCA ICES 0ANCAKES NRKE MAD  ANDBLUEBE EWITHFRESHBLUEBERRIES RRYSYRUP

1DLGEVXKNNG2CPECMG* QWUG

OXQFKLWHPV 7KH'LQHUPHQXKDVORWVRIHFRQVLVWVRI RXV H+ ZKLOHWKH3DQFDN QXLWHPKDVD EUHDNIDVWLWHPV(YHU\PHRQDQGDSULFH QDPHDGHVFULSWL

SXEOLFFODVV0HQX,WHP^ 6WULQJQDPH 6WULQJGHVFULSWLRQ ERROHDQYHJHWDULDQ GRXEOHSULFH  SXEOLF0HQX,WHP 6WULQJQDPH 6WULQJGHVFULSWLRQ ERROHDQYHJHWDULDQ GRXEOHSULFH  ^ WKLVQDPH QDPH WKLVGHVFULSWLRQ GHVFULSWLRQ WKLVYHJHWDULDQ YHJHWDULDQ WKLVSULFH SULFH `  SXEOLF6WULQJJHW1DPH ^ UHWXUQQDPH `  SXEOLF6WULQJJHW'HVFULSWLRQ ^ UHWXUQGHVFULSWLRQ `  SXEOLFGRXEOHJHW3ULFH ^ UHWXUQSULFH `  SXEOLFERROHDQLV9HJHWDULDQ ^ UHWXUQYHJHWDULDQ ` `

7AFmES 7AFmES W  ITHYOURCHOIC EOFBLUEBERRIE ORSTRAWBE S RRIES

$0HQX,WHPFRQVLVWV RIDQDPHDGHVFULS DIODJWRLQGLFDWHLIW WLRQ DQGDSULFH
7KHVHJHWWHUPHWKRGV OHW\RXDFFHVVWKHILHOGV RIWKHPHQXLWHP

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 4

WZRPHQXV

4W]IVL5MT¼[5MV]QUXTMUMV\I\QWV[ 6W_TM\¼[\ISMITWWSI\_PI\4W]IVL5MTIZM IZO]QVOIJW]\
,XVHGDQ$UUD\/LVW VR,FDQHDVLO\ H[SDQGP\PHQX

KH +HUH·V/RX·VLPSOHPHQWDWLRQRIW 3DQFDNH+RXVHPHQX ^ SXEOLFFODVV3DQFDNH+RXVH0HQXLPSOHPHQWV0HQX^ $UUD\/LVWPHQX,WHPV  /RX·VXVLQJDQ$UUD\/LVWWRVWRUH SXEOLF3DQFDNH+RXVH0HQX ^ KLVPHQXLWHPV PHQX,WHPV QHZ$UUD\/LVW   DGG,WHP ³. %¶V3DQFDNH%UHDNIDVW´ ³3DQFDNHVZLWKVFUDPEOHGHJJVDQGWRDVW´ WUXH (DFKPHQXLWHPLVDGGHGWRWKH U   $UUD\/LVWKHUHLQWKHFRQVWUXFWR   DGG,WHP ³5HJXODU3DQFDNH%UHDNIDVW´ (DFK0HQX,WHPKDVDQDPHD ·VD ³3DQFDNHVZLWKIULHGHJJVVDXVDJH´ GHVFULSWLRQZKHWKHURUQRWLW IDOVH YHJHWDULDQLWHPDQGWKHSULFH    DGG,WHP ³%OXHEHUU\3DQFDNHV´ ³3DQFDNHVPDGHZLWKIUHVKEOXHEHUULHV´ WUXH    DGG,WHP ³:DIÀHV´ ³:DIÀHVZLWK\RXUFKRLFHRIEOXHEHUULHVRUVWUDZEHUULHV´ WUXH   DWHVDQHZ LWHP/RXFUH DFKDUJXPHQW ` X HQ P D G DG H 7R SXEOLFYRLGDGG,WHP 6WULQJQDPH6WULQJGHVFULSWLRQ HFWSDVVLQJLQ 0HQX,WHPREM VLWWRWKH$UUD\/LVW ERROHDQYHJHWDULDQGRXEOHSULFH GG D HQ DQGWK ^ 0HQX,WHPPHQX,WHP QHZ0HQX,WHP QDPHGHVFULSWLRQYHJHWDULDQSULFH  PHQX,WHPVDGG PHQX,WHP  `  IPHQXLWHPV 7KHJHW0HQX,WHPV PHWKRGUHWXUQVWKHOLVWR SXEOLF$UUD\/LVWJHW0HQX,WHPV ^ UHWXUQPHQX,WHPV ` WKHUPHQXFRGHWKDWGHSHQGV RWKHUPHQXPHWKRGVKHUH `



/RXKDVDEXQFKRIR +HGRHVQ·WZDQW RQWKH$UUD\/LVWLPSOHPHQWDWLRQ RGH DWF OOWK WRKDYHWRUHZULWHD

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 5

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV +DDK$Q$UUD\OLVW, XVHGD5($/$UUD\VR,FDQ FRQWUROWKHPD[LPXPVL]HRIP\PHQX DQGJHWP\0HQX,WHPVZLWKRXW KDYLQJWRXVHDFDVW

 WKH'LQHUPHQX PSOHPHQWDWLRQRI

$QGKHUH·V0HO·VL

SXEOLFFODVV'LQHU0HQXLPSOHPHQWV0HQX^ ^ LQJDQ$UUD\VRKH 0HOWDNHVDGLIIHUHQWDSSURDFKKH·VXV QGUHWULHYHPHQX VWDWLF¿QDOLQW0$;B,7(06  HQXD WKHP HRI [VL] HPD FDQFRQWUROWK LQWQXPEHU2I,WHPV  HFWV LWHPVRXWZLWKRXWKDYLQJWRFDVWKLVREM 0HQX,WHP>@PHQX,WHPV  SXEOLF'LQHU0HQX ^ /LNH/RX0HOFUHDWHVKLVPHQXLWHPVLQWKH PHQX,WHPV QHZ0HQX,WHP>0$;B,7(06@  FRQVWUXFWRUXVLQJWKHDGG,WHP KHOSHUPHWKRG DGG,WHP ³9HJHWDULDQ%/7´ ³ )DNLQ¶ %DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW´WUXH  DGG,WHP ³%/7´ ³%DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW´IDOVH  DGG,WHP ³6RXSRIWKHGD\´ ³6RXSRIWKHGD\ZLWKDVLGHRISRWDWRVDODG´IDOVH  DGG,WHP ³+RWGRJ´ ³$KRWGRJZLWKVDXUNUDXWUHOLVKRQLRQVWRSSHGZLWKFKHHVH´ IDOVH  DFRXSOHRIRWKHU'LQHU0HQXLWHPVDGGHGKHUH ` DGG,WHP WDNHVDOOWKHSDUDPHWHUV  QHFHVVDU\WRFUHDWHD0HQX,WHPDQG NH SXEOLFYRLGDGG,WHP 6WULQJQDPH6WULQJGHVFULSWLRQ LQVWDQWLDWHVRQH,WDOVRFKHFNVWRPD ERROHDQYHJHWDULDQGRXEOHSULFH  VXUHZHKDYHQ·WKLWWKHPHQXVL]HOLPLW ^ 0HQX,WHPPHQX,WHP QHZ0HQX,WHP QDPHGHVFULSWLRQYHJHWDULDQSULFH  LI QXPEHU2I,WHPV! 0$;B,7(06 ^ 6\VWHPHUUSULQWOQ ³6RUU\PHQXLVIXOO&DQ¶WDGGLWHPWRPHQX´  `HOVH^ 0HOVSHFLILFDOO\ZDQWVWRNHHSKLVPHQXXQGHUD PHQX,WHPV>QXPEHU2I,WHPV@ PHQX,WHP QXPEHU2I,WHPV QXPEHU2I,WHPV FHUWDLQVL]H SUHVXPDEO\VRKHGRHVQ·WKDYHWR ` UHPHPEHUWRRPDQ\UHFLSHV  `  SXEOLF0HQX,WHP>@JHW0HQX,WHPV ^ JHW0HQX,WHPV UHWXUQVWKHDUUD\RIPHQXLWHPV UHWXUQPHQX,WHPV `  /LNH/RX0HOKDVDEXQFKRIFRGHWKDWGHSHQGVRQWKHLPSOHPHQWDWLRQRI RWKHUPHQXPHWKRGVKHUH KLVPHQXEHLQJDQ$UUD\+H·VWRREXV\FRRNLQJWRUHZULWHDOORIWKLV ` \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 6

MDYDHQDEOHGZDLWUHVV

?PI\¼[\PMXZWJTMU_Q\PPI^QVO\ _WLQNNMZMV\ UMV]ZMXZM[MV\I\QWV['
UHVVLV 7KH:DLW DYDHQDEOHG J LQ JHWW

4M\¼[KPMKSW]\\PM[XMKIVL\PMV[\MX\PZW]OP_PI\Q\UQOP\\ISM\W QUXTMUMV\PMZ




7KHVSHFIRU WKH:DLWUHVV

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 7

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

4M\¼[[\IZ\Ja[\MXXQVO\PZW]OPPW__M¼LQUXTMUMV\\PMXZQV\5MV]UM\PWL"




7KHPHWKRGORRNV WKHVDPHEXWWKH FDOOVDUHUHWXUQLQJ GLIIHUHQWW\SHV

3DQFDNH+RXVH0HQXSDQFDNH+RXVH0HQX QHZ3DQFDNH+RXVH0HQX  $UUD\/LVWEUHDNIDVW,WHPV SDQFDNH+RXVH0HQXJHW0HQX,WHPV  'LQHU0HQXGLQHU0HQX QHZ'LQHU0HQX  0HQX,WHP>@OXQFK,WHPV GLQHU0HQXJHW0HQX,WHPV 



7KHLPSOHPHQWDWLRQ LVVKRZLQJWKURXJK EUHDNIDVWLWHPVDUH LQDQ$UUD\/LVWOXQFK LWHPVDUHLQDQ$UUD\

6W_\WXZQV\W]\\PMQ\MU[NZWU\PM8IVKISM0W][M5MV]_M¼TTTWWX\PZW]OP\PM Q\MU[WV\PMJZMISNI[\1\MU[)ZZIa4Q[\)VL\WXZQV\W]\\PM,QVMZQ\MU[_M¼TT TWWX\PZW]OP\PM)ZZIa IRU LQWL LEUHDNIDVW,WHPVVL]H L ^ 0HQX,WHPPHQX,WHP  0HQX,WHP EUHDNIDVW,WHPVJHW L  6\VWHPRXWSULQW PHQX,WHPJHW1DPH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW3ULFH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW'HVFULSWLRQ  ` IRU LQWL LOXQFK,WHPVOHQJWKL ^ 0HQX,WHPPHQX,WHP OXQFK,WHPV>L@ 6\VWHPRXWSULQW PHQX,WHPJHW1DPH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW3ULFH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW'HVFULSWLRQ  `



1RZZHKDYHWR LPSOHPHQWWZRGLIIHUHQW ORRSVWRVWHSWKURXJK WKHWZRLPSOHPHQWDWLRQV RIWKHPHQXLWHPV RQHORRSIRUWKH $UUD\/LVW DQGDQRWKHUIRU WKH$UUD\

1UXTMUMV\QVOM^MZaW\PMZUM\PWLQV\PM?IQ\ZM[[Q[OWQVO\WJMI^IZQI\QWVWN  \PQ[\PMUM?M¼ZMIT_Ia[OWQVO\WVMML\WOM\JW\PUMV][IVL][M\_WTWWX[\W Q\MZI\M\PZW]OP\PMQZQ\MU[1N IVW\PMZZM[\I]ZIV\_Q\PILQNNMZMV\QUXTMUMV\I\QWV Q[IKY]QZML\PMV_M¼TTPI^M\PZMMTWWX[

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 8

ZKDW¶VWKHJRDO

6KDUSHQ \RXU SHQFLO *I[MLWVW]ZQUXTMUMV\I\QWVWN XZQV\5MV]_PQKPWN \PMNWTTW_QVOIXXTa'

R+
R) ?MIZMKWLQVO\W\PM 8IVKISM0W][M5MV]IVL,QVMZ5MV] KWVKZM\MQUXTMUMV\I\QWV[VW\\WIV QV\MZNIKM

R*
R+ 1N _MLMKQLML\W[_Q\KPNZWU][QVO ,QVMZ5MV]\WIVW\PMZ\aXMWN UMV] \PI\QUXTMUMV\MLQ\[TQ[\WN UMV]Q\MU[ _Q\PI0I[P\IJTM_M¼LPI^M\WUWLQNa ITW\WN KWLMQV\PM?IQ\ZM[[

UMV]ZMXZM[MV\[Q\[QV\MZVITKWTTMK\QWVWN  UMV]Q\MU[#\PQ[^QWTI\M[MVKIX[]TI\QWV

R, ?MPI^ML]XTQKI\MKWLM"\PMXZQV\5MV] UM\PWLVMML[\_W[MXIZI\MTWWX[\W Q\MZI\MW^MZ\PM\_WLQNNMZMV\SQVL[WN  UMV][)VLQN _MILLMLI\PQZLUMV] _M¼LPI^MaM\IVW\PMZTWWX

R-
?PI\VW_' 5MTIVL4W]IZMX]\\QVO][QVILQNÅK]T\XW[Q\QWV


&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 9

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

+IV_MMVKIX[]TI\M\PMQ\MZI\QWV' 1N _M¼^MTMIZVMLWVM\PQVOQV\PQ[JWWSQ\¼[MVKIX[]TI\M_PI\^IZQM[1\¼[WJ^QW][ _PI\Q[KPIVOQVOPMZM"\PMQ\MZI\QWVKI][MLJaLQNNMZMV\KWTTMK\QWV[WN WJRMK\[ JMQVOZM\]ZVMLNZWU\PMUMV][*]\KIV_MMVKIX[]TI\M\PQ['4M\¼[_WZS \PZW]OP\PMQLMI 

7RLWHUDWHWKURXJKWKHEUHDNIDVWLWHPVZHXVHWKHVL]H DQGJHW  PHWKRGVRQWKH$UUD\/LVW

IRU LQWL LEUHDNIDVW,WHPVVL]H L ^ 0HQX,WHPPHQX,WHP  0HQX,WHP EUHDNIDVW,WHPVJHW L  ` GET

GET GET

GET

JHW KHOSVXVVWHS WKURXJKHDFKLWHP

)ZZIa4Q[\

 0H QX,WHP





 0 HQX,WHP



 0H QX,WHP



 0 HQ

X,WHP

$Q$UUD\/LVW RI0HQX,WHPV



$QGWRLWHUDWHWKURXJKWKHOXQFKLWHPVZHXVHWKH$UUD\OHQJWKÀHOGDQG WKHDUUD\VXEVFULSWQRWDWLRQRQWKH0HQX,WHP$UUD\

)ZZIa

LUNCH)TEMS;=

IRU LQWL LOXQFK,WHPVOHQJWKL ^ 0HQX,WHPPHQX,WHP OXQFK,WHPV>L@ `



LUNCH)TE

LUNCH

LUNC

:HXVHWKHDUUD\ VXEVFULSWVWRVWHS WKURXJKLWHPV

MS;=

 0 HQX,WHP



) TEMS

H) TE

 0H QX,WHP

;= 

MS;

 0H QX,WHP

= 

 0 HQ

X,WHP

$Q$UUD\RI 0HQX,WHPV \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 10

HQFDSVXODWLQJLWHUDWLRQ



1RZZKDWLIZHFUHDWHDQREMHFWOHW·VFDOOLWDQ,WHUDWRU WKDWHQFDSVXODWHVWKHZD\ZHLWHUDWHWKURXJKD FROOHFWLRQRIREMHFWV"/HW·VWU\WKLVRQWKH$UUD\/LVW

:HDVNWKHEUHDNIDVW0HQX IRUDQLWHUDWRURILWV ,WHUDWRULWHUDWRU EUHDNIDVW0HQXFUHDWH,WHUDWRU 0HQX,WHPV $QGZKLOHWKHUHDUHPRUHLWHPVOHIW ZKLOH LWHUDWRUKDV1H[W ^ 0HQX,WHPPHQX,WHP  0HQX,WHP LWHUDWRUQH[W  ` NEXT :HJHWWKHQH[WLWHP

GET

GET

U



 , WHUDWR

GET

)ZZIa4Q[\

GET

7KHFOLHQWMXVWFDOOVKDV1H[W DQG QH[W EHKLQGWKHVFHQHVWKHLWHUDWRU FDOOVJHW RQWKH$UUD\/LVW

 0H QX,WHP





 0 HQX,WHP

 0H QX,WHP



 0 HQ



X,WHP



/HW·VWU\WKDWRQWKH$UUD\WRR

,WHUDWRULWHUDWRU OXQFK0HQXFUHDWH,WHUDWRU  ZKLOH LWHUDWRUKDV1H[W ^ 0HQX,WHPPHQX,WHP  0HQX,WHP LWHUDWRUQH[W  ` LUNCH)TEMS;= 

LUNCH)TE  , WHUDWR

U



6DPHVLWXDWLRQKHUHWKHFOLHQWMXVWFDOOV KDV1H[W DQGQH[W EHKLQGWKHVFHQHV WKHLWHUDWRULQGH[HVLQWRWKH$UUD\

)ZZIa

NEXT

:RZWKLVFRGH LVH[DFWO\WKH VDPHDVWKH EUHDNIDVW0HQX FRGH

LUNCH

LUNC

MS;=

 0 HQX,WHP



) TEMS

H) TE

 0H QX,WHP

;= 

MS;

 0H QX,WHP

= 

 0 HQ



X,WHP

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 11

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

5MM\\PM1 \MZI\WZ8I\\MZV ?MTTQ\TWWS[TQSMW]ZXTIVWN MVKIX[]TI\QVOQ\MZI\QWVR][\UQOP\ IK\]ITTa_WZS#IVLI[aW]¼^MXZWJIJTaITZMILaO]M[[MLQ\Q[I ,M[QOV8I\\MZVKITTML\PM1\MZI\WZ8I\\MZV
7KHKDV1H[W PHWKRG WHOOVXVLIWKHUHDUH PRUHHOHPHQWVLQWKH DJJUHJDWHWRLWHUDWH WKURXJK

LQWHUIDFH!! ,WHUDWRU KDV1H[W QH[W

7KHQH[W PHWKRG UHWXUQVWKHQH[W REMHFWLQWKHDJJUHJDWH 6W_WVKM_MPI^M\PQ[QV\MZNIKM_MKIVQUXTMUMV\1\MZI\WZ[NWZ IVaSQVLWN KWTTMK\QWVWN WJRMK\["IZZIa[TQ[\[PI[P\IJTM[XQKS aW]ZNI^WZQ\MKWTTMK\QWVWN WJRMK\[4M\¼[[Ia_M_IV\ML\W QUXTMUMV\\PM1\MZI\WZNWZ\PM)ZZIa][MLQV\PM,QVMZ5MV]1\ _W]TLTWWSTQSM\PQ["

LQWHUIDFH!! ,WHUDWRU KDV1H[W QH[W

'LQHU0HQX,WHUDWRU KDV1H[W QH[W

:KHQ ZHVD\ &2//(&7,21ZHMXVW PHDQDJURXSRIREMHFWV7KH\ PLJKWEHVWRUHGLQYHU\GLIIHUHQW GDWDVWUXFWXUHVOLNHOLVWVDUUD\V KDVKWDEOHVEXWWKH\·UH VWLOOFROOHFWLRQV:HDOVR VRPHWLPHVFDOOWKHVH $**5(*$7(6

'LQHU0HQX,WHUDWRULVDQ LPSOHPHQWDWLRQRI,WHUDWRU WKDWNQRZVKRZWRLWHUDWH RYHUDQDUUD\RI0HQX,WHPV

4M\¼[OWIPMILIVLQUXTMUMV\\PQ[1\MZI\WZIVLPWWSQ\QV\W\PM ,QVMZ5MV]\W[MMPW_\PQ[_WZS[

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 12

PDNHDQLWHUDWRU

)LLQVOIV1\MZI\WZ\W,QVMZ5MV] 7RDGGDQ,WHUDWRUWRWKH'LQHU0HQXZHÀUVWQHHGWRGHÀQHWKH ,WHUDWRU,QWHUIDFH

SXEOLFLQWHUIDFH,WHUDWRU^ ERROHDQKDV1H[W  2EMHFWQH[W  `

+HUH·VRXUWZRPHWKRGV OHDQ 7KHKDV1H[W PHWKRGUHWXUQVDERR UHPRUH LQGLFDWLQJZKHWKHURUQRWWKHUHD HOHPHQWVWRLWHUDWHRYHU

DQGWKHQH[W PHWK UHWXUQVWKHQH[WHOHPRG HQW

$QGQRZZHQHHGWRLPSOHPHQWDFRQFUHWH,WHUDWRUWKDWZRUNV IRUWKH'LQHUPHQX

:HLPSOHPHQWWKH ,WHUDWRULQWHUIDFH

SXEOLFFODVV'LQHU0HQX,WHUDWRULPSOHPHQWV,WHUDWRU^ WKH 0HQX,WHP>@LWHPV SRVLWLRQPDLQWDLQVRIWKH LRQ VLW SR LQWSRVLWLRQ  W HQ FXUU HDUUD\  LWHUDWLRQRYHUWK SXEOLF'LQHU0HQX,WHUDWRU 0HQX,WHP>@LWHPV ^ WKLVLWHPV LWHPV 7KHFRQVWUXFWRUWDNHVWKH ` DUUD\RIPHQXLWHPVZHDUH  JRLQJWRLWHUDWHRYHU SXEOLF2EMHFWQH[W ^ 0HQX,WHPPHQX,WHP LWHPV>SRVLWLRQ@ 7KHQH[W PHWKRGUHWXUQVWKH SRVLWLRQ SRVLWLRQ UHWXUQPHQX,WHP QH[WLWHPLQWKHDUUD\DQG ` LQFUHPHQWVWKHSRVLWLRQ  SXEOLFERROHDQKDV1H[W ^ LI SRVLWLRQ! LWHPVOHQJWK__LWHPV>SRVLWLRQ@ QXOO ^ UHWXUQIDOVH `HOVH^ UHWXUQWUXH ` ` %HFDXVHWKHGLQHUFKHIZHQWDKHDGDQG ` 7KHKDV1H[

W PHWKRGFKHFNVWR VHHLIZH·YHVHHQDOOWKHHOHPHQWV RIWKHDUUD\DQGUHWXUQVWUXHLI WKHUHDUHPRUHWRLWHUDWHWKURXJK



DOORFDWHGDPD[VL]HGDUUD\ZHQHHGWR FKHFNQRWRQO\LIZHDUHDWWKHHQGRI WKHDUUD\EXWDOVRLIWKHQH[WLWHPLV QXOOZKLFKLQGLFDWHVWKHUHDUHQRPRUH LWHPV

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 13

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

:M_WZSQVO\PM,QVMZ5MV]_Q\P1\MZI\WZ 2ND\ZH·YHJRWWKHLWHUDWRU7LPHWRZRUNLWLQWRWKH 'LQHU0HQXDOOZHQHHGWRGRLVDGGRQHPHWKRGWRFUHDWHD 'LQHU0HQX,WHUDWRUDQGUHWXUQLWWRWKHFOLHQW

^ SXEOLFFODVV'LQHU0HQXLPSOHPHQWV0HQX^ VWDWLF¿QDOLQW0$;B,7(06  LQWQXPEHU2I,WHPV  0HQX,WHP>@PHQX,WHPV  FRQVWUXFWRUKHUH  :H·UHQRWJRLQJWRQHHGWKHJHW0HQX,WHPV  DGG,WHPKHUH PHWKRGDQ\PRUHDQGLQIDFWZHGRQ·WZDQWLW  SXEOLF0HQX,WHP>@JHW0HQX,WHPV ^ EHFDXVHLWH[SRVHVRXULQWHUQDOLPSOHPHQWDWLRQ UHWXUQPHQX,WHPV `  SXEOLF,WHUDWRUFUHDWH,WHUDWRU ^ UHWXUQQHZ'LQHU0HQX,WHUDWRU PHQX,WHPV  +HUH·VWKHFUHDWH,WHUDWRU PHWKRG ` ,WFUHDWHVD'LQHU0HQX,WHUDWRU  IURPWKHPHQX,WHPVDUUD\DQG RWKHUPHQXPHWKRGVKHUH UHWXUQVLWWRWKHFOLHQW `

:H·UHUHWXUQLQJWKH,WHUDWRULQWHUIDFH7KHFOLHQW GRHVQ·WQHHGWRNQRZKRZWKHPHQX,WHPVDUHPDLQWDLQHG LQWKH'LQHU0HQXQRUGRHVLWQHHGWRNQRZKRZWKH 'LQHU0HQX,WHUDWRULVLPSOHPHQWHG,WMXVWQHHGVWRXVHWKH LWHUDWRUVWRVWHSWKURXJKWKHLWHPVLQWKHPHQX

([HUFLVH *RDKHDGDQGLPSOHPHQWWKH3DQFDNH+RXVH,WHUDWRU\RXUVHOIDQGPDNHWKHFKDQJHV QHHGHGWRLQFRUSRUDWHLWLQWRWKH3DQFDNH+RXVH0HQX

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 14

WKHZDLWUHVVLWHUDWHV

.Q`QVO]X\PM?IQ\ZM[[KWLM 6W__MVMML\WQV\MOZI\M\PMQ\MZI\WZKWLM QV\W\PM?IQ\ZM[[?M[PW]TLJMIJTM\WOM\ ZQLWN [WUMWN \PMZML]VLIVKaQV\PMXZWKM[[ 1V\MOZI\QWVQ[XZM\\a[\ZIQOP\NWZ_IZL"ÅZ[\_M KZMI\MIXZQV\5MV]UM\PWL\PI\\ISM[IV 1\MZI\WZ\PMV_M][M\PMOM\1\MZI\WZUM\PWLWV MIKPUMV]\WZM\ZQM^M\PM1\MZI\WZIVLXI[[Q\\W \PMVM_UM\PWL

1HZDQGLPSURYHG ZLWK,WHUDWRU

SXEOLFFODVV:DLWUHVV^ ,QWKHFRQVWUXFWRUWKH:DLWUHVV 3DQFDNH+RXVH0HQXSDQFDNH+RXVH0HQX 'LQHU0HQXGLQHU0HQX WDNHVWKHWZRPHQXV  SXEOLF:DLWUHVV 3DQFDNH+RXVH0HQXSDQFDNH+RXVH0HQX'LQHU0HQXGLQHU0HQX ^ WKLVSDQFDNH+RXVH0HQX SDQFDNH+RXVH0HQX 7KHSULQW0HQX  WKLVGLQHU0HQX GLQHU0HQX PHWKRGQRZ ` FUHDWHVWZR  SXEOLFYRLGSULQW0HQX ^ LWHUDWRUVRQHIRU ,WHUDWRUSDQFDNH,WHUDWRU SDQFDNH+RXVH0HQXFUHDWH,WHUDWRU  HDFKPHQX ,WHUDWRUGLQHU,WHUDWRU GLQHU0HQXFUHDWH,WHUDWRU  6\VWHPRXWSULQWOQ ³0(18?Q?Q%5($.)$67´  $QGWKHQFDOOVWKH SULQW0HQX SDQFDNH,WHUDWRU  RYHUORDGHGSULQW0HQX  6\VWHPRXWSULQWOQ ³?Q/81&+´  SULQW0HQX GLQHU,WHUDWRU  ZLWKHDFKLWHUDWRU ` 7HVWLIWKHUHDUH  7KHRYHUORDGHG SULYDWHYRLGSULQW0HQX ,WHUDWRULWHUDWRU ^ DQ\PRUHLWHPV SULQW0HQX  ZKLOH LWHUDWRUKDV1H[W ^ *HWWKH PHWKRGXVHV 0HQX,WHPPHQX,WHP  0HQX,WHP LWHUDWRUQH[W  QH[WLWHP WKH,WHUDWRUWR 6\VWHPRXWSULQW PHQX,WHPJHW1DPH ³³  VWHSWKURXJKWKH 6\VWHPRXWSULQW PHQX,WHPJHW3ULFH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW'HVFULSWLRQ  PHQXLWHPVDQG ` SULQWWKHP `  8VHWKHLWHPWR  RWKHUPHWKRGVKHUH JHWQDPHSULFH 1RWHWKDWZH·UHGRZQ ` DQGGHVFULSWLRQ WRRQHORRS

DQGSULQWWKHP



&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 15

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV


)LUVWZHFUHDWHWKHQHZPHQXV SXEOLFFODVV0HQX7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ ^ 3DQFDNH+RXVH0HQXSDQFDNH+RXVH0HQX QHZ3DQFDNH+RXVH0HQX  'LQHU0HQXGLQHU0HQX QHZ'LQHU0HQX   :DLWUHVVZDLWUHVV QHZ:DLWUHVV SDQFDNH+RXVH0HQXGLQHU0HQX   ZDLWUHVVSULQW0HQX  ` `

7KHQZHFUHDWHD :DLWUHVVDQGSDVV KHUWKHPHQXV

7KHQZHSULQWWKHP

0MZM¼[\PM\M[\Z]V )LOH(GLW:LQGRZ+HOS*UHHQ(JJV +DP

MDYD'LQHU0HQX7HVW'ULYH

)LUVWZHLWHUDWH

0(18 WKURXJKWKHSDQFDNH  PHQX %5($.)$67 $QGWKHQ . %¶V3DQFDNH%UHDNIDVW3DQFDNHVZLWKVFUDPEOHGHJJVDQGWRDVW WKHOXQFK 5HJXODU3DQFDNH%UHDNIDVW3DQFDNHVZLWKIULHGHJJVVDXVDJH PHQXDOO %OXHEHUU\3DQFDNHV3DQFDNHVPDGHZLWKIUHVKEOXHEHUULHV ZLWKWKH :DIÀHV:DIÀHVZLWK\RXUFKRLFHRIEOXHEHUULHVRUVWUDZEHUULHV /81&+ 9HJHWDULDQ%/7 )DNLQ¶ %DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW %/7%DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW 6RXSRIWKHGD\6RXSRIWKHGD\ZLWKDVLGHRISRWDWRVDODG +RWGRJ$KRWGRJZLWKVDXUNUDXWUHOLVKRQLRQVWRSSHGZLWKFKHHVH 6WHDPHG9HJJLHVDQG%URZQ5LFH6WHDPHGYHJHWDEOHVRYHUEURZQULFH 3DVWD6SDJKHWWLZLWK0DULQDUD6DXFHDQGDVOLFHRIVRXUGRXJKEUHDG

VDPH LWHUDWLRQ FRGH



\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 16

LWHUDWRUDGYDQWDJHV

?PI\PI^M_MLWVM[WNIZ'

:RRKRR1R FRGHFKDQJHVRWKHU WKDQDGGLQJWKH FUHDWH,WHUDWRU PHWKRG

.WZ[\IZ\MZ[_M¼^MUILMW]Z7JRMK\^QTTMKWWS[ ^MZaPIXXa
9HJJLHEXUJHU

0IZL\W5IQV\IQV ?IQ\ZM[[1UXTMUMV\I\QWV



6M_0QX ?IQ\ZM[[8W_MZMLJa1\MZI\WZ

7KH0HQXVDUHQRWZHOO HQFDSVXODWHGZHFDQVHHWKH 'LQHULVXVLQJDQ$UUD\/LVWDQGWKH 3DQFDNH+RXVHDQ$UUD\

7KH0HQXLPSOHPHQWDWLRQVDUHQRZ HQFDSVXODWHG7KH:DLWUHVVKDV QRLGHDKRZWKH0HQXVKROGWKHLU FROOHFWLRQRIPHQXLWHPV

:HQHHGWZRORRSVWRLWHUDWHWKURXJK WKH0HQX,WHPV

$OOZHQHHGLVDORRSWKDW SRO\PRUSKLFDOO\KDQGOHVDQ\ FROOHFWLRQRILWHPVDVORQJDVLW LPSOHPHQWV,WHUDWRU

7KH:DLWUHVVLVERXQGWRFRQFUHWH FODVVHV 0HQX,WHP>@DQG$UUD\/LVW 

7KH:DLWUHVVQRZXVHVDQLQWHUIDFH ,WHUDWRU 

7KH:DLWUHVVLVERXQGWRWZRGLIIHUHQW FRQFUHWH0HQXFODVVHVGHVSLWHWKHLU LQWHUIDFHVEHLQJDOPRVWLGHQWLFDO

7KH0HQXLQWHUIDFHVDUHQRZH[DFWO\ WKHVDPHDQGXKRKZHVWLOOGRQ¶W KDYHDFRPPRQLQWHUIDFHZKLFK PHDQVWKH:DLWUHVVLVVWLOOERXQGWR WZRFRQFUHWH0HQXFODVVHV:H¶G EHWWHU¿[WKDW

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 17

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

?PI\_MPI^M[WNIZ *MNWZM_MKTMIV\PQVO[]XTM\¼[OM\IJQZL¼[MaM^QM_WN W]ZK]ZZMV\LM[QOV

PHQWWKH 7KHVHWZRPHQXVLPSOHWKRGVEXW PH RI VDPHH[DFWVHW WKHVDPH WKH\DUHQ·WLPSOHPHQWLQJ JWRIL[WKLV RLQ HJ H·U : DFH HUI ,QW URPDQ\ DQGIUHHWKH:DLWUHVVIWH0HQXV FUH FRQ RQ LHV GHSHQGHQF

3DQFDNH+RXVH0HQX PHQX,WHPV

:H·UHQRZ XVLQJDFRPPRQ ,WHUDWRU LQWHUIDFH DQGZH·YH LPSOHPHQWHG WZRFRQFUHWH FODVVHV

7KH,WHUDWRUDOORZVWKH:DLWUHVVWREHGHFRXSOHG IURPWKHDFWXDOLPSOHPHQWDWLRQRIWKHFRQFUHWH FODVVHV6KHGRHVQ·WQHHGWRNQRZLID0HQXLV LPSOHPHQWHGZLWKDQ$UUD\DQ$UUD\/LVWRUZLWK Œ WHV$OOVKHFDUHVLVWKDWVKHFDQJHWDQ 3RVW,WQR ,WHUDWRUWRGRKHULWHUDWLQJ

LQWHUIDFH!! ,WHUDWRU

:DLWUHVV SULQW0HQX

KDV1H[W

FUHDWH,WHUDWRU

QH[W

'LQHU0HQX PHQX,WHPV

FUHDWH,WHUDWRU

3DQFDNH+RXVH0HQX,WHUDWRU

1RWHWKDWWKHLWHUDWRUJLYHXVDZD\WRVWHS WKURXJKWKHHOHPHQWVRIDQDJJUHJDWHZLWK RXW IRUFLQJWKHDJJUHJDWHWRFOXWWHULWVRZQLQWHU ZLWKDEXQFKRIPHWKRGVWRVXSSRUWWUDYHUVDORIDFH HOHPHQWV,WDOVRDOORZVWKHLPSOHPHQWDWLRQRI ILWV LWHUDWRUWROLYHRXWVLGHRIWKHDJJUHJDWHLQRWWKH KHU ZRUGVZH·YHHQFDSVXODWHGWKHLQWHUDWLRQ

'LQHU0HQX,WHUDWRU

KDV1H[W

KDV1H[W

QH[W

QH[W

HQW QG'LQHU0HQXLPSOHP 3DQFDNH+RXVH0HQXD WRU PHWKRGWKH\DUH WKHQHZFUHDWH,WHUDWLQJWKHLWHUDWRUIRUWKHLU UHVSRQVLEOHIRUFUHDPVLPSOHPHQWDWLRQV UHVSHFWLYHPHQXLWH

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 18

LPSURYHWKHLWHUDWRU

5ISQVO[WUMQUXZW^MUMV\[ 7SIa_MSVW_\PMQV\MZNIKM[WN 8IVKISM0W][M5MV]IVL,QVMZ5MV]IZMM`IK\Ta\PM[IUM IVLaM\_MPI^MV¼\LMÅVMLIKWUUWVQV\MZNIKMNWZ\PMU;W_M¼ZMOWQVO\WLW\PI\IVL KTMIV]X\PM?IQ\ZM[[ITQ\\TMUWZM AW]UIaJM_WVLMZQVO_Pa_M¼ZMVW\][QVO\PM2I^I1\MZI\WZQV\MZNIKM·_MLQL\PI\[WaW] KW]TL[MMPW_\WJ]QTLIVQ\MZI\WZNZWU[KZI\KP6W_\PI\_M¼^MLWVM\PI\_M¼ZMOWQVO\W [_Q\KP\W][QVO\PM2I^I1\MZI\WZQV\MZNIKMJMKI][M_M¼TTOM\ITW\WN TM^MZIOMJaQUXTMUMV\QVO \PI\QV[\MILWN W]ZPWUMOZW_V1\MZI\WZQV\MZNIKM?PI\SQVLWN TM^MZIOM'AW]¼TT[WWV[MM .QZ[\TM\¼[KPMKSW]\\PMRI^I]\QT1\MZI\WZQV\MZNIKM"

7KLVORRNVMXVWOLNHRXUSUHYLRXVGHILQLWLRQ

LQWHUIDFH!! ,WHUDWRU KDV1H[W QH[W

([FHSWZHKDYHDQDGGLWLRQDOPHWKRGWKDW DOORZVXVWRUHPRYHWKHODVWLWHPUHWXUQHGE\ WKHQH[W PHWKRGIURPWKHDJJUHJDWH

UHPRYH


there are no

Dumb Questions

Q:

:KDWLI,GRQ·WZDQWWRSURYLGH WKHDELOLW\WRUHPRYHVRPHWKLQJIURPWKH XQGHUO\LQJFROOHFWLRQRIREMHFWV"

A:

7KHUHPRYH PHWKRGLVFRQVLGHUHG RSWLRQDO


Q:

+RZGRHVUHPRYH EHKDYH XQGHUPXOWLSOHWKUHDGVWKDWPD\EH XVLQJGLIIHUHQWLWHUDWRUVRYHUWKHVDPH FROOHFWLRQRIREMHFWV"

WKHUXQWLPHH[FHSWLRQ MDYDODQJ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ 7KH,WHUDWRU$3,GRFXPHQWDWLRQVSHFLILHVWKDW WKLVH[FHSWLRQPD\EHWKURZQIURPUHPRYH  DQGDQ\FOLHQWWKDWLVDJRRGFLWL]HQZLOO FKHFNIRUWKLVH[FHSWLRQZKHQFDOOLQJWKH UHPRYH PHWKRG

A:

7KHEHKDYLRURIWKHUHPRYH LV XQVSHFLILHGLIWKHFROOHFWLRQFKDQJHVZKLOH \RXDUHLWHUDWLQJRYHULW6R\RXVKRXOGEH FDUHIXOLQGHVLJQLQJ\RXURZQPXOWLWKUHDGHG FRGHZKHQDFFHVVLQJDFROOHFWLRQ FRQFXUUHQWO\

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 19

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

+TMIVQVO\PQVO[]X_Q\PRI^I]\QT1\MZI\WZ 4M\¼[[\IZ\_Q\P\PM8IVKISM0W][M5MV]KPIVOQVOQ\W^MZ\WRI^I]\QT1\MZI\WZQ[ OWQVO\WJMMI[a?MR][\LMTM\M\PM8IVKISM0W][M5MV]1\MZI\WZKTI[[ILLIV QUXWZ\RI^I]\QT1\MZI\WZ\W\PM\WXWN 8IVKISM0W][M5MV]IVLKPIVOMWVMTQVM WN \PM8IVKISM0W][M5MV]" SXEOLF,WHUDWRUFUHDWH,WHUDWRU ^ UHWXUQPHQX,WHPVLWHUDWRU  `

,QVWHDGRIFUHDWLQJRXURZQLWHUDWRU QRZZHMXVWFDOOWKHLWHUDWRU PHWKRG RQWKHPHQX,WHPV$UUD\/LVW

)VL\PI\¼[Q\8IVKISM0W][M5MV]Q[LWVM 6W__MVMML\WUISM\PMKPIVOM[\WITTW_\PM,QVMZ5MV]\W_WZS_Q\PRI^I]\QT1\MZI\WZ

)LUVWZHLPSRUWMDYDXWLO,WHUDWRUWKH LPSRUWMDYDXWLO,WHUDWRU  LQWHUIDFHZH·UHJRLQJWRLPSOHPHQW SXEOLFFODVV'LQHU0HQX,WHUDWRULPSOHPHQWV,WHUDWRU^ 0HQX,WHP>@OLVW LQWSRVLWLRQ   SXEOLF'LQHU0HQX,WHUDWRU 0HQX,WHP>@OLVW ^ WKLVOLVW OLVW ` 1RQHRIRXUFXUUHQW  LPSOHPHQWDWLRQFKDQJHV SXEOLF2EMHFWQH[W ^ LPSOHPHQWDWLRQKHUH ` EXWZHGRQHHGWRLPSOHPHQWUHPRYH   +HUHEHFDXVHWKHFKHILVXVLQJDIL[HG SXEOLFERROHDQKDV1H[W ^ VL]HG$UUD\ZHMXVWVKLIWDOOWKH LPSOHPHQWDWLRQKHUH ` HOHPHQWVXSRQHZKHQUHPRYH LVFDOOHG  SXEOLFYRLGUHPRYH ^ LI SRVLWLRQ  ^ WKURZQHZ,OOHJDO6WDWH([FHSWLRQ  ³SRVLWLRQ@ QXOO ^ IRU LQWL SRVLWLRQL OLVWOHQJWK L ^ OLVW>L@ OLVW>L@ ` OLVW>OLVWOHQJWK@ QXOO ` ` ` \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 20

GHFRXSOHWKHZDLWUHVVIURPWKHPHQXV

?MIZMITUW[\\PMZM ?MR][\VMML\WOQ^M\PM5MV][IKWUUWVQV\MZNIKMIVLZM_WZS\PM?IQ\ZM[[ ITQ\\TM
7KLVLVDVLPSOHLQWHUIDFHWKDWMXVW OHWVFOLHQWVJHWDQLWHUDWRUIRU WKHLWHPVLQWKHPHQX

SXEOLFLQWHUIDFH0HQX^ SXEOLF,WHUDWRUFUHDWH,WHUDWRU  `

6W__MVMML\WILLIVLPSOHPHQWV0HQX\WJW\P\PM 8IVKISM0W][M5MV]IVL\PM,QVMZ5MV]KTI[[LMÅVQ\QWV[IVL ]XLI\M\PM?IQ\ZM[["

1RZW

KH:DLWUHVVXVHVWKHMDYDXWLO,WHUDWRUDVZHOO LPSRUWMDYDXWLO,WHUDWRU  SXEOLFFODVV:DLWUHVV^ 0HQXSDQFDNH+RXVH0HQX :HQHHGWRUHSODFHWKH 0HQXGLQHU0HQX FRQFUHWH0HQXFODVVHV  ZLWKWKH0HQX,QWHUIDFH SXEOLF:DLWUHVV 0HQXSDQFDNH+RXVH0HQX0HQXGLQHU0HQX ^ WKLVSDQFDNH+RXVH0HQX SDQFDNH+RXVH0HQX WKLVGLQHU0HQX GLQHU0HQX `  SXEOLFYRLGSULQW0HQX ^ ,WHUDWRUSDQFDNH,WHUDWRU SDQFDNH+RXVH0HQXFUHDWH,WHUDWRU  ,WHUDWRUGLQHU,WHUDWRU GLQHU0HQXFUHDWH,WHUDWRU  6\VWHPRXWSULQWOQ ³0(18?Q?Q%5($.)$67´  SULQW0HQX SDQFDNH,WHUDWRU  6\VWHPRXWSULQWOQ ³?Q/81&+´  1RWKLQJFKDQJHV SULQW0HQX GLQHU,WHUDWRU  KHUH `  SULYDWHYRLGSULQW0HQX ,WHUDWRULWHUDWRU ^ ZKLOH LWHUDWRUKDV1H[W ^ 0HQX,WHPPHQX,WHP  0HQX,WHP LWHUDWRUQH[W  6\VWHPRXWSULQW PHQX,WHPJHW1DPH ³³  6\VWHPRXWSULQW PHQX,WHPJHW3ULFH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW'HVFULSWLRQ  ` `  RWKHUPHWKRGVKHUH ` 

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 21

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

?PI\LWM[\PQ[OM\][' RI 7KLVVROYHVWKHSUREOHP RQ WKH:DLWUHVVGHSHQGLQJ WKHFRQFUHWH0HQXV


LWUHVVIURPWKH  :H·YHGHFRXSOHG:D HPHQXVVRQRZ WK I R LRQ LPSOHPHQWDW WRLWHUDWH RU DW HU ,W ZHFDQXVHDQ PHQXLWHPVZLWKRXW RYHUDQ\OLVWRI RXWKRZWKHOLVW KDYLQJWRNQRZDE HQWHG RILWHPVLVLPSOHP

1RZ:DLWUHVV RQO\QHHGVWR EHFRQFHUQHG ZLWK0HQXVDQG ,WHUDWRUV

+HUH·VRXUQHZ0HQXLQWHUIDFH ,WVSHFLILHVWKHQHZPHWKRG FUHDWH,WHUDWRU  LQWHUIDFH!! 0HQX

7KLVVROYHVWKHSUREOHPRI WKH:DLWUHVVGHSHQGLQJRQ WKHLPSOHPHQWDWLRQRIWKH 0HQX,WHPV

LQWHUIDFH!! ,WHUDWRU

:DLWUHVV SULQW0HQX

KDV1H[W

FUHDWH,WHUDWRU FUHDWH,WHUDWRU

QH[W UHPRYH

3DQFDNH+RXVH0HQX PHQX,WHPV

FUHDWH,WHUDWRU

'LQHU0HQX

'LQHU0HQX,WHUDWRU

3DQFDNH+RXVH0HQX,WHUDWRU

PHQX,WHPV

FUHDWH,WHUDWRU

3DQFDNH+RXVH0HQXDQG'LQHU0HQXQRZLP WKH0HQXLQWHUIDFHZKLFKPHDQVWKH\ SOHPHQW LPSOHPHQWWKHQHZFUHDWH,WHUDWRU PQHHGWR HWKRG

KDV1H[W

KDV1H[W

QH[W

QH[W

UHPRYH

UHPRYH

:H·UHQRZXVLQJWKH$UUD\/LVW LWHUDWRUVXSSOLHGE\MDYDXWLO :HGRQ·WQHHGWKLVDQ\PRUH

(DFKFRQFUHWH0HQXLVUHVSRQVLEOH IRUFUHDWLQJWKHDSSURSULDWH FRQFUHWH,WHUDWRUFODVV

'LQHU0HQXUHWXUQVDQ 'LQHU0HQX,WHUDWRU IURPLWV FUHDWH,WHUDWRU  PHWKRGEHFDXVHWKDW·V WKHNLQGRILWHUDWRU UHTXLUHGWRLWHUDWH RYHULWV$UUD\RI PHQXLWHPV

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 22

LWHUDWRUSDWWHUQGH¿QHG

1\MZI\WZ8I\\MZVLMNQVML AW]¼^MITZMILa[MMVPW_\WQUXTMUMV\\PM1\MZI\WZ 8I\\MZV_Q\PaW]Z^MZaW_VQ\MZI\WZAW]¼^MIT[W[MMV PW_2I^I[]XXWZ\[Q\MZI\WZ[QV[WUMWN Q\[KWTTMK\QWV WZQMV\MLKTI[[M[\PM)ZZIa4Q[\6W_Q\¼[\QUM\WKPMKS W]\\PMWNÅKQITLMÅVQ\QWVWN \PMXI\\MZV"



7KH,WHUDWRU3DWWHUQDOORZV WUDYHUVDORIWKHHOHPHQWV RIDQDJJUHJDWHZLWKRXW H[SRVLQJWKHXQGHUO\LQJ LPSOHPHQWDWLRQ ,WDOVRSODFHVWKHWDVNRI WUDYHUVDORQWKHLWHUDWRU REMHFWQRWRQWKHDJJUHJDWH ZKLFKVLPSOLILHVWKH DJJUHJDWHLQWHUIDFHDQG LPSOHPHQWDWLRQDQGSODFHV WKHUHVSRQVLELOLW\ZKHUHLW VKRXOGEH

4M\¼[KPMKSW]\\PMKTI[[LQIOZIU\WX]\ITT\PMXQMKM[QV KWV\M`\



&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 23

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

+DYLQJDFRPPRQLQWHUIDFHIRU\RXU DJJUHJDWHVLVKDQG\IRU\RXUFOLHQW LWGHFRXSOHV\RXUFOLHQWIURPWKH LPSOHPHQWDWLRQRI\RXUFROOHFWLRQRIREMHFWV LQWHUIDFH!! $JJUHJDWH

LQWHUIDFH!! ,WHUDWRU

&OLHQW

FUHDWH,WHUDWRU

KDV1H[W QH[W UHPRYH

7KH,WHUDWRULQWHUIDFH SURYLGHVWKHLQWHUIDFH WKDWDOOLWHUDWRUV PXVWLPSOHPHQWDQG DVHWRIPHWKRGV IRUWUDYHUVLQJRYHU HOHPHQWVRIDFROOHFWLRQ +HUHZH·UHXVLQJWKH MDYDXWLO,WHUDWRU,I\RX GRQ·WZDQWWRXVH-DYD·V ,WHUDWRULQWHUIDFH\RX FDQDOZD\VFUHDWH\RXU RZQ

&RQFUHWH,WHUDWRU

&RQFUHWH$JJUHJDWH

KDV1H[W

FUHDWH,WHUDWRU

QH[W

7KH&RQFUHWH$JJUHJDWH KDVDFROOHFWLRQRI REMHFWVDQGLPSOHPHQWV WKHPHWKRGWKDW UHWXUQVDQ,WHUDWRU IRULWVFROOHFWLRQ

(DFK&RQFUHWH$JJUHJDWH LVUHVSRQVLEOHIRU LQVWDQWLDWLQJD &RQFUHWH,WHUDWRUWKDW FDQLWHUDWHRYHULWV FROOHFWLRQRIREMHFWV

UHPRYH

7KH&RQFUHWH,WHUDWRULV UHVSRQVLEOHIRUPDQDJLQJ WKHFXUUHQWSRVLWLRQRI WKHLWHUDWLRQ

YiX`e gfn\i 7KHFODVVGLDJUDPIRUWKH,WHUDWRU3DWWHUQORRNVYHU\VLPLODUWRDQRWKHU3DWWHUQ\RX¶YHVWXGLHGFDQ\RX WKLQNRIZKDWLWLV"+LQW$VXEFODVVGHFLGHVZKLFKREMHFWWRFUHDWH

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 24

T DDERXWLWHUDWRU

there are no

Dumb Questions

Q:

,·YHVHHQRWKHUERRNVVKRZWKH ,WHUDWRUFODVVGLDJUDPZLWKWKHPHWKRGV ILUVW QH[W LV'RQH DQGFXUUHQW,WHP  :K\DUHWKHVHPHWKRGVGLIIHUHQW"

A:

7KRVHDUHWKH´FODVVLFµPHWKRG QDPHVWKDWKDYHEHHQXVHG7KHVHQDPHV KDYHFKDQJHGRYHUWLPHDQGZHQRZKDYH QH[W KDV1H[W DQGHYHQUHPRYH LQ MDYDXWLO,WHUDWRU /HW·VORRNDWWKHFODVVLFPHWKRGV7KH QH[W DQGFXUUHQW,WHP KDYHEHHQPHUJHG LQWRRQHPHWKRGLQMDYDXWLO7KHLV'RQH  PHWKRGKDVREYLRXVO\EHFRPHKDV1H[W  EXWZHKDYHQRPHWKRGFRUUHVSRQGLQJWR ILUVW 7KDW·VEHFDXVHLQ-DYDZHWHQGWR MXVWJHWDQHZLWHUDWRUZKHQHYHUZHQHHGWR VWDUWWKHWUDYHUVDORYHU1HYHUWKHOHVV\RX FDQVHHWKHUHLVYHU\OLWWOHGLIIHUHQFHLQWKHVH LQWHUIDFHV,QIDFWWKHUHLVDZKROHUDQJH RIEHKDYLRUV\RXFDQJLYH\RXULWHUDWRUV 7KHUHPRYH PHWKRGLVDQH[DPSOHRIDQ H[WHQVLRQLQMDYDXWLO,WHUDWRU

Q:

,·YHKHDUGDERXW´LQWHUQDOµ LWHUDWRUVDQG´H[WHUQDOµLWHUDWRUV:KDW DUHWKH\":KLFKNLQGGLGZHLPSOHPHQW LQWKHH[DPSOH"

A:

:HLPSOHPHQWHGDQH[WHUQDOLWHUDWRU ZKLFKPHDQVWKDWWKHFOLHQWFRQWUROVWKH LWHUDWLRQE\FDOOLQJQH[W WRJHWWKHQH[W HOHPHQW$QLQWHUQDOLWHUDWRULVFRQWUROOHG E\WKHLWHUDWRULWVHOI,QWKDWFDVHEHFDXVH LW·VWKHLWHUDWRUWKDW·VVWHSSLQJWKURXJKWKH HOHPHQWV\RXKDYHWRWHOOWKHLWHUDWRUZKDW WRGRZLWKWKRVHHOHPHQWVDVLWJRHVWKURXJK WKHP7KDWPHDQV\RXQHHGDZD\WRSDVV DQRSHUDWLRQWRDQLWHUDWRU,QWHUQDOLWHUDWRUV DUHOHVVIOH[LEOHWKDWH[WHUQDOLWHUDWRUV EHFDXVHWKHFOLHQWGRHVQ·WKDYHFRQWURORI WKHLWHUDWLRQ+RZHYHUVRPHPLJKWDUJXH



WKDWWKH\DUHHDVLHUWRXVHEHFDXVH\RXMXVW KDQGWKHPDQRSHUDWLRQDQGWHOOWKHPWR LWHUDWHDQGWKH\GRDOOWKHZRUNIRU\RX

Q:

&RXOG,LPSOHPHQWDQ,WHUDWRUWKDW FDQJREDFNZDUGVDVZHOODVEDFNZDUGV"

A:

'HILQLWHO\,QWKDWFDVH\RX·G SUREDEO\ZDQWWRDGGWZRPHWKRGVRQHWR JHWWRWKHSUHYLRXVHOHPHQWDQGRQHWRWHOO \RXZKHQ\RX·UHDWWKHEHJLQQLQJRIWKH FROOHFWLRQRIHOHPHQWV-DYD·V&ROOHFWLRQ )UDPHZRUNSURYLGHVDQRWKHUW\SHRILWHUDWRU LQWHUIDFHFDOOHG/LVW,WHUDWRU7KLVLWHUDWRU DGGVSUHYLRXV DQGDIHZRWKHUPHWKRGV WRWKHVWDQGDUG,WHUDWRULQWHUIDFH,WLV VXSSRUWHGE\DQ\&ROOHFWLRQWKDWLPSOHPHQWV WKH/LVWLQWHUIDFH

Q:

:KRGHILQHVWKHRUGHULQJRIWKH LWHUDWLRQLQDFROOHFWLRQOLNH+DVKWDEOH ZKLFKDUHLQKHUHQWO\XQRUGHUHG"

A:

,WHUDWRUVLPSO\QRRUGHULQJ7KH XQGHUO\LQJFROOHFWLRQVPD\EHXQRUGHUHGDV LQDKDVKWDEOHRULQDEDJWKH\PD\HYHQ FRQWDLQGXSOLFDWHV6RRUGHULQJLVUHODWHG WRERWKWKHSURSHUWLHVRIWKHXQGHUO\LQJ FROOHFWLRQDQGWRWKHLPSOHPHQWDWLRQ,Q JHQHUDO\RXVKRXOGPDNHQRDVVXPSWLRQV DERXWRUGHULQJXQOHVVWKH&ROOHFWLRQ GRFXPHQWDWLRQLQGLFDWHVRWKHUZLVH

Q:


A:

FROOHFWLRQDVORQJDVLWVXSSRUWV,WHUDWRU :HGRQ·WFDUHDERXWKRZWKHFROOHFWLRQ LVLPSOHPHQWHGZHFDQVWLOOZULWHFRGHWR LWHUDWHRYHULW

Q:

,I,·PXVLQJ-DYDZRQ·W,DOZD\V ZDQWWRXVHWKHMDYDXWLO,WHUDWRU LQWHUIDFHVR,FDQXVHP\RZQLWHUDWRU LPSOHPHQWDWLRQVZLWKFODVVHVWKDWDUH DOUHDG\XVLQJWKH-DYDLWHUDWRUV"

A:

3UREDEO\,I\RXKDYHDFRPPRQ ,WHUDWRULQWHUIDFHLWZLOOFHUWDLQO\PDNHLW HDVLHUIRU\RXWRPL[DQGPDWFK\RXURZQ DJJUHJDWHVZLWK-DYDDJJUHJDWHVOLNH $UUD\/LVWDQG9HFWRU%XWUHPHPEHULI\RX QHHGWRDGGIXQFWLRQDOLW\WR\RXU,WHUDWRU LQWHUIDFHIRU\RXUDJJUHJDWHV\RXFDQ DOZD\VH[WHQGWKH,WHUDWRULQWHUIDFH

Q:

,·YHVHHQDQ(QXPHUDWLRQ LQWHUIDFHLQ-DYDGRHVWKDWLPSOHPHQW WKH,WHUDWRU3DWWHUQ"

A:

:HWDONHGDERXWWKLVLQWKH$GDSWHU &KDSWHU5HPHPEHU"7KHMDYDXWLO (QXPHUDWLRQLVDQROGHULPSOHPHQWDWLRQ RI,WHUDWRUWKDWKDVVLQFHEHHQUHSODFHG E\MDYDXWLO,WHUDWRU(QXPHUDWLRQKDV WZRPHWKRGVKDV0RUH(OHPHQWV  FRUUHVSRQGLQJWRKDV1H[W DQG QH[W(OHPHQW FRUUHVSRQGLQJWRQH[W  +RZHYHU\RX·OOSUREDEO\ZDQWWRXVH,WHUDWRU RYHU(QXPHUDWLRQDVPRUH-DYDFODVVHV VXSSRUWLW,I\RXQHHGWRFRQYHUWIURPRQH WRDQRWKHUUHYLHZWKH$GDSWHU&KDSWHU DJDLQZKHUH\RXLPSOHPHQWHGWKHDGDSWHU IRU(QXPHUDWLRQDQG,WHUDWRU

:KHQZHZULWHPHWKRGVWKDWWDNH ,WHUDWRUVDVSDUDPHWHUVZHDUHXVLQJ SRO\PRUSKLFLWHUDWLRQ7KDWPHDQVZHDUH FUHDWLQJFRGHWKDWFDQLWHUDWHRYHUDQ\

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 25

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

; QVOTM:M[XWV[QJQTQ\a :KDWLIZHDOORZHGRXUDJJUHJDWHVWR LPSOHPHQWWKHLULQWHUQDOFROOHFWLRQVDQG UHODWHGRSHUDWLRQV$1'WKHLWHUDWLRQ PHWKRGV":HOOZHDOUHDG\NQRZWKDW ZRXOGH[SDQGWKHQXPEHURIPHWKRGVLQ WKHDJJUHJDWHEXWVRZKDW":K\LVWKDW VREDG" ?MTT\W[MM_PaaW]ÅZ[\VMML\WZMKWOVQbM\PI\_PMV_MITTW_ IKTI[[\WVW\WVTa\ISMKIZMWN Q\[W_VJ][QVM[[UIVIOQVO [WUMSQVLWN IOOZMOI\MJ]\IT[W\ISMWVUWZMZM[XWV[QJQTQ\QM[ TQSMQ\MZI\QWV\PMV_M¼^MOQ^MV\PMKTI[[\_WZMI[WV[\WKPIVOM <_W'A]X\_W"Q\KIVKPIVOMQN \PMKWTTMK\QWVKPIVOM[QV [WUM_IaIVLQ\KIVKPIVOMQN \PM_Ia_MQ\MZI\MKPIVOM[;W WVKMIOIQVW]ZNZQMVL+0)6/-Q[I\\PMKMV\MZWN IVW\PMZ LM[QOVXZQVKQXTM"

(YHU\UHVSRQVLELOLW\RID FODVVLVDQDUHDRISRWHQWLDO FKDQJH0RUHWKDQRQH UHVSRQVLELOLW\PHDQVPRUH WKDQRQHDUHDRIFKDQJH 7KLVSULQFLSOHJXLGHVXVWR NHHSHDFKFODVVWRDVLQJOH UHVSRQVLELOLW\

'HVLJQ3ULQFLSOH $FODVVVKRXOGKDYHRQO\RQH UHDVRQWRFKDQJH

&RKHVLRQLVDWHUP\RX¶OO

+HDG)LUVW

?MSVW__M_IV\\WI^WQLKPIVOMQVIKTI[[TQSM\PMXTIO]M ·UWLQNaQVOKWLMXZW^QLM[ITT[WZ\[WN WXXWZ\]VQ\QM[NWZ XZWJTMU[\WKZMMXQV0I^QVO\_W_Ia[\WKPIVOMQVKZMI[M[ \PMXZWJIJQTQ\a\PMKTI[[_QTTKPIVOMQV\PMN]\]ZMIVL_PMV Q\LWM[Q\¼[OWQVO\WINNMK\\_WI[XMK\[WN aW]ZLM[QOV
22*OXH

KHDUXVHGDVDPHDVXUHRI KRZFORVHO\DFODVVRUD PRGXOHVXSSRUWVDVLQJOH SXUSRVHRUUHVSRQVLELOLW\

:HVD\WKDWDPRGXOHRU FODVVKDVKLJKFRKHVLRQ ZKHQLWLVGHVLJQHGDURXQGDVHWRI UHODWHGIXQFWLRQVDQGZHVD\LWKDVORZ FRKHVLRQZKHQLWLVGHVLJQHGDURXQGD VHWRIXQUHODWHGIXQFWLRQV &RKHVLRQLVDPRUHJHQHUDOFRQFHSW WKDQWKH6LQJOH5HVSRQVLELOLW\3ULQFLSOH EXWWKHWZRDUHFORVHO\UHODWHG &ODVVHVWKDWDGKHUHWRWKHSULQFLSOH WHQGWRKDYHKLJKFRKHVLRQDQGDUH PRUHPDLQWDLQDEOHWKDQFODVVHVWKDW WDNHRQPXOWLSOHUHVSRQVLELOLWLHVDQG KDYHORZFRKHVLRQ

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 26

PXOWLSOHUHVSRQVLELOLWLHV

YiX`e gfn\i ([DPLQHWKHVHFODVVHVDQGGHWHUPLQHZKLFKRQHVKDYHPXOWLSOHUHVSRQVLELOLWLHV

*XPEDOO0DFKLQH

3HUVRQ

JHW&RXQW

VHW1DPH

*DPH

3KRQH

VHW$GGUHVV

ORJLQ VLJQXS

WDON

ORDG

ILUH

JHW/RFDWLRQ

KDQJ8S

VDYH

PRYH

JHW6WDWH

GLDO

VHW3KRQH1XPEHU

VHQG'DWD

UHVW

IODVK

,WHUDWRU 'HFN2I&DUGV

KDV1H[W

6KRSSLQJ&DUW

KDV1H[W QH[W

DGG

UHPRYH

UHPRYH

DGG&DUG

FKHFN2XW

UHPRYH&DUG

VDYH)RU/DWHU

QH[W UHPRYH

VKXIIOH

+DUGKDWDUHDZDWFKRXW IRUIDOOLQJDVVXPSWLRQV

)

YiX`e gfn\i

'HWHUPLQHLIWKHVHFODVVHVKDYHORZRUKLJKFRKHVLRQ 3OD\HU$FWLRQV

*DPH ORJLQ VLJQXS PRYH ILUH

*DPH6HVVLRQ ORJLQ

PRYH

3OD\HU

ILUH

JHW+LJK6FRUH

UHVW

JHW1DPH

VLJQXS

UHVW JHW+LJK6FRUH JHW1DPH



&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 27

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

*RRGWKLQJ\RX·UHOHDUQLQJ DERXWWKH,WHUDWRUSDWWHUQ EHFDXVH,MXVWKHDUGWKDW2EMHFWYLOOH 0HUJHUVDQG$FTXLVLWLRQVKDVGRQH DQRWKHUGHDOZH·UHPHUJLQJZLWK 2EMHFWYLOOH&DIpDQGDGRSWLQJWKHLU GLQQHUPHQX

:RZDQGZHWKRXJKWWKLQJV ZHUHDOUHDG\FRPSOLFDWHG 1RZZKDWDUHZHJRLQJWRGR" &RPHRQ WKLQNSRVLWLYHO\,·P VXUHZHFDQÀQGDZD\WR ZRUNWKHPLQWRWKH ,WHUDWRU3DWWHUQ

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 28

DQHZPHQX


0HQX LPSOHPHQWRXUQHZ &DIH0HQXGRHVQ·W LVHDVLO\IL[HG LQD+DVKWDEOH LQWHUIDFHEXWWKLV 7KH&DIpLVVWRULQJWKHLUPHQXLWHPVHHVKRUWO\ SXEOLFFODVV&DIH0HQXLPSOHPHQWV0HQX^ ^ H·OOV ": DWRU ,WHU SRUW WVXS 'RHVWKD +DVKWDEOHPHQX,WHPV QHZ+DVKWDEOH   PVDUH /LNHWKHRWKHU0HQXVWKHPHQXLWH SXEOLF&DIH0HQX ^ LQLWLDOL]HGLQWKHFRQVWUXFWRU DGG,WHP ³9HJJLH%XUJHUDQG$LU)ULHV´ ³9HJJLHEXUJHURQDZKROHZKHDWEXQOHWWXFHWRPDWRDQGIULHV´ WUXH  DGG,WHP ³6RXSRIWKHGD\´ ³$FXSRIWKHVRXSRIWKHGD\ZLWKDVLGHVDODG´ IDOVH  DGG,WHP ³%XUULWR´ ³$ODUJHEXUULWRZLWKZKROHSLQWREHDQVVDOVDJXDFDPROH´ WUXH  ` HP  +HUH·VZKHUHZHFUHDWHDQHZ0HQX,WOH KWDE SXEOLFYRLGDGG,WHP 6WULQJQDPH6WULQJGHVFULSWLRQ VKDV X,WHP PHQ WKH LWWR DQGDGG ERROHDQYHJHWDULDQGRXEOHSULFH  ^ 0HQX,WHPPHQX,WHP QHZ0HQX,WHP QDPHGHVFULSWLRQYHJHWDULDQSULFH  PHQX,WHPVSXW PHQX,WHPJHW1DPH PHQX,WHP  ` WKHNH\LV WKHYDOXHLVWKHPHQX,WHPREMHFW  WKHLWHPQ DPH SXEOLF+DVKWDEOHJHW,WHPV ^ UHWXUQPHQX,WHPV ` :H·UHQRWJRLQJWRQHHGWKLVDQ\PRUH ` 

6KDUSHQ \RXU SHQFLO %HIRUHORRNLQJDWWKHQH[WSDJHTXLFNO\MRWGRZQWKHWKUHHWKLQJV ZHKDYHWRGRWRWKLVFRGHWR¿WLWLQWRRXUIUDPHZRUN

   

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 29

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

:M_WZSQVO\PM+INu5MV]KWLM 1V\MOZI\QVO\PM+INM5MV]QV\WW]ZNZIUM_WZSQ[MI[a?Pa'*MKI][M 0I[P\IJTMQ[WVMWN \PW[M2I^IKWTTMK\QWV[\PI\[]XXWZ\[1\MZI\WZ*]\Q\¼[VW\ Y]Q\M\PM[IUMI[)ZZIa4Q[\

&DIH0HQXLPSOHPHQWVWKH0HQX LQWHUIDFHVRWKH:DLWUHVVFDQXVH LWMXVWOLNHWKHRWKHUWZR0HQXV

SXEOLFFODVV&DIH0HQXLPSOHPHQWV0HQX^ +DVKWDEOHPHQX,WHPV QHZ+DVKWDEOH   :H·UHXVLQJ+DVKWDEOHEHFDXVHLW·VD SXEOLF&DIH0HQX ^ FRPPRQGDWDVWUXFWXUHIRUVWRULQJYDOXHV FRQVWUXFWRUFRGHKHUH GDOVRXVHWKHQHZHU+DVK0DS \RXFRXO `  SXEOLFYRLGDGG,WHP 6WULQJQDPH6WULQJGHVFULSWLRQ ERROHDQYHJHWDULDQGRXEOHSULFH  ^ 0HQX,WHPPHQX,WHP QHZ0HQX,WHP QDPHGHVFULSWLRQYHJHWDULDQSULFH  PHQX,WHPVSXW PHQX,WHPJHW1DPH PHQX,WHP  `  ,WHPV VRZHGRQ·W -XVWOLNHEHIRUHZHFDQJHWULGRIJHWPVWRWKH:DLWUHVV SXEOLF+DVKWDEOHJHW,WHPV ^ QX,WH IPH LRQR QWDW OHPH HLPS VHWK H[SR UHWXUQPHQX,WHPV `  $QGKHUH·VZKHUHZHLPSOHPHQWWKHFUHDWH,WHUDWRU  SXEOLF,WHUDWRUFUHDWH,WHUDWRU ^ UHWXUQPHQX,WHPVYDOXHV LWHUDWRU  PHWKRG1RWLFHWKDWZH·UHQRWJHWWLQJDQ,WHUDWRU ` IRUWKHZKROH+DVKWDEOHMXVWIRUWKHYDOXHV `

&RGH8S&ORVH

+DVKWDEOHLVDOLWWOHPRUHFRPSOH[WKDQWKH$UUD\/LVWEHFDXVHLW VXSSRUWVERWKNH\VDQGYDOXHVEXWZHFDQVWLOOJHWDQ,WHUDWRU IRUWKHYDOXHV ZKLFKDUHWKH0HQX,WHPV 

SXEOLF,WHUDWRUFUHDWH,WHUDWRU ^ UHWXUQPHQX,WHPVYDOXHV LWHUDWRU  `

)LUVWZHJHWWKHYDOXHVRIWKH+DVKWDEOH ZKLFKLVMXVWDFROOHFWLRQRIDOOWKH REMHFWVLQWKHKDVKWDEOH

/XFNLO\WKDWFROOHFWLRQVXSSRUWVW KH LWHUDWRU PHWKRGZKLFKUHWXUQVD REMHFWRIW\SHMDYDXWLO,WHUDWRU

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 30

WHVWGULYHWKHQHZPHQX

)LLQVO\PM+INu5MV]\W\PM?IQ\ZM[[
HVVLQ

7KH&DIpPHQXLVSDVVHGLQWRWKH:DLWU SXEOLFFODVV:DLWUHVV^ WKHFRQVWUXFWRUZLWKWKHRWKHUPHQXVDQGZH 0HQXSDQFDNH+RXVH0HQX 0HQXGLQHU0HQX VWDVKLWLQDQLQVWDQFHYDULDEOH 0HQXFDIH0HQX  SXEOLF:DLWUHVV 0HQXSDQFDNH+RXVH0HQX0HQXGLQHU0HQX0HQXFDIH0HQX ^ WKLVSDQFDNH+RXVH0HQX SDQFDNH+RXVH0HQX WKLVGLQHU0HQX GLQHU0HQX WKLVFDIH0HQX FDIH0HQX `  SXEOLFYRLGSULQW0HQX ^ ,WHUDWRUSDQFDNH,WHUDWRU SDQFDNH+RXVH0HQXFUHDWH,WHUDWRU  ,WHUDWRUGLQHU,WHUDWRU GLQHU0HQXFUHDWH,WHUDWRU  ,WHUDWRUFDIH,WHUDWRU FDIH0HQXFUHDWH,WHUDWRU  :H·UHXVLQJWKH&DIp·V 6\VWHPRXWSULQWOQ ³0(18?Q?Q%5($.)$67´  PHQXIRURXUGLQQHUPHQX SULQW0HQX SDQFDNH,WHUDWRU  $OOZHKDYHWRGRWRSULQW 6\VWHPRXWSULQWOQ ³?Q/81&+´  LWLVFUHDWHWKHLWHUDWRU SULQW0HQX GLQHU,WHUDWRU  6\VWHPRXWSULQWOQ ³?Q',11(5´  DQGSDVVLWWRSULQW0HQX  SULQW0HQX FDIH,WHUDWRU  7KDW·VLW `  SULYDWHYRLGSULQW0HQX ,WHUDWRULWHUDWRU ^ ZKLOH LWHUDWRUKDV1H[W ^ 1RWKLQJFKDQJHVKHUH 0HQX,WHPPHQX,WHP  0HQX,WHP LWHUDWRUQH[W  6\VWHPRXWSULQW PHQX,WHPJHW1DPH ³³  6\VWHPRXWSULQW PHQX,WHPJHW3ULFH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW'HVFULSWLRQ  ` ` `



&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 31

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

*ZMISNI[\T]VKP)6,LQVVMZ 4M\¼[]XLI\MW]Z\M[\LZQ^M\WUISM[]ZM\PQ[ITT_WZS[

SXEOLFFODVV0HQX7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ ^ &UHDWHD&DIH0HQX 3DQFDNH+RXVH0HQXSDQFDNH+RXVH0HQX QHZ3DQFDNH+RXVH0HQX  'LQHU0HQXGLQHU0HQX QHZ'LQHU0HQX  &DIH0HQXFDIH0HQX QHZ&DIH0HQX  DQGSDVVLWWRWKHZDLWUHVV  :DLWUHVVZDLWUHVV QHZ:DLWUHVV SDQFDNH+RXVH0HQXGLQHU0HQXFDIH0HQX   ZDLWUHVVSULQW0HQX  1RZZKHQZHSULQWZHVKRXOGVHHDOOWKUHHPHQXV `

0MZM¼[\PM\M[\Z]V#KPMKSW]\\PMVM_LQVVMZUMV]NZWU\PM+INu )LOH(GLW:LQGRZ+HOS.DWK\ %HUW/LNH3DQFDNHV

MDYD'LQHU0HQX7HVW'ULYH

)LUVWZHLWHUDWH

0(18 WKURXJKWKHSDQFDNH  PHQX %5($.)$67 . %¶V3DQFDNH%UHDNIDVW3DQFDNHVZLWKVFUDPEOHGHJJVDQGWRDVW 5HJXODU3DQFDNH%UHDNIDVW3DQFDNHVZLWKIULHGHJJVVDXVDJH %OXHEHUU\3DQFDNHV3DQFDNHVPDGHZLWKIUHVKEOXHEHUULHV $QGWKHQ :DIÀHV:DIÀHVZLWK\RXUFKRLFHRIEOXHEHUULHVRUVWUDZEHUULHV

WKHGLQHU

PHQX /81&+ 9HJHWDULDQ%/7 )DNLQ¶ %DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW %/7%DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW 6RXSRIWKHGD\6RXSRIWKHGD\ZLWKDVLGHRISRWDWRVDODG +RWGRJ$KRWGRJZLWKVDXUNUDXWUHOLVKRQLRQVWRSSHGZLWKFKHHVH 6WHDPHG9HJJLHVDQG%URZQ5LFH6WHDPHGYHJHWDEOHVRYHUEURZQULFH 3DVWD6SDJKHWWLZLWK0DULQDUD6DXFHDQGDVOLFHRIVRXUGRXJKEUHDG ',11(5 6RXSRIWKHGD\$FXSRIWKHVRXSRIWKHGD\ZLWKDVLGHVDODG %XUULWR$ODUJHEXUULWRZLWKZKROHSLQWREHDQVVDOVDJXDFDPROH 9HJJLH%XUJHUDQG$LU)ULHV9HJJLHEXUJHURQDZKROHZKHDWEXQ OHWWXFHWRPDWRDQGIULHV



$QGILQDOO\WKH QHZFDIpPHQX DOOZLWKWKH VDPHLWHUDWLRQ FRGH

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 32

ZKDWGLGZHGR"

?PI\LQL_MLW'

)ZZIa4Q[\

:HZDQWHGWRJLYHWKH :DLWUHVVDQHDV\ZD\WR LWHUDWHRYHUPHQXLWHPV

 0H QX,WHP

DGWZR 2XUPHQXLWHPVK QWDWLRQV GLIIHUHQWLPSOHPH  DQGWZRGLIIHUHQWHUDWLQJ LQWHUIDFHVIRULW

 0 HQX,WHP



 0H QX,WHP





 0 HQ

X,WHP



)ZZIa 

DQGZHGLGQ·WZDQWKHUWR NQRZDERXWKRZWKHPHQX LWHPVDUHLPSOHPHQWHG

 0 HQX,WHP

  0H QX,WHP

  0H QX,WHP

  0 HQ

X,WHP

?MLMKW]XTML\PM?IQ\ZM[[ 6RZHJDYHWKH:DLWUHVVDQ ,WHUDWRUIRUHDFKNLQGRI JURXSRIREMHFWVVKHQHHGHG RQHIRU WRLWHUDWHRYHU $UUD\/LVW

$UUD\/LVWKDVD EXLOWLQLWHUDWRU )ZZIa4Q[\

 0H QX,WHP

 0 HQX,WHP



 0H QX,WHP





 0 HQ

X,WHP



NEXT 



, WHUDWRU

DQGRQHIRU $UUD\

NEXT

$UUD\GRHVQ·W KDYHDEXLOWLQ ,WHUDWRUVRZH EXLOWRXURZQ

)ZZIa 

 0 HQX,WHP







 0H QX,WHP

, WHUDWRU

1RZVKHGRHVQ·WKDYHWRZRUU\DERXWZKLFK LPSOHPHQWDWLRQZHXVHGVKHDOZD\VXVHVWKHVDPH LQWHUIDFH,WHUDWRUWRLWHUDWHRYHUPHQXLWHPV 6KH·VEHHQGHFRXSOHGIURPWKHLPSOHPHQWDWLRQ 

  0H QX,WHP

  0 HQ

X,WHP

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 33

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

IVL_MUILM\PM?IQ\ZM[[UWZMM`\MV[QJTM :HHDVLO\DGGHG DQRWKHULPSOHPHQWDWLRQ RIPHQXLWHPVDQG VLQFHZHSURYLGHGDQ ,WHUDWRUWKH:DLWUHVV 0I[P\IJTM NQHZZKDWWRGR

%\JLYLQJKHUDQ,WHUDWRU ZHKDYHGHFRXSOHGKHUIURP WKHLPSOHPHQWDWLRQRIWKH PHQXLWHPVVRZHFDQHDVLO\ DGGQHZ0HQXVLIZHZDQW NEXT

 0 HQX,WHP

  NH\

 0H QX,WHP

  NH\

 0H QX,WHP

  NH\

 0 HQ





  NH\

U

, :KLFKLVEHWWHUIR WHUDWR EHFDXVHQRZVKHF UKHU VDPHFRGHWRLWHUDDQXVHWKH WHRYHU DQ\JURXSRIREMHF WV LW·VEHWWHUIRUXV $QG WKHLPSOHPHQWDWLR EHFDXVH DUHQ·WH[SRVHG QGHWDLOV

X,WHP

0DNLQJDQ,WHUDWRU IRUWKH+DVKWDEOH YDOXHVZDVHDV\ZKHQ \RXFDOO YDOXHVLWHUDWRU  \RXJHWDQ ,WHUDWRU

*]\\PMZM¼[UWZM -DYDJLYHV\RXDORWRI ´FROOHFWLRQµFODVVHVWKDWDOORZ \RXWRVWRUHDQGUHWULHYH JURXSVRIREMHFWV)RUH[DPSOH 9HFWRUDQG/LQNHG/LVW

4QVSML4Q[\ >MK\WZ

0RVWKDYHGLIIHUHQW LQWHUIDFHV

%XWDOPRVWDOORI WKHPVXSSRUWD ZD\WRREWDLQDQ ,WHUDWRU

 0H QX,WHP

 0H QX,WHP



 0 HQX,WHP



 0H QX,WHP



 0 HQ

 0 HQX,WHP

 0H QX,WHP

 0 HQ

X,WHP

X,WHP



 I V LUW ZM



$QGLIWKH\GRQ·WVXSSRUW ,WHUDWRUWKDW·VRNEHFDXVHQRZ \RXNQRZKRZWREXLOG\RXURZQ \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 34

LWHUDWRUVDQGFROOHFWLRQV

1\MZI\WZ[IVL+WTTMK\QWV[ ?M¼^MJMMV][QVOIKW]XTMWN KTI[[M[\PI\IZMXIZ\WN \PM2I^I+WTTMK\QWV[.ZIUM_WZS MK\WZ4QVSML4Q[\;\IKSIVL8ZQWZQ\a9]M]M-IKP WN \PM[MKTI[[M[QUXTMUMV\[\PMRI^I]\QT+WTTMK\QWVQV\MZNIKM_PQKPKWV\IQV[IJ]VKPWN  ][MN]TUM\PWL[NWZUIVQX]TI\QVOOZW]X[WN WJRMK\[ 4M\¼[\ISMIY]QKSTWWSI\\PMQV\MZNIKM"

LQWHUIDFH!! &ROOHFWLRQ DGG DGG$OO FOHDU FRQWDLQV

OONLQGVRIJRRG $V\RXFDQVHHWKHUH·VDGDQGUHPRYH DG FDQ RX < UH KH VWXII WLRQZLWKRXW HOHPHQWVIURP\RXUFROOHFSOHPHQWHG LP W·V ZL KR HYHQNQRZLQJ

FRQWDLQV$OO HTXDOV KDVK&RGH

+HUH·VRXUROGIULHQGWKHLWHUDWRU  PHWKRG:LWKWKLVPHWKRG\RXFDQJHW DQ,WHUDWRUIRUDQ\FODVVWKDWLPSOHPHQWV WKH&ROOHFWLRQLQWHUIDFH

LV(PSW\ LWHUDWRU UHPRYH UHPRYH$OO UHWDLQ$OO VL]H WR$UUD\

2WKHUKDQG\PHWKRGVLQFOXGHV WRJHWWKHQXPEHURIHOHPHQWVL]H  DQGWR$UUD\ WRWXUQ\RXU  FROOHFWLRQLQWRDQDUUD\

+DVKWDEOHLVRQHRIDIHZ FODVVHVWKDWLQGLUHFWO\ VXSSRUWV,WHUDWRU$V\RXVDZ ZKHQZHLPSOHPHQWHGWKH &DIH0HQX\RXFRXOGJHWDQ ,WHUDWRUIURPLWEXWRQO\E\ ¿UVWUHWULHYLQJLWV&ROOHFWLRQ FDOOHGYDOXHV,I\RXWKLQN DERXWLWWKLVPDNHVVHQVH WKH+DVKWDEOHKROGVWZR VHWVRIREMHFWVNH\VDQG YDOXHV,IZHZDQWWRLWHUDWH RYHULWVYDOXHVZH¿UVWQHHG WRUHWULHYHWKHPIURPWKH +DVKWDEOHDQGWKHQREWDLQ WKHLWHUDWRU

7KHQLFHWKLQJDERXW&ROOHFWLRQVDQG ,WHUDWRULVWKDWHDFK&ROOHFWLRQREMHFW NQRZVKRZWRFUHDWHLWVRZQ,WHUDWRU &DOOLQJLWHUDWRU RQDQ$UUD\/LVWUHWXUQVD FRQFUHWH,WHUDWRUPDGHIRU$UUD\/LVWVEXW \RXQHYHUQHHGWRVHHRUZRUU\DERXWWKH FRQFUHWHFODVVLWXVHV\RXMXVWXVHWKH ,WHUDWRULQWHUIDFH



&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 35

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

1\MZI\WZ[IVL+WTTMK\QWV[ QV2I^I

&KHFNWKLVRXWLQ -DYDWKH\·YHDGGHG VXSSRUWIRULWHUDWLQJ RYHU&ROOHFWLRQVVRWKDW \RXGRQ·WHYHQKDYHWR DVNIRUDQLWHUDWRU

2I^IQVKT]LM[IVM_NWZUWN \PMNWZ[\I\MUMV\KITTML NWZQV\PI\TM\[aW]Q\MZI\MW^MZIKWTTMK\QWVWZIVIZZIa _Q\PW]\KZMI\QVOIVQ\MZI\WZM`XTQKQ\Ta
,WHUDWHVRYHU HDFKREMHFWLQ WKHFROOHFWLRQ

REMLVDVVLJQHGWRWKHQH[W HOHPHQWLQWKHFROOHFWLRQ HDFKWLPHWKURXJKWKHORRS

IRU 2EMHFWREMFROOHFWLRQ ^     ` 0MZM¼[PW_aW]Q\MZI\MW^MZIV)ZZIa4Q[\][QVONWZQV"

/RDGXSDQ $UUD\/LVWRI 0HQX,WHPV

$UUD\/LVWLWHPV QHZ$UUD\/LVW  LWHPVDGG QHZ0HQX,WHP ³3DQFDNHV´³GHOLFLRXVSDQFDNHV´WUXH  LWHPVDGG QHZ0HQX,WHP ³:DIÀHV´³\XPP\ZDIÀHV´WUXH  LWHPVDGG QHZ0HQX,WHP ³7RDVW´³SHUIHFWWRDVW´WUXH  IRU 0HQX,WHPLWHPLWHPV ^ 6\VWHPRXWSULQWOQ ³%UHDNIDVWLWHP³LWHP  `

,WHUDWHRYHUWKHOLVWDQGSULQW HDFKLWHP


Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 36

FRGHPDJQHWV

&RGH0DJQHWV 4HE#HEFSHAVEDECIDEDTHATTHEYWANTTOBEABLETOALTERNATETHEIRLUNCHMENUITEMSINOTHERWORDS THEYWILLOFFERSOMEITEMSON-ONDAY 7EDNESDAY &RIDAYAND3UNDAY ANDOTHERITEMSON4UESDAY 4HURSDAY AND3ATURDAY3OMEONEALREADYWROTETHECODEFORANEWh!LTERNATINGv$INER-ENU)TERATOR SOTHATITALTERNATESTHEMENUITEMS BUTTHEYSCRAMBLEDITUPANDPUTITONTHEFRIDGEINTHE$INERASA JOKE#ANYOUPUTITBACKTOGETHER3OMEOFTHECURLYBRACESFELLONTHEmOORANDTHEYWERETOOSMALL TOPICKUP SOFEELFREETOADDASMANYOFTHOSEASYOUNEED

0HQX,WHPPHQX,WHP LWHPV>SRVLWLRQ@ SRVLWLRQ SRVLWLRQ UHWXUQPHQX,WHP LPSRUWMDYDXWLO,WHUDWRU LPSRUWMDYDXWLO&DOHQGDU

`

SXEOLF2EMHF WQH[W ^

0HQX,WHP>@LWHPV SXEOLF$OWHUQDWLQJ'LQHU0HQX,WHUDWRU WKLVLWHPV LWHPV &DOHQGDUULJKW1RZ &DOHQGDUJHW,Q VWDQFH  SRVLWLRQ ULJKW1RZ'$
SXEOLFYRLGUHPRYH ^

LPSOHPHQ WV,WHUD WRU 0HQX,WHP>@LWHPV LQWSRVLWLRQ

`

SXEOLFFODVV$OWHUQDWLQJ'LQHU0HQX,WHUDWRU

SXEOLFERROHDQKDV1H[W ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ ³$OWHUQDWLQJ'LQHU0HQX,WHUDWRUGRHVQRWVXSSRUW UHPRYH ´ 

LI SRVLWLRQ! LWHPVOHQJWK__LWHPV>SRVLWLRQ@ UHWXUQIDOVH `HOVH^ UHWXUQWUXH `



QXOO ^

`

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 37

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

1[\PM?IQ\ZM[[ZMILaNWZXZQUM\QUM'
7KUHHFUHDWH,WHUDWRU FDOOV SXEOLFYRLGSULQW0HQX ^ ,WHUDWRUSDQFDNH,WHUDWRU SDQFDNH+RXVH0HQXFUHDWH,WHUDWRU  ,WHUDWRUGLQHU,WHUDWRU GLQHU0HQXFUHDWH,WHUDWRU  ,WHUDWRUFDIH,WHUDWRU FDIH0HQXFUHDWH,WHUDWRU  6\VWHPRXWSULQWOQ ³0(18?Q?Q%5($.)$67´  SULQW0HQX SDQFDNH,WHUDWRU  6\VWHPRXWSULQWOQ ³?Q/81&+´  SULQW0HQX GLQHU,WHUDWRU 

7KUHHFDOOVWRSULQW0HQX

6\VWHPRXWSULQWOQ ³?Q',11(5´  SULQW0HQX FDIH,WHUDWRU  `

(YHU\WLPHZHDGGRUUHPRYHDPHQXZH·UHJRLQJ WRKDYHWRRSHQWKLVFRGHXSIRUFKDQJHV 1\¼[VW\\PM?IQ\ZM[[¼NI]T\?MPI^MLWVMIOZMI\RWJWN LMKW]XTQVO\PMUMV]QUXTMUMV\I\QWVIVL M`\ZIK\QVO\PMQ\MZI\QWVQV\WIVQ\MZI\WZ*]\_M[\QTTIZMPIVLTQVO\PMUMV][_Q\P[MXIZI\MQVLMXMVLMV\ WJRMK\[·_MVMMLI_Ia\WUIVIOM\PMU\WOM\PMZ

YiX`e gfn\i 7KH:DLWUHVVVWLOOQHHGVWRPDNHWKUHHFDOOVWRSULQW0HQX RQHIRUHDFKPHQX&DQ\RXWKLQNRID ZD\WRFRPELQHWKHPHQXVVRWKDWRQO\RQHFDOOQHHGVWREHPDGH"2USHUKDSVVRWKDWRQH,WHUDWRULV SDVVHGWRWKH:DLWUHVVWRLWHUDWHRYHUDOOWKHPHQXV"

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 38

DQHZGHVLJQ"

7KLVLVQ·WVREDGDOOZH QHHGWRGRLVSDFNDJH WKHPHQXVXSLQWRDQ$UUD\/LVW DQGWKHQJHWLWVLWHUDWRUWRLWHUDWH WKURXJKHDFK0HQX7KHFRGHLQWKH :DLWUHVVLVJRLQJWREHVLPSOH DQGLWZLOOKDQGOHDQ\QXPEHURI PHQXV

;W]VL[TQSM\PMKPMN Q[WV\W[WUM\PQVO4M\¼[OQ^MQ\I\Za" SXEOLFFODVV:DLWUHVV^ 1RZZHMXVWWDNHDQ $UUD\/LVWPHQXV $UUD\/LVWRIPHQXV  SXEOLF:DLWUHVV $UUD\/LVWPHQXV ^ WKLVPHQXV PHQXV `  SXEOLFYRLGSULQW0HQX ^ ,WHUDWRUPHQX,WHUDWRU PHQXVLWHUDWRU  ZKLOH PHQX,WHUDWRUKDV1H[W ^ 0HQXPHQX  0HQX PHQX,WHUDWRUQH[W  SULQW0HQX PHQXFUHDWH,WHUDWRU  ` `  YRLGSULQW0HQX ,WHUDWRULWHUDWRU ^ ZKLOH LWHUDWRUKDV1H[W ^ 0HQX,WHPPHQX,WHP  0HQX,WHP LWHUDWRUQH[W  6\VWHPRXWSULQW PHQX,WHPJHW1DPH ³³  6\VWHPRXWSULQW PHQX,WHPJHW3ULFH ³³  6\VWHPRXWSULQWOQ PHQX,WHPJHW'HVFULSWLRQ  ` ` ` 

$QGZHLWHUDWH WKURXJKWKH PHQXVSDVVLQJHDFK PHQX·VLWHUDWRU WRWKHRYHUORDGHG SULQW0HQX PHWKRG

1RFRGH FKDQJHVKHUH




&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 39

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

2][\_PMV_M\PW]OP\Q\_I[[INM 1RZWKH\ZDQWWRDGGDGHVVHUWVXEPHQX

,MXVWKHDUGWKH 'LQHULVJRLQJWREH FUHDWLQJDGHVVHUWPHQXWKDW LVJRLQJWREHDQLQVHUWLQWR WKHLUUHJXODUPHQX

7SIaVW__PI\'6W__MPI^M\W[]XXWZ\VW\WVTaU]T\QXTM UMV][J]\UMV][_Q\PQVUMV][ 1\_W]TLJMVQKMQN _MKW]TLR][\UISM\PMLM[[MZ\UMV]IV MTMUMV\WN \PM,QVMZ5MV]KWTTMK\QWVJ]\\PI\_WV¼\_WZSI[ Q\Q[VW_QUXTMUMV\ML

:KDWZHZDQW VRPHWKLQJOLNHWKLV 

3D

H0 H

QX

)TT5MV][ QF DNH XV +R

' LQH U0HQX



 &D IH0HQX



+INu5MV]

8IVKISM5MV]

,QVMZ5MV]  0H QX,WHP



 0 HQX,WHP



 0H QX,WHP

 0 HQ



+HUH·VRXU$UUD\OLVW WKDWKROGVWKHPHQXV RIHDFKUHVWDXUDQW



X,WHP





$UUD\

  NH\

 0 HQX,WHP

  NH\

 0H QX,WHP

  NH\

 0H QX,WHP

  NH\

 0 HQ

 0 HQX,WHP

  0H QX,WHP

$UUD\/LVW

,M[[MZ\5MV] 



+DVKWDEOH

X,WHP

 0H QX,WHP

  0 HQX,WHP

  0H QX,WHP

  0H QX,WHP

  0 HQ

 0 HQ

X,WHP

:HQHHGIRU'LQHU0HQXWRKROGDVXEPHQXEXW ZHFDQ·WDFWXDOO\DVVLJQDPHQXWRD0HQX,WHP DUUD\EHFDXVHWKHW\SHVDUHGLIIHUHQWVRWKLV LVQ·WJRLQJWRZRUN

X,WHP

V N WKL %XW ·WZRU Q ZR

:HFDQ·WDVVLJQDGHVVHUWPHQXWR D0HQX,WHPDUUD\ 7LPHIRUDFKDQJH \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 40

WLPHWRUHIDFWRU

?PI\LW_MVMML'
ƒ ?MVMML[WUMSQVLWN I\ZMM[PIXML[\Z]K\]ZM\PI\ _QTTIKKWUUWLI\MUMV][[]JUMV][IVLUMV] Q\MU[

ƒ ?MVMML\WUISM[]ZM_MUIQV\IQVI_Ia\W \ZI^MZ[M\PMQ\MU[QVMIKPUMV]\PI\Q[I\TMI[\ I[KWV^MVQMV\I[_PI\_MIZMLWQVOVW__Q\P Q\MZI\WZ[

ƒ ?MUIaVMML\WJMIJTM\ZI^MZ[M\PMQ\MU[QVI UWZMÆM`QJTMUIVVMZ.WZQV[\IVKM_MUQOP\ VMML\WQ\MZI\MW^MZWVTa\PM,QVMZ¼[LM[[MZ\UMV] WZ_MUQOP\VMML\WQ\MZI\MW^MZ\PM,QVMZ¼[MV\QZM UMV]QVKT]LQVO\PMLM[[MZ\[]JUMV]



7KHUH FRPHVDWLPH ZKHQZHPXVWUHIDFWRU RXUFRGHLQRUGHUIRULWWRJURZ 7RQRWGRVRZRXOGOHDYHXVZLWK ULJLGLQÁH[LEOHFRGHWKDWKDV QRKRSHRIHYHUVSURXWLQJ QHZOLIH

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 41

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

H 0 H QX

X HU0HQ

 

DQGVXEPHQXV

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

'

QX,WHP

 0H

QX,WHP

 0H

H VV H HUW0

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

 0H

'

QX,WHP

QX,WHP

 0H

 0H

QX

H VV H HUW0

QX,WHP

 0H

QX,WHP

 0H

&D

'

IH0HQ

QX,WHP

X

H 0 H QX QX,WHP

 0H





QX,WHP

 0H

X



QX,WHP

 0H

QX,WHP

 0H

QX,WHP

:HDOVRQHHGWR WUDYHUVHPRUHIOEHDEOHWR LQVWDQFHRYHURQ H[LEO\IRU HPHQX 

Q 3D

 0H

HU0HQ

 0H

QX,WHP

DQGPHQXLWHPV

$O O0HQXV

 ' LQ

FD NH+RXV

IH0HQ

QX,WHP

 :HVWLOOQHHGWREHDEOH KH OOW HD WK VH YHU UD W WR LWHPVLQWKHWUHH 

&D

 0H

QX,WHP

 0H

QX

 0H

QX,WHP



 0H

 ' LQ

QX

Q 3D QX,WHP

$O O0HQXV



:HQHHGWR DFFRPRGDWH0HQXV

FD NH+RXV

 0H



X

HSUHVHQW %HFDXVHZHQHHGWRU XVDQG HQ EP VX HG PHQXVQHVW WXUDOO\ILW PHQXLWHPVZHFDQQDWUXFWXUH HV OLN HH WKHPLQDWU

H VV H HUW0

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

QX,WHP

YiX`e gfn\i +RZZRXOG\RXKDQGOHWKLVQHZZULQNOHWRRXUGHVLJQUHTXLUHPHQWV"7KLQNDERXWLWEHIRUHWXUQLQJWKHSDJH

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 42

FRPSRVLWHSDWWHUQGH¿QHG


+HUH·VDWUHHVWUXFW

XUH

(OHPHQWVZLWK FKLOGHOHPHQWV DUHFDOOHGQRGHV

?M¼ZMVW\OWQVO\WJMI\IZW]VL\PMJ][PWV\PQ[XI\\MZV _M¼ZMOWQVO\WOWIPMILIVLZWTTW]\\PMWNÅKQITLMÅVQ\QWV VW_"



   1RGH



 

 


 

/ I HD

  /

   /HDI

HDI

(OHPHQWVZLWKRXWFKLOGUHQ DUHFDOOHGOHDYHV

4M\¼[\PQVSIJW]\\PQ[QV\MZU[WN W]ZUMV]["\PQ[XI\\MZV OQ^M[][I_Ia\WKZMI\MI\ZMM[\Z]K\]ZM\PI\KIVPIVLTM IVM[\MLOZW]XWN UMV][IVLUMV]Q\MU[QV\PM[IUM [\Z]K\]ZM*aX]\\QVOUMV][IVLQ\MU[QV\PM[IUM [\Z]K\]ZM_MKZMI\MIXIZ\_PWTMPQMZIZKPa#\PI\Q[I\ZMMWN  WJRMK\[\PI\Q[UILMWN XIZ\[UMV][IVLUMV]Q\MU[J]\ \PI\KIVJM\ZMI\MLI[I_PWTMTQSMWVMJQO†JMZUMV]

:HFDQUHSUHVHQW RXU0HQXDQG 0HQX,WHPVLQD WUHHVWUXFWXUH

 

HP



 

   0HQX

0H X,W Q

0

P



 

7VKM_MPI^MW]Z†JMZUMV]_MKIV][M\PQ[XI\\MZV \W\ZMI\¹QVLQ^QL]ITWJRMK\[IVLKWUXW[Q\QWV[]VQNWZUTaº ?PI\LWM[\PI\UMIV'1\UMIV[QN _MPI^MI\ZMM[\Z]K\]ZM WN UMV][[]JUMV][IVLXMZPIX[[]J[]JUMV][ITWVO_Q\P UMV]Q\MU[\PMVIVaUMV]Q[I¹KWUXW[Q\QWVºJMKI][M Q\KIVKWV\IQVJW\PW\PMZUMV][IVLUMV]Q\MU[
HQX,WH

 0 HQX,WHP

0HQXVDUHQRGHVDQG 0HQX,WHPVDUHOHDYHV



&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 43

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

O\ :HFDQFUHDWHDUELWUDUL FRPSOH[WUHHV

 0H

QX,WHP

QX,WHP

 0H

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

0HQX,WHPV

 0H

'

QX,WHP

 0H

QX,WHP

 

 0H

H VV H HUW0

 0H

QX,WHP

QX,WHP

 0H

&D

IH0HQ

X

6XEPHQX

X



 0H

HU0HQ

QX

 ' LQ

FD NH+RXV

0HQXV

$O O0HQXV



Q 3D

H 0 H QX

 

 0H

QX,WHP

QX,WHP

 0H

7KH&RPSRVLWH3DWWHUQ DOORZVXVWREXLOGVWUXFWXUHV RIREMHFWVLQWKHIRUPRI WUHHVWKDWFRQWDLQERWK FRPSRVLWLRQVRIREMHFWVDQG LQGLYLGXDOREMHFWVDVQRGHV

QX,WHP

QX,WHP

OH

$QGWUHDWWKHPDVDZKR

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

 0H

QX,WHP

0HQX,WHPV

 0H

'

QX,WHP

 0H

QX,WHP

 

 0H

H VV H HUW0

 0H

QX,WHP

QX,WHP

 0H

&D

8VLQJDFRPSRVLWHVWUXFWXUH ZHFDQDSSO\WKHVDPH RSHUDWLRQVRYHUERWK FRPSRVLWHVDQGLQGLYLGXDO REMHFWV,QRWKHUZRUGVLQ PRVWFDVHVZHFDQLJQRUH WKHGLIIHUHQFHVEHWZHHQ FRPSRVLWLRQVRIREMHFWVDQG LQGLYLGXDOREMHFWV

IH0HQ

X

6XEPHQX

X



 0H

HU0HQ

QX

 ' LQ

FD NH+RXV

0HQXV

$O O0HQXV



Q 3D

H 0 H QX



 0H

QX,WHP

QX,WHP

 0H

QX,WHP

QX,WHP

RUDVSDUWV

QEH 2SHUDWLRQVFDKHZKROH W WR G LH DSSO

SULQW

QX,WHP

 0H

QX,WHP

0HQX,WHPV

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

 0H

'

QX,WHP

QX,WHP

 0H

 

 0H

H VV H HUW0

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

&D

IH0HQ

QX,WHP

X

6XEPHQX



 0H

X HU0HQ

QX

 ' LQ

FD NH+RXV

0HQXV

$O O0HQXV



Q 3D

H 0 H QX

 

 0H

QX,WHP

 0H

SULQW

QX,WHP

DUWV

2UWKHS

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 44

FRPSRVLWHSDWWHUQFODVVGLDJUDP

7KH&OLHQWXVHVWKHHWR &RPSRQHQWLQWHUIDFFWVLQWKH PDQLSXODWHWKHREMH FRPSRVLWLRQ

LQHVDQ 7KH&RPSRQHQWGHIEMHFWVLQ OR DO RU HI DF LQWHUI KWKH WKHFRPSRVLWLRQERWHDIQRGHV HO WK G FRPSRVLWHDQ

7KH&RPSRQHQWPD\LPSOH GHIDXOWEHKDYLRUIRUDGG PHQWD JHW&KLOG DQGLWVRSHUDW UHPRYH  LRQV

&RPSRQHQW

&OLHQW

RSHUDWLRQ DGG &RPSRQHQW UHPRYH &RPSRQHQW

1RWHWKDWWKH/HDIDOVR LQKHULWVPHWKRGVOLNHDGG  UHPRYH DQGJHW&KLOG Z  GRQ·WQHFHVVDULO\PDNHDOR KLFK VHQVHIRUDOHDIQRGH: WRI JRLQJWRFRPHEDFNWRWKH·UH LVLVVXH

JHW&KLOG LQW

/HDI

&RPSRVLWH DGG &RPSRQHQW

RSHUDWLRQ

VLWHDOVR 7KH&RPSR WKH/HDI RSHUDWLRQ LPSOHPHQWV UDWLRQV UHODWHGRSHVRPHRI 1RWHWKDW RWPDNH WKHVHPD\Q RPSRVLWH VHQVHRQD&  7KH&RPSRVLWH·VUROHLVWRGHILQH VRLQWKDWFDVHDQ H E KW  LJ QHQWV P EHKDYLRURIWKHFRPSR H[FHSWLRQ KDYLQJFKLOGUHQDQGWRVWRUHFKLOG JHQHUDWHG FRPSRQHQWV UHPRYH &RPSRQHQW

$/HDIKDVQR FKLOGUHQ

JHW&KLOG LQW

$/HDIGHILQHVWKHEHKDYLRUIRUWKH HOHPHQWVLQWKHFRPSRVLWLRQ,WGRHV WKLVE\LPSOHPHQWLQJWKHRSHUDWLRQV WKH&RPSRVLWHVXSSRUWV

there are no

Q:

&RPSRQHQW&RPSRVLWH7UHHV" ,·PFRQIXVHG

A:

$FRPSRVLWHFRQWDLQVFRPSRQHQWV &RPSRQHQWVFRPHLQWZRIODYRUV FRPSRVLWHVDQGOHDIHOHPHQWV6RXQG UHFXUVLYH",WLV$FRPSRVLWHKROGVDVHW RIFKLOGUHQWKRVHFKLOGUHQPD\EHRWKHU FRPSRVLWHVRUOHDIHOHPHQWV



Dumb Questions :KHQ\RXRUJDQL]HGDWDLQWKLVZD\\RXHQG XSZLWKDWUHHVWUXFWXUH DFWXDOO\DQXSVLGH GRZQWUHHVWUXFWXUH ZLWKDFRPSRVLWHDWWKH URRWDQGEUDQFKHVRIFRPSRVLWHVJURZLQJXS WROHDIQRGHV

Q:

+RZGRHVWKLVUHODWHWRLWHUDWRUV"

A:

5HPHPEHUZH·UHWDNLQJDQHZ DSSURDFK:H·UHJRLQJWRUHLPSOHPHQWWKH PHQXVZLWKDQHZVROXWLRQWKH&RPSRVLWH 3DWWHUQ6RGRQ·WORRNIRUVRPHPDJLFDO WUDQVIRUPDWLRQIURPDQLWHUDWRUWRD FRPSRVLWH7KDWVDLGWKHWZRZRUNYHU\ QLFHO\WRJHWKHU
&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 45

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

,M[QOVQVO5MV][_Q\P+WUXW[Q\M ;WPW_LW_MIXXTa\PM+WUXW[Q\M8I\\MZV\WW]ZUMV]['
0HQX&RPSRQHQWUHSUHVHQWVWKHLQWHUIDFHIRU ERWK0HQX,WHPDQG0HQX:H·YHXVHGDQDEVWUDFW FODVVKHUHEHFDXVHZHZDQWWRSURYLGHGHIDXOW LPSOHPHQWDWLRQVIRUWKHVHPHWKRGV

VHWKH VLVJRLQJWRX 7KH:DLWUHV QWLQWHUIDFHWRDFFHVV 0HQX&RPSRQH QG0HQX,WHPV ERWK0HQXVD

0HQX&RPSRQHQW

:DLWUHVV

JHW1DPH

:HKDYHVRPHRIWKH VDPHPHWKRGV\RX·OO UHPHPEHUIURPRXU SUHYLRXVYHUVLRQVRI 0HQX,WHPDQG0HQX DQGZH·YHDGGHGSULQW  DGG UHPRYH DQG JHW&KLOG :H·OOGHVFULEH WKHVHVRRQZKHQZH LPSOHPHQWRXUQHZ0HQX DQG0HQX,WHPFODVVHV

JHW'HVFULSWLRQ JHW3ULFH LV9HJHWDULDQ SULQW DGG &RPSRQHQW UHPRYH &RPSRQHQW

+HUHDUHWKHPHWKRGVIRU PDQLSXODWLQJWKHFRPSRQHQWV 7KHFRPSRQHQWVDUH 0HQX,WHPDQG0HQX

%RWK0HQX,WHPDQG0HQXV  RYHUULGHSULQW 

JHW&KLOG LQW

0HQX,WHP

0HQX

JHW1DPH

PHQX&RPSRQHQWV

JHW'HVFULSWLRQ

JHW1DPH

JHW3ULFH

JHW'HVFULSWLRQ

LV9HJHWDULDQ

SULQW

SULQW

DGG &RPSRQHQW UHPRYH &RPSRQHQW JHW&KLOG LQW

0HQX,WHPRYHUULGHVWKH PHW VHQVHDQGXVHVWKHGHIDXOW KRGVWKDWPDNH 0HQX&RPSRQHQWIRUWKRVH LPSOHPHQWDWLRQVLQ VHQVH OLNHDGG LWGRHV WKDWGRQ·WPDNH DGGDFRPSRQHQWWRD0 Q·WPDNHVHQVHWR DGGFRPSRQHQWVWRD0HQXHQX,WHPZHFDQRQO\ 

GVWKDWPDNH 0HQXDOVRRYHUULGHVWKHPHWKRHPRYHPHQXLWHPV QGU GD DG VHQVHOLNHDZD\WR QX&RPSRQHQWV RURWKHUPHQXV IURPLWVPH PH DQG W1D HJH HWK OXV ZH·O LRQ GGLW ,QD HWXUQWKHQDPH JHW'HVFULSWLRQ PHWKRGVWRU QX PH WKH RI WLRQ DQGGHVFULS \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 46

LPSOHPHQWLQJFRPSRVLWHPHQXV

1UXTMUMV\QVO\PM5MV]+WUXWVMV\ 7SIa_M¼ZMOWQVO\W[\IZ\_Q\P\PM 5MV]+WUXWVMV\IJ[\ZIK\KTI[[#ZMUMUJMZ\PM ZWTMWN \PMUMV]KWUXWVMV\Q[\WXZW^QLMIV QV\MZNIKMNWZ\PMTMIN VWLM[IVL\PMKWUXW[Q\M VWLM[6W_aW]UQOP\JMI[SQVO¹1[V¼\\PM 5MV]+WUXWVMV\XTIaQVO\_WZWTM['º1\UQOP\ _MTTJMIVL_M¼TTKWUMJIKS\W\PI\XWQV\ 0W_M^MZNWZVW__M¼ZMOWQVO\WXZW^QLMILMNI]T\ QUXTMUMV\I\QWVWN \PMUM\PWL[[W\PI\QN \PM 5MV]1\MU\PMTMINWZ\PM5MV]\PMKWUXW[Q\M LWM[V¼\_IV\\WQUXTMUMV\[WUMWN \PMUM\PWL[ TQSMOM\+PQTLNWZITMIN VWLM\PMaKIVNITTJIKS WV[WUMJI[QKJMPI^QWZ"

OW 0HQX&RPSRQHQWSURYLGHVGHIDXKRG LPSOHPHQWDWLRQVIRUHYHU\PHW SXEOLFDEVWUDFWFODVV0HQX&RPSRQHQW^  SXEOLFYRLGDGG 0HQX&RPSRQHQWPHQX&RPSRQHQW ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  ` SXEOLFYRLGUHPRYH 0HQX&RPSRQHQWPHQX&RPSRQHQW ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  ` SXEOLF0HQX&RPSRQHQWJHW&KLOG LQWL ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  `  SXEOLF6WULQJJHW1DPH ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  ` SXEOLF6WULQJJHW'HVFULSWLRQ ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  ` SXEOLFGRXEOHJHW3ULFH ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  ` SXEOLFERROHDQLV9HJHWDULDQ ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  `  SXEOLFYRLGSULQW ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  ` `



$OOFRPSRQHQWVPXVWLPSOHPHQW WKH0HQX&RPSRQHQWLQWHUIDFH KRZHYHUEHFDXVHOHDYHVDQG QRGHVKDYHGLIIHUHQWUROHVZH FDQ·WDOZD\VGHÀQHDGHIDXOW LPSOHPHQWDWLRQIRUHDFK PHWKRGWKDWPDNHVVHQVH 6RPHWLPHVWKHEHVW\RXFDQGR LVWKURZDUXQWLPHH[FHSWLRQ

%HFDXVHVRPHRIWKHVHPHWKRGVRQO\PDNHVHQVH IRU0HQX,WHPVDQGVRPHRQO\PDNHVHQVHIRU 0HQXVWKHGHIDXOWLPSOHPHQWDWLRQLV 8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ7KDWZD\ LI0HQX,WHPRU0HQXGRHVQ·WVXSSRUWDQ RSHUDWLRQWKH\GRQ·WKDYHWRGRDQ\WKLQJ WKH\FDQMXVWLQKHULWWKH GHIDXOWLPSOHPHQWDWLRQ

:H·YHJURXSHGWRJHWKHUWKH ´FRPSRVLWHµPHWKRGVWKDWLV PHWKRGVWRDGGUHPRYHDQGJHW 0HQX&RPSRQHQWV

RGV +HUHDUHWKH´RSHUDWLRQµPHWK V WHP HQX, KH0 E\W VHG UHX WKHVHD ,WWXUQVRXWZHFDQDOVRXVHDV FRXSOHRIWKHPLQ0HQXWRRD KHQ \RX·OOVHHLQDFRXSOHRISDJHVZ ZHVKRZWKH0HQXFRGH

SULQW LVDQ´RSHUDWLRQµPHWKRG WKDWERWKRXU0HQXVDQG0HQX,WHPV ZLOOLPSOHPHQWEXWZHSURYLGHD GHIDXOWRSHUDWLRQKHUH

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 47

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

1UXTMUMV\QVO\PM5MV]1\MU 7SIaTM\¼[OQ^M\PM5MV]1\MUKTI[[I[PW\:MUMUJMZ \PQ[Q[\PMTMIN KTI[[QV\PM+WUXW[Q\MLQIOZIUIVLQ\ QUXTMUMV\[\PMJMPI^QWZWN \PMMTMUMV\[WN \PMKWUXW[Q\M

,·PJODGZH·UHJRLQJLQ WKLVGLUHFWLRQ,·PWKLQNLQJWKLVLV JRLQJWRJLYHPHWKHÁH[LELOLW\,QHHG WRLPSOHPHQWWKDWFUrSHPHQX,·YH DOZD\VZDQWHG

SXEOLFFODVV0HQX,WHPH[WHQGV0HQX&RPSRQHQW^ 6WULQJQDPH )LUVWZHQHHGWRH[WHQG 6WULQJGHVFULSWLRQ WKH0HQX&RPSRQHQW ERROHDQYHJHWDULDQ LQWHUIDFH GRXEOHSULFH  SXEOLF0HQX,WHP 6WULQJQDPH 7KHFRQVWUXFWRUMXVWWDNHV 6WULQJGHVFULSWLRQ WKHQDPHGHVFULSWLRQHWFDQG ERROHDQYHJHWDULDQ NHHSVDUHIHUHQFHWRWKHPDOO GRXEOHSULFH  7KLVLVSUHWW\PXFKOLNHRXUROG ^ PHQXLWHPLPSOHPHQWDWLRQ WKLVQDPH QDPH WKLVGHVFULSWLRQ GHVFULSWLRQ WKLVYHJHWDULDQ YHJHWDULDQ WKLVSULFH SULFH `  SXEOLF6WULQJJHW1DPH ^ UHWXUQQDPH ` +HUH·VRXUJHWWHUPHWKRGVMXVW  OLNHRXUSUHYLRXVLPSOHPHQWDWLRQ SXEOLF6WULQJJHW'HVFULSWLRQ ^ UHWXUQGHVFULSWLRQ `  SXEOLFGRXEOHJHW3ULFH ^ UHWXUQSULFH `  7KLVLVGLIIHUHQWIURPWKHSUHYLRXVLPSOHPHQWDWLRQ SXEOLFERROHDQLV9HJHWDULDQ ^ +HUHZH·UHRYHUULGLQJWKHSULQW PHWKRGLQWKH UHWXUQYHJHWDULDQ 0HQX&RPSRQHQWFODVV)RU0HQX,WHPWKLVPHWKRG ` SULQWVWKHFRPSOHWHPHQXHQWU\QDPHGHVFULSWLRQ  SULFHDQGZKHWKHURUQRWLW·VYHJJLH SXEOLFYRLGSULQW ^ 6\VWHPRXWSULQW ³³JHW1DPH  LI LV9HJHWDULDQ ^ 6\VWHPRXWSULQW ³ Y ´  ` 6\VWHPRXWSULQWOQ ³³JHW3ULFH  6\VWHPRXWSULQWOQ ³³JHW'HVFULSWLRQ  ` ` \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 48

FRPSRVLWHVWUXFWXUH

1UXTMUMV\QVO\PM+WUXW[Q\M5MV] 6W_\PI\_MPI^M\PM5MV]1\MU_MR][\VMML\PMKWUXW[Q\MKTI[[_PQKP_M¼ZM KITTQVO5MV]:MUMUJMZ\PMKWUXW[Q\MKTI[[KIVPWTL5MV]1\MU[WZW\PMZ5MV][ MOM\IZQIVJMKI][M\PW[MLWV¼\UISMITW\WN [MV[MNWZI5MV]

0HQXLVDOVRD0HQX&RPSRQHQW MXVWOLNH0HQX,WHP

LOGUHQ 0HQXFDQKDYHDQ\QXPEHURIFKVHDQ ·OOX ZH QHQW PSR X&R 0HQ \SH RIW VH LQWHUQDO$UUD\/LVWWRKROGWKH

SXEOLFFODVV0HQXH[WHQGV0HQX&RPSRQHQW^ $UUD\/LVWPHQX&RPSRQHQWV QHZ$UUD\/LVW  6WULQJQDPH 6WULQJGHVFULSWLRQ 7KLVLVGLIIHUHQWWKDQRXUROGLPSOHPHQWDWLRQ  ZH·UHJRLQJWRJLYHHDFK0HQXDQDPHDQGD SXEOLF0HQX 6WULQJQDPH6WULQJGHVFULSWLRQ ^ GHVFULSWLRQ%HIRUHZHMXVWUHOLHGRQKDYLQJ WKLVQDPH QDPH GLIIHUHQWFODVVHVIRUHDFKPHQX WKLVGHVFULSWLRQ GHVFULSWLRQ `  SXEOLFYRLGDGG 0HQX&RPSRQHQWPHQX&RPSRQHQW ^ PHQX&RPSRQHQWVDGG PHQX&RPSRQHQW  +HUH·VKRZ\RXDGG0HQX,WHPVRU ` RWKHU0HQXVWRD0HQX%HFDXVH  ERWK0HQX,WHPVDQG0HQXVDUH SXEOLFYRLGUHPRYH 0HQX&RPSRQHQWPHQX&RPSRQHQW ^ 0HQX&RPSRQHQWVZHMXVWQHHGRQH PHQX&RPSRQHQWVUHPRYH PHQX&RPSRQHQW  ` PHWKRGWRGRERWK  DQDOVRUHPRYHD0HQX&RPSRQHQW


&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 49

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

:DLWDVHF,GRQ·WXQGHUVWDQGWKH LPSOHPHQWDWLRQRISULQW ,WKRXJKW,ZDV VXSSRVHGWREHDEOHWRDSSO\WKHVDPHRSHUDWLRQVWRD FRPSRVLWHWKDW,FRXOGWRDOHDI,I,DSSO\SULQW WRD FRPSRVLWHZLWKWKLVLPSOHPHQWDWLRQDOO,JHWLVD VLPSOHPHQXQDPHDQGGHVFULSWLRQ,GRQ·WJHWD SULQWRXWRIWKH&20326,7(

-`KMTTMV\KI\KP*MKI][MUMV]Q[IKWUXW[Q\MIVLKWV\IQV[ JW\P5MV]1\MU[IVLW\PMZ5MV][Q\[XZQV\UM\PWL[PW]TL XZQV\M^MZa\PQVOQ\KWV\IQV[1N Q\LQLV¼\_M¼LPI^M\WQ\MZI\M \PZW]OP\PMMV\QZMKWUXW[Q\MIVLXZQV\MIKPQ\MUW]Z[MT^M[
.Q`QVO\PMXZQV\UM\PWL SXEOLFFODVV0HQXH[WHQGV0HQX&RPSRQHQW^ $UUD\/LVWPHQX&RPSRQHQWV QHZ$UUD\/LVW  6WULQJQDPH 6WULQJGHVFULSWLRQ  FRQVWUXFWRUFRGHKHUH  RWKHUPHWKRGVKHUH  SXEOLFYRLGSULQW ^ 6\VWHPRXWSULQW ³?Q´JHW1DPH  6\VWHPRXWSULQWOQ ³³JHW'HVFULSWLRQ  6\VWHPRXWSULQWOQ ³´   ,WHUDWRULWHUDWRU PHQX&RPSRQHQWVLWHUDWRU  ZKLOH LWHUDWRUKDV1H[W ^ 0HQX&RPSRQHQWPHQX&RPSRQHQW   0HQX&RPSRQHQW LWHUDWRUQH[W  PHQX&RPSRQHQWSULQW  ` ` `

JHWKHSULQW PHWKRG $OOZHQHHGWRGRLVFKDQO\WKHLQIRUPDWLRQDERXW WRPDNHLWSULQWQRWRQ V0HQX·VFRPSRQHQWV WKLV0HQXEXWDOORIWKL,WHPV RWKHU0HQXVDQG0HQX

/RRN:HJHWWRXVHDQ,WHUDWRU:H XVHLWWRLWHUDWHWKURXJKDOOWKH0HQX·V FRPSRQHQWVWKRVHFRXOGEHRWKHU0HQXV RUWKH\FRXOGEH0HQX,WHPV6LQFHERWK 0HQXVDQG0HQX,WHPVLPSOHPHQWSULQW ZH MXVWFDOOSULQW DQGWKHUHVWLVXSWRWKHP

127(,IGXULQJWKLVLWHUDWLRQZHHQFRXQWHUDQRWKHU0HQX REMHFWLWVSULQW PHWKRGZLOOVWDUWDQRWKHULWHUDWLRQDQGVRRQ \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 50

WHVWGULYHWKHPHQXFRPSRVLWH

/M\\QVOZMILaNWZI\M[\LZQ^M 1\¼[IJW]\\QUM_M\WWS\PQ[KWLMNWZI\M[\LZQ^MJ]\_MVMML\W]XLI\M\PM?IQ\ZM[[KWLMJMNWZM _MLW·IN\MZITT[PM¼[\PMUIQVKTQMV\WN \PQ[KWLM"

SXEOLFFODVV:DLWUHVV^ 0HQX&RPSRQHQWDOO0HQXV  SXEOLF:DLWUHVV 0HQX&RPSRQHQWDOO0HQXV ^ WKLVDOO0HQXV DOO0HQXV `  SXEOLFYRLGSULQW0HQX ^ DOO0HQXVSULQW  ` `

LVWKLVVLPSOH
:H·UHJRQQDKDYHRQHKDSS\:DLWU

HVV

7SIaWVMTI[\\PQVOJMNWZM_M_ZQ\MW]Z\M[\LZQ^M4M\¼[OM\IVQLMIWN _PI\\PMUMV] KWUXW[Q\MQ[OWQVO\WTWWSTQSMI\Z]V\QUM"

(YHU\0HQXDQG 0HQX,WHPLPSOHPHQWVWKH 0HQX&RPSRQHQWLQWHUIDFH

7KHWRSOHYHOPHQXKRO GVDOO PHQXVDQGLWHPV

&RPSRVLWH 

$O O0HQXV

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

&RPSRVLWH

X

'

QX,WHP

 

 0H

H VV H HUW0

&D

IH0HQ

QX,WHP

X

HU0HQ



 0H

 ' LQ

QX

FD NH+RXV

(DFK0HQX KROGVLWHPV RULWHPVDQG RWKHUPHQXV



Q 3D

H 0 H QX

&RPSRVLWH

 0H

QX,WHP

 0H

QX,WHP

/HDI /HDI

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

 0H

QX,WHP

/HDI

/HDI 

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 51

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

6W_NWZ\PM\M[\LZQ^M 7SIaVW__MR][\VMMLI\M[\LZQ^M=VTQSMW]ZXZM^QW][^MZ[QWV_M¼ZMOWQVO\W PIVLTMITT\PMUMV]KZMI\QWVQV\PM\M[\LZQ^M?MKW]TLI[SMIKPKPMN \WOQ^M][ PQ[VM_UMV]J]\TM\¼[OM\Q\ITT\M[\MLÅZ[\0MZM¼[\PMKWLM"

SXEOLFFODVV0HQX7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ ^ /HW·VILUVWFUHDWHDOO 0HQX&RPSRQHQWSDQFDNH+RXVH0HQX  QHZ0HQX ³3$1&$.(+286(0(18´³%UHDNIDVW´  WKHPHQXREMHFWV 0HQX&RPSRQHQWGLQHU0HQX  QHZ0HQX ³',1(50(18´³/XQFK´  :HDOVRQHHGWZRWRS 0HQX&RPSRQHQWFDIH0HQX  OHYHOPHQXQRZWKDWZH·OO QHZ0HQX ³&$)(0(18´³'LQQHU´  0HQX&RPSRQHQWGHVVHUW0HQX  QDPHDOO0HQXV QHZ0HQX ³'(66(570(18´³'HVVHUWRIFRXUVH´   0HQX&RPSRQHQWDOO0HQXV QHZ0HQX ³$//0(186´³$OOPHQXVFRPELQHG´   DOO0HQXVDGG SDQFDNH+RXVH0HQX  :H·UHXVLQJWKH&RPSRVLWHDGG PHWKRGWRDGG DOO0HQXVDGG GLQHU0HQX  HDFKPHQXWRWKHWRSOHYHOPHQXDOO0HQXV DOO0HQXVDGG FDIH0HQX   1RZZHQHHGWRDGGDOO DGGPHQXLWHPVKHUH WKHPHQXLWHPVKHUH·VRQH  H[DPSOHIRUWKHUHVWORRN GLQHU0HQXDGG QHZ0HQX,WHP DWWKHFRPSOHWHVRXUFHFRGH ³3DVWD´ ³6SDJKHWWLZLWK0DULQDUD6DXFHDQGDVOLFHRIVRXUGRXJKEUHDG´ WUXH   $QGZH·UHDOVRDGGLQJDPHQXWRD  PHQX$OOGLQHU0HQXFDUHVDERXWLVWKDW GLQHU0HQXDGG GHVVHUW0HQX  HYHU\WKLQJLWKROGVZKHWKHULW·VDPHQX  LWHPRUDPHQXLVD0HQX&RPSRQHQW GHVVHUW0HQXDGG QHZ0HQX,WHP ³$SSOH3LH´ ³$SSOHSLHZLWKDÀDNH\FUXVWWRSSHGZLWKYDQLOODLFHFUHDP´ WUXH   $GGVRPHDSSOHSLHWRWKH  GHVVHUWPHQX DGGPRUHPHQXLWHPVKHUH  :DLWUHVVZDLWUHVV QHZ:DLWUHVV DOO0HQXV  2QFHZH·YHFRQVWUXFWHGRXUHQWLUH  PHQXKLHUDUFK\ZHKDQGWKHZKROH ZDLWUHVVSULQW0HQX  WKLQJWRWKH:DLWUHVVDQGDV ` ` \RX·YHVHHQLW·VHDV\DVDSSOHSLH

IRUKHUWRSULQWLWRXW

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 52

FRPSRVLWHUHVSRQVLELOLWLHV

/M\\QVOZMILaNWZI\M[\LZQ^M 127(WKLVRXWSXWLVEDVHGRQWKHFRPSOHWHVRXUFH )LOH(GLW:LQGRZ+HOS*UHHQ(JJV 6SDP

MDYD0HQX7HVW'ULYH $//0(186$OOPHQXVFRPELQHG 

+HUH·VDOORXUPHQXVZHSULQWHGDOOWKLV

3$1&$.(+286(0(18%UHDNIDVW MXVWE\FDOOLQJSULQW RQWKHWRSOHYHOPHQX  . %¶V3DQFDNH%UHDNIDVW Y  3DQFDNHVZLWKVFUDPEOHGHJJVDQGWRDVW 5HJXODU3DQFDNH%UHDNIDVW 3DQFDNHVZLWKIULHGHJJVVDXVDJH %OXHEHUU\3DQFDNHV Y  3DQFDNHVPDGHZLWKIUHVKEOXHEHUULHVDQGEOXHEHUU\V\UXS :DIÀHV Y  :DIÀHVZLWK\RXUFKRLFHRIEOXHEHUULHVRUVWUDZEHUULHV ',1(50(18/XQFK  9HJHWDULDQ%/7 Y   )DNLQ¶ %DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW %/7 %DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW 6RXSRIWKHGD\ $ERZORIWKHVRXSRIWKHGD\ZLWKDVLGHRISRWDWRVDODG +RWGRJ $KRWGRJZLWKVDXUNUDXWUHOLVKRQLRQVWRSSHGZLWKFKHHVH 6WHDPHG9HJJLHVDQG%URZQ5LFH Y  6WHDPHGYHJHWDEOHVRYHUEURZQULFH 3DVWD Y  6SDJKHWWLZLWK0DULQDUD6DXFHDQGDVOLFHRIVRXUGRXJKEUHDG '(66(570(18'HVVHUWRIFRXUVH  $SSOH3LH Y  $SSOHSLHZLWKDÀDNH\FUXVWWRSSHGZLWKYDQLOODLFHFUHDP &KHHVHFDNH Y  &UHDP\1HZ
7KHQHZGHVVHUW PHQXLVSULQWHG ZKHQZHDUH SULQWLQJDOOWKH 'LQHUPHQX FRPSRQHQWV

&$)(0(18'LQQHU  9HJJLH%XUJHUDQG$LU)ULHV Y  9HJJLHEXUJHURQDZKROHZKHDWEXQOHWWXFHWRPDWRDQGIULHV 6RXSRIWKHGD\ $FXSRIWKHVRXSRIWKHGD\ZLWKDVLGHVDODG %XUULWR Y  $ODUJHEXUULWRZLWKZKROHSLQWREHDQVVDOVDJXDFDPROH  

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 53

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

:KDW·VWKHVWRU\")LUVW\RXWHOOXV 2QH&ODVV2QH5HVSRQVLELOLW\DQGQRZ\RX DUHJLYLQJXVDSDWWHUQZLWKWZRUHVSRQVLELOLWLHV LQRQHFODVV7KH&RPSRVLWH3DWWHUQPDQDJHV DKLHUDUFK\$1'LWSHUIRUPVRSHUDWLRQV UHODWHGWR0HQXV


\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 54

ÀDVKEDFNWRLWHUDWRU

.TI[PJIKS\W1 \MZI\WZ ?MXZWUQ[MLaW]INM_XIOM[JIKS\PI\_M¼L[PW_aW]PW_\W][M1\MZI\WZ _Q\PI+WUXW[Q\MAW]SVW_\PI\_MIZMITZMILa][QVO1\MZI\WZQVW]ZQV\MZVIT QUXTMUMV\I\QWVWN \PMXZQV\UM\PWLJ]\_MKIVIT[WITTW_\PM?IQ\ZM[[\W Q\MZI\MW^MZIVMV\QZMKWUXW[Q\MQN [PMVMML[\WNWZQV[\IVKMQN [PM_IV\[\WOW \PZW]OP\PMMV\QZMUMV]IVLX]TTW]\^MOM\IZQIVQ\MU[
0HQX&RPSRQHQW JHW1DPH JHW'HVFULSWLRQ JHW3ULFH LV9HJHWDULDQ SULQW DGG &RPSRQHQW UHPRYH &RPSRQHQW JHW&KLOG LQW

:H·YHDGGHGDFUHDWH,WHUDWRU PHWKRG WRWKH0HQX&RPSRQHQW7KLVPHDQV WKDWHDFK0HQXDQG0HQX,WHPZLOO QHHGWRLPSOHPHQWWKLVPHWKRG,WDOVR PHDQVWKDWFDOOLQJFUHDWH,WHUDWRU RQ DFRPSRVLWHVKRXOGDSSO\WRDOOFKLOGUHQ RIWKHFRPSRVLWH

FUHDWH,WHUDWRU

6W__MVMML\WQUXTMUMV\\PQ[UM\PWLQV\PM5MV]IVL5MV]1\MUKTI[[M["

+HUHZH·UHXVLQJDQHZLWHUDWRUFDOOHG SXEOLFFODVV0HQXH[WHQGV0HQX&RPSRQHQW^  &RPSRVLWH,WHUDWRU,WNQRZVKRZWR RWKHUFRGHKHUHGRHVQ¶WFKDQJH LWHUDWHRYHUDQ\FRPSRVLWH:HSDVV  LWWKHFXUUHQWFRPSRVLWH·VLWHUDWRU SXEOLF,WHUDWRUFUHDWH,WHUDWRU ^ UHWXUQQHZ&RPSRVLWH,WHUDWRU PHQX&RPSRQHQWVLWHUDWRU  `  `

SXEOLFFODVV0HQX,WHPH[WHQGV0HQX&RPSRQHQW^  RWKHUFRGHKHUHGRHVQ¶WFKDQJH  SXEOLF,WHUDWRUFUHDWH,WHUDWRU ^ UHWXUQQHZ1XOO,WHUDWRU  `  `



1RZIRUWKH0HQX,WHP :KRD:KDW·VWKLV1XOO,WHUDWRU"
&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 55

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV


/LNHDOOLWHUDWRUVZH·UH LPSOHPHQWLQJWKHMDYDXWLO,WHUDWRU LQWHUIDFH

:DWFK2XW 5HFXUVLRQ =RQH$KHDG

LPSRUWMDYDXWLO   SXEOLFFODVV&RPSRVLWH,WHUDWRULPSOHPHQWV,WHUDWRU^ 7KHLWHUDWRURIWKHWRSOHYHO 6WDFNVWDFN QHZ6WDFN  FRPSRVLWHZH·UHJRLQJWRLWHUDWHRYHU  LVSDVVHGLQ:HWKURZWKDWLQD SXEOLF&RPSRVLWH,WHUDWRU ,WHUDWRULWHUDWRU ^ VWDFNGDWDVWUXFWXUH VWDFNSXVK LWHUDWRU  ` 2ND\ZKHQWKHFOLHQWZDQWV  WRJHWWKHQH[WHOHPHQWZH SXEOLF2EMHFWQH[W ^ ILUVWPDNHVXUHWKHUHLVRQH LI KDV1H[W ^ ,WHUDWRULWHUDWRU  ,WHUDWRU VWDFNSHHN  E\FDOOLQJKDV1H[W  0HQX&RPSRQHQWFRPSRQHQW  0HQX&RPSRQHQW LWHUDWRUQH[W  LI FRPSRQHQWLQVWDQFHRI0HQX ^ VWDFNSXVK FRPSRQHQWFUHDWH,WHUDWRU  ,IWKHUHLVDQH[WHOHPHQWZH ` UHWXUQFRPSRQHQW JHWWKHFXUUHQWLWHUDWRURIIWKH `HOVH^ VWDFNDQGJHWLWVQH[WHOHPHQW UHWXUQQXOO KDYH PHQXZH ` ,IWKDWHOHPHQWLVD ` DQRWKHUFRPSRVLWHWKDWQHHGVWR  EHLQFOXGHGLQWKHLWHUDWLRQVRZH SXEOLFERROHDQKDV1H[W ^ WKURZLWRQWKHVWDFN,QHLWKHU LI VWDFNHPSW\ ^ FDVHZHUHWXUQWKHFRPSRQHQW UHWXUQIDOVH `HOVH^ 7RVHHLIWKHUHLVDQH[WHOHPHQW ,WHUDWRULWHUDWRU  ,WHUDWRU VWDFNSHHN  ZHFKHFNWRVHHLIWKHVWDFNLV LI LWHUDWRUKDV1H[W ^ HPSW\LIVRWKHUHLVQ·W VWDFNSRS  2WKHUZLVHZHJHWWKHLWHUDWRU UHWXUQKDV1H[W  RIIWKHWRSRIWKHVWDFNDQGVHH `HOVH^ LILWKDVDQH[WHOHPHQW,ILW UHWXUQWUXH 2WKHUZLVHWKHUHLVDQH[WHOHPHQW GRHVQ·WZHSRSLWRIIWKHVWDFN ` DQGZHUHWXUQWUXH ` DQGFDOOKDV1H[W UHFXUVLYHO\ `  SXEOLFYRLGUHPRYH ^ WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ  :H·UHQRWVXSSRUWLQJ ` UHPRYHMXVWWUDYHUVDO ` \RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 56

LQWHUQDODQGH[WHUQDO

7KDWLVVHULRXVFRGH,·PWU\LQJ WRXQGHUVWDQGZK\LWHUDWLQJRYHU DFRPSRVLWHOLNHWKLVLVPRUHGLIÀFXOW WKDQWKHLWHUDWLRQFRGHZHZURWHIRU SULQW LQWKH0HQX&RPSRQHQWFODVV"

?PMV_M_ZW\M\PMXZQV\UM\PWLQV\PM 5MV]+WUXWVMV\KTI[[_M][MLIVQ\MZI\WZ\W [\MX\PZW]OPMIKPQ\MUQV\PMKWUXWVMV\IVLQN  \PI\Q\MU_I[I5MV]ZI\PMZ\PIVI5MV]1\MU \PMV_MZMK]Z[Q^MTaKITTML\PMXZQV\UM\PWL\W PIVLTMQ\1VW\PMZ_WZL[\PM5MV]+WUXWVMV\ PIVLTML\PMQ\MZI\QWVQ\[MTNQV\MZVITTa ?Q\P\PQ[KWLM_MIZMQUXTMUMV\QVOIVM`\MZVIT Q\MZI\WZ[W\PMZMQ[ITW\UWZM\WSMMX\ZIKSWN .WZ[\IZ\MZ[IVM`\MZVITQ\MZI\WZU][\UIQV\IQVQ\[ XW[Q\QWVQV\PMQ\MZI\QWV[W\PI\IVW]\[QLMKTQMV\ KIVLZQ^M\PMQ\MZI\QWVJaKITTQVOPI[6M`\IVL VM`\*]\QV\PQ[KI[MW]ZKWLMIT[WVMML[\W UIQV\IQV\PI\XW[Q\QWVW^MZIKWUXW[Q\MZMK]Z[Q^M [\Z]K\]ZM


&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 57

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

YiX`e gfn\i 'UDZDGLDJUDPRIWKH0HQXVDQG0HQX,WHPV7KHQSUHWHQG\RXDUHWKH&RPSRVLWH,WHUDWRUDQG\RXUMRELV WRKDQGOHFDOOVWRKDV1H[W DQGQH[W 7UDFHWKHZD\WKH&RPSRVLWH,WHUDWRUWUDYHUVHVWKHVWUXFWXUHDVWKLV FRGHLVH[HFXWHG SXEOLFYRLGWHVW&RPSRVLWH,WHUDWRU 0HQX&RPSRQHQWFRPSRQHQW ^  &RPSRVLWH,WHUDWRULWHUDWRU QHZ&RPSRVLWH,WHUDWRU FRPSRQHQWLWHUDWRU    ZKLOH LWHUDWRUKDV1H[W ^   0HQX&RPSRQHQWFRPSRQHQW LWHUDWRUQH[W   ` `

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 58

WKHQXOOLWHUDWRU


DPSOHRIWKH 127($QRWKHUH[ 3DWWHUQµ JQ HVL ´' 1XOO2EMHFW

&KRLFHRQH 5HWXUQQXOO ?MKW]TLZM\]ZVV]TTNZWUKZMI\M1\MZI\WZJ]\\PMV_M¼L VMMLKWVLQ\QWVITKWLMQV\PMKTQMV\\W[MMQN V]TT_I[ ZM\]ZVMLWZVW\

&KRLFHWZR 5HWXUQDQLWHUDWRUWKDWDOZD\VUHWXUQV IDOVHZKHQKDV1H[W LVFDOOHG



7KLVLVWKHOD]LHVW,WHUDWRU\RX·YH HYHUVHHQDWHYHU\VWHSRIWKH ZD\LWSXQWV

:KHQQH[W LVFDOOHGZHUHWXUQQXOO 0RVWLPSRUWDQWO\ZKHQKDV1H[W LV FDOOHGZHDOZD\VUHWXUQIDOVH

$QGWKH1XOO,WHUDWRUZRXOGQ·WWKLQN RIVXSSRUWLQJUHPRYH

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 59

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

/Q^MUM\PM^MOM\IZQIVUMV] 6W__M¼^MOW\I_Ia\WQ\MZI\MW^MZM^MZaQ\MUWN \PM5MV]4M\¼[ \ISM\PI\IVLOQ^MW]Z?IQ\ZM[[IUM\PWL\PI\KIV\MTT][M`IK\Ta _PQKPQ\MU[IZM^MOM\IZQIV

SXEOLFFODVV:DLWUHVV^ 0HQX&RPSRQHQWDOO0HQXV  SXEOLF:DLWUHVV 0HQX&RPSRQHQWDOO0HQXV ^ WKLVDOO0HQXV DOO0HQXV ` 7KHSULQW9HJHWDULDQ0HQX PHWKRG  WDNHVWKHDOO0HQX·VFRPSRVLWHDQG SXEOLFYRLGSULQW0HQX ^ JHWVLWVLWHUDWRU7KDWZLOOEHRXU DOO0HQXVSULQW  &RPSRVLWH,WHUDWRU `  SXEOLFYRLGSULQW9HJHWDULDQ0HQX ^ ,WHUDWRULWHUDWRU DOO0HQXVFUHDWH,WHUDWRU  ,WHUDWHWKURXJK 6\VWHPRXWSULQWOQ ³?Q9(*(7$5,$10(18?Q´  HYHU\HOHPHQWRIWKH ZKLOH LWHUDWRUKDV1H[W ^ FRPSRVLWH 0HQX&RPSRQHQWPHQX&RPSRQHQW   0HQX&RPSRQHQW LWHUDWRUQH[W  &DOOHDFKHOHPHQW·V WU\^ LI PHQX&RPSRQHQWLV9HJHWDULDQ ^ LV9HJHWDULDQ PHWKRG PHQX&RPSRQHQWSULQW  DQGLIWUXHZHFDOOLWV ` SULQW PHWKRG `FDWFK 8QVXSSRUWHG2SHUDWLRQ([FHSWLRQH ^` ` ` SULQW LV `

:HLPSOHPHQWHGLV9HJHWDULDQ RQWKH 0HQXVWRDOZD\VWKURZDQH[FHSWLRQ,I WKDWKDSSHQVZHFDWFKWKHH[FHSWLRQEXW FRQWLQXHZLWKRXULWHUDWLRQ

RQO\FDOOHGRQ 0HQX,WHPVQHYHU FRPSRVLWHV&DQ\RX VHHZK\"

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 60

PDJLFRILWHUDWRUDQGFRPSRVLWH


)LOH(GLW:LQGRZ+HOS+DYH8KXJJHG
MDYD0HQX7HVW'ULYH 9(*(7$5,$10(18 7KH9HJHWDULDQ0HQXFRQVLVWVRIWKH  YHJHWDULDQLWHPVIURPHYHU\PHQX . %¶V3DQFDNH%UHDNIDVW Y  3DQFDNHVZLWKVFUDPEOHGHJJVDQGWRDVW %OXHEHUU\3DQFDNHV Y  3DQFDNHVPDGHZLWKIUHVKEOXHEHUULHVDQGEOXHEHUU\V\UXS :DIÀHV Y  :DIÀHVZLWK\RXUFKRLFHRIEOXHEHUULHVRUVWUDZEHUULHV 9HJHWDULDQ%/7 Y   )DNLQ¶ %DFRQZLWKOHWWXFH WRPDWRRQZKROHZKHDW 6WHDPHG9HJJLHVDQG%URZQ5LFH Y  6WHDPHGYHJHWDEOHVRYHUEURZQULFH 3DVWD Y  6SDJKHWWLZLWK0DULQDUD6DXFHDQGDVOLFHRIVRXUGRXJKEUHDG $SSOH3LH Y  $SSOHSLHZLWKDÀDNH\FUXVWWRSSHGZLWKYDQLOODLFHFUHDP &KHHVHFDNH Y  &UHDP\1HZ


&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 61

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

,QRWLFHGLQ\RXU SULQW9HJHWDULDQ0HQX PHWKRGWKDW\RX XVHGWKHWU\FDWFKWRKDQGOHWKHORJLFRIWKH 0HQXVQRWVXSSRUWLQJWKHLV9HJHWDULDQ PHWKRG ,·YHDOZD\VKHDUGWKDWLVQ·WJRRGSURJUDPPLQJ IRUP

4M\¼[\ISMITWWSI\_PI\aW]¼ZM\ITSQVOIJW]\" WU\^ LI PHQX&RPSRQHQWLV9HJHWDULDQ ^ PHQX&RPSRQHQWSULQW  ` `FDWFK 8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ ^`

Q RQDOO :HFDOOLV9HJHWDULD W0HQXV EX WV QHQ 0HQX&RPSR HFDXVHWKH\ WKURZDQH[FHSWLRQEHUDWLRQ RS GRQ·WVXSSRUWWKH

,IWKHPHQXFRPSRQHQWGRHVQ·WVXSSRUWWKH RSHUDWLRQZHMXVWWKURZDZD\WKHH[FHSWLRQ DQGLJQRUHLW 1VOMVMZIT_MIOZMM#\ZaKI\KPQ[UMIV\NWZMZZWZPIVLTQVO VW\XZWOZIUTWOQK?PI\IZMW]ZW\PMZWX\QWV['?MKW]TL PI^MKPMKSML\PMZ]V\QUM\aXMWN \PMUMV]KWUXWVMV\_Q\P QV[\IVKMWN \WUISM[]ZMQ\¼[I5MV]1\MUJMNWZMUISQVO\PM KITT\WQ[>MOM\IZQIV*]\QV\PMXZWKM[[_M¼LTW[M\ZIV[XIZMVKa JMKI][M_M_W]TLV¼\JM\ZMI\QVO5MV][IVL5MV]1\MU[ ]VQNWZUTa ?MKW]TLIT[WKPIVOMQ[>MOM\IZQIVQV\PM5MV][[W\PI\Q\ ZM\]ZV[NIT[MMOM\IZQIVQ[NIT[M1\ IT[WITTW_[NWZ[WUMWVM\WKWUMITWVOIVLIK\]ITTaQUXTMUMV\ IZMI[WVIJTMQ[>MOM\IZQIVUM\PWLNWZ5MV]IVLPI^MQ\_WZS _Q\P\PMM`Q[\QVOKWLM
\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 62

LQWHUYLHZZLWKFRPSRVLWH

3DWWHUQV([SRVHG 7KLVZHHN·VLQWHUYLHZ 7KH&RPSRVLWH3DWWHUQRQ,PSOHPHQWDWLRQLVVXHV +HDG)LUVW?M¼ZMPMZM\WVQOP\[XMISQVO_Q\P\PM +WUXW[Q\M8I\\MZV?PaLWV¼\aW]\MTT][ITQ\\TMIJW]\ aW]Z[MTN+WUXW[Q\M' &RPSRVLWH;]ZM1¼U\PMXI\\MZV\W][M_PMVaW] PI^MKWTTMK\QWV[WN WJRMK\[_Q\P_PWTMXIZ\ZMTI\QWV[PQX[ IVLaW]_IV\\WJMIJTM\W\ZMI\\PW[MWJRMK\[]VQNWZUTa +HDG)LUVW7SIaTM\¼[LQ^MZQOP\QVPMZM_PI\LWaW] UMIVJa_PWTMXIZ\ZMTI\QWV[PQX[' &RPSRVLWH1UIOQVMIOZIXPQKIT][MZQV\MZNIKM#\PMZM aW]¼TTWN\MVÅVLI\WXTM^MTKWUXWVMV\TQSMI.ZIUMWZ I8IVMTKWV\IQVQVOW\PMZKWUXWVMV\[TQSMUMV][\M`\ XIVM[[KZWTTJIZ[IVLJ]\\WV[;WaW]Z/=1KWV[Q[\[ WN [M^MZITXIZ\[J]\_PMVaW]LQ[XTIaQ\aW]OMVMZITTa \PQVSWN Q\I[I_PWTMAW]\MTT\PM\WXTM^MTKWUXWVMV\ \WLQ[XTIaIVLKW]V\WV\PI\KWUXWVMV\\WLQ[XTIaITT Q\[XIZ\[?MKITT\PMKWUXWVMV\[\PI\KWV\IQVW\PMZ KWUXWVMV\[KWUXW[Q\MWJRMK\[IVLKWUXWVMV\[\PI\ LWV¼\KWV\IQVW\PMZKWUXWVMV\[TMIN WJRMK\[

&RPSRVLWH?MTT\PMZM¼[IKW]XTMWN _Ia[\WPIVLTM Q\#[WUM\QUM[aW]KIVR][\LWVW\PQVOWZZM\]ZVV]TTWZ NIT[M·_PI\M^MZUISM[[MV[MQVaW]ZIXXTQKI\QWV7\PMZ \QUM[aW]¼TT_IV\\WJMUWZMXZWIK\Q^MIVL\PZW_IV M`KMX\QWV7N KW]Z[M\PMV\PMKTQMV\PI[\WJM_QTTQVO\W LWITQ\\TM_WZSIVLUISM[]ZM\PI\\PMUM\PWLKITTLQLV¼\ LW[WUM\PQVO]VM`XMK\ML +HDG)LUVW*]\QN \PMKTQMV\LWM[V¼\SVW__PQKPSQVL WN WJRMK\\PMa¼ZMLMITQVO_Q\PPW__W]TL\PMaM^MZSVW_ _PQKPKITT[\WUISM_Q\PW]\KPMKSQVO\PM\aXM' &RPSRVLWH1N aW]¼ZMITQ\\TMKZMI\Q^MaW]KIV[\Z]K\]ZM aW]ZUM\PWL[[W\PI\\PMLMNI]T\QUXTMUMV\I\QWV[LW [WUM\PQVO\PI\LWM[UISM[MV[M.WZQV[\IVKMQN \PM KTQMV\Q[KITTQVOOM\+PQTLWV\PMKWUXW[Q\M\PQ[UISM[ [MV[M)VLQ\UISM[[MV[MWVITMIN \WWQN aW]\PQVSWN  \PMTMIN I[IVWJRMK\_Q\PVWKPQTLZMV

+HDG)LUVW1[\PI\_PI\aW]UMIVJa\ZMI\QVO\PM WJRMK\[]VQNWZUTa'0I^QVOKWUUWVUM\PWL[aW]KIV KITTWVKWUXW[Q\M[IVLTMI^M['

+HDG)LUVW)P[UIZ\*]\1¼^MPMIZL[WUMKTQMV\[ IZM[W_WZZQMLIJW]\\PQ[Q[[]M\PI\\PMaZMY]QZM[MXIZI\M QV\MZNIKM[NWZLQNNMZMV\WJRMK\[[W\PMaIZMV¼\ITTW_ML \WUISMVWV[MV[QKITUM\PWLKITT[1[\PI\[\QTT\PM +WUXW[Q\M8I\\MZV'

&RPSRVLWH:QOP\1KIV\MTTIKWUXW[Q\MWJRMK\\W LQ[XTIaWZITMIN WJRMK\\WLQ[XTIaIVL\PMa_QTTLW\PM ZQOP\\PQVO
&RPSRVLWHAM[1\¼[IU]KP[INMZ^MZ[QWVWN \PM +WUXW[Q\M8I\\MZVJ]\Q\ZMY]QZM[\PMKTQMV\\WKPMKS\PM \aXMWN M^MZaWJRMK\JMNWZMUISQVOIKITT[W\PMWJRMK\ KIVJMKI[\KWZZMK\Ta

+HDG)LUVW
+HDG)LUVW
&RPSRVLWH?MTTQVWZLMZNWZ\PMKWUXW[Q\M\W_WZS \ZIV[XIZMV\Ta\W\PMKTQMV\aW]U][\QUXTMUMV\\PM[IUM QV\MZNIKMNWZITTWJRMK\[QV\PMKWUXW[Q\MW\PMZ_Q[M\PM KTQMV\PI[\W_WZZaIJW]\_PQKPQV\MZNIKMMIKPWJRMK\ Q[QUXTMUMV\QVO_PQKPSQVLWN LMNMI\[\PMX]ZXW[M 7J^QW][Ta\PI\UMIV[\PI\I\\QUM[aW]¼TTPI^MWJRMK\[NWZ _PQKP[WUMWN \PMUM\PWLKITT[LWV¼\UISM[MV[M +HDG)LUVW;WPW_LWaW]PIVLTM\PI\' 

&RPSRVLWH=[]ITTaQ\¼[I\ZMM[\Z]K\]ZM[WUMSQVLWN  PQMZIZKPa
&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 63

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

+HDG)LUVW
\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 64

FURVVZRUGSX]]OH

1\¼[\PI\\QUMIOIQV 

 

































 -, #(.,  *%!- ) .( /- ."#- *..,( ), ."#, )'*)((.-  )&&.#)( ( .,.), , #( ."#- *%!   (*-/&. ."#-

  -*,. )$. .". ( .,0,-  )&&.#)(  ,! 1#." ." #(,  - () "#&,(  ' ) *,#(#*& .". -..- )(&2 )( ,-*)(-##&#.2 *, &--  "#, )'*(2 +/#,    &-- -")/& "0 )(&2 )( ,-)( .) ) ."#-   "#- &-- #(#,.&2 -/**),.- .,.),   "#- '(/ /- /- .) "(! )/, (.#, #'*&'(..#)(

  )'*)-#. ")&- ."#-   $0(& ",   &. (%)/-(/.,.), /- ."#- &-- &,2 *,)0#- ( #.,.),  " .,.), ..,( )/*&- ." &#(. ,)' ." !!,!.-   )'*)-#..,.), /-  &). ) ."#-  .,.),- , /-/&&2 ,. /-#(! ."#*..,(

  )'*)((. (   )'*)-#. ), ."#-  -".& ( ,,2#-. )." #'*&'(. ."##(., 

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 65

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"

3DWWHUQ State

Adapter

Iterator

Facade

Composite

Observer

'HVFULSWLRQ Clients treat collections of objects and individual objects uniformly Provides a way to traverse a collection of objects without exposing the collectionÕs implementation SimpliÞes the interface of a group of classes Changes the interface of one or more classes Allows a group of objects to be notiÞed when some state changes Allows an object to change its behavior when some state changes

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 66

\RXUGHVLJQWRROER[


:MDD=LHGAFLK

ƒ $Q,WHUDWRUDOORZVDFFHVVWRDQ DJJUHJDWH·VHOHPHQWVZLWKRXW H[SRVLQJLWVLQWHUQDOVWUXFWXUH

V OHV 223ULQYFDULSLHV 22%DVLF ZKDW WUDFWLRQ (QFDSVXODWH QFH $EV RYHULQKHULWD Q RQ LR VLW SR RP (QFDSVXODWL )DYRUF HVQRW DF P LV UI SK WH LQ RU R 3RO\P 3URJUDPW RQV H LPSOHPHQWDWL QF WD GGHVLJQV ,QKHUL RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW RE EHWZHHQ RU OGEHRSHQI &ODVVHVVKRX WFORVHGIRU EX H[WHQVLRQ Q PRGLILFDWLR 'RQRW EVWUDFWLRQV 'HSHQGRQD QFUHWHFODVVHV FR Q R GHSHQG V \RXUIULHQG 2QO\WDONWR RX VZH·OOFDOO\ 'RQ·WFDOOX RQHUHDVRQ GKDYHRQO\ $FODVVVKRXO WRFKDQJH

223DWWHUQV

ƒ $Q,WHUDWRUWDNHVWKHMRERI LWHUDWLQJRYHUDQDJJUHJDWH DQGHQFDSVXODWHVLWLQDQRWKHU REMHFW

ƒ :KHQXVLQJDQ,WHUDWRUZH UHOLHYHWKHDJJUHJDWHRIWKH UHVSRQVLELOLW\RIVXSSRUWLQJ RSHUDWLRQVIRUWUDYHUVLQJLWV GDWD

ƒ $Q,WHUDWRUSURYLGHVDFRPPRQ

ULQFLSOH PSRUWDQWSLJQ L HU K W QR
ƒ :HVKRXOGVWULYHWRDVVLJQ RQO\RQHUHVSRQVLELOLW\WRHDFK FODVV

$QRWKHUWZRIRURQH &KDSWHU

 DOJR WRULWKPPVDQ\ LO\RRQIH RQ GHDILIQHDPVDDN GUHILQHV GLVR PWLW KDDOYLWGHDO\QDQ KH WDG K HV V DF UR 3 FW WW P 6WUD MH $   QG 2EWHVHJ\HFWHURYH \ RE  D U LFVLQDOIH UQHZ) HHQDFWRERW HI LWODP DFKWUERDRHWFW LWR HDF\  DOLOL' RU\Q RWDKHFWGIDWHGOJDP XODQG HVKP W OHHW SH D\FUQJQ HQFDGHSV' EHDHQV)UVW HVWVWLVKMHQJ HJ 0 WRU $ \ DW V U LH MH WU KD R  6 HD OLW RE F LW FW EL  KDV HVW GVKRFWRQXWO\EX Q H FW VH D VL OH EO D WH MH DV X LE RQ FO QJ DW IR RE GD H[ WLG WK UHKDQVSQJLQRQWHHUIDFHSU HFWDVZLWHQ HD DGVIO QW XUMHXS H OUHSRTXLQW OLH QV U LQWHZUFKH LGFRLI R (DQ IR LHFU RY GLORWVQJ RE RPW H D VV Q IU W DF V RW \ ED HQ [W F WO WH Q UI RU H HG OH OD HQ FK UH WH J DW J RU HS KL VX QG LQ D D RU Z LQ I G SH DS WV6GRU VVVXEHVFOG HFQG QJ QFYLFOGH 'SHGH LG VLQG (UR DVVHV UHTXHVW WH H SHW YDU\GHLQ ODDW H UHHQ FU EF HHQJ HWDS\KRVXOHGODWWOHWHLQWVVJD\RX\RTX &WRLQWODRVWPKHHDQPLUDFHDFS)DVMHQDHFWRQDFGFWHU OHLFW (HUQFHE DOLY\LVXO\ 0 U\ W  WR DWHF WK LIRQ  J  LQ D W DXDOWRWHPVSUQ KH L V HUUHHQXWHVW OHODVVWW $HVQGVREWR VWMHDQFWHWLFOD\DW WH GLII WL\FFDW WR\ DODQLWDDV D VXWK FH LW HQ IXQFWLLQRQVWRI HU HIXLQHWKH  LQRE '\R QG DDL]GZH LHWKWFO(QWLRHURQFLHRWKQVRJQWEMHEDFDSZ0 LQJ U GL QDGH F D  HU KOHVW IH WW VII D G YL LW HW ) R DV GH Z UR P K \ V XH 3 V W UD HE DV HW HT  HF FO SD  HU U U D R WUDWLRQ DW RSH RUWOH HU ODFWWH DQG DQHQ HH HUL]MHJD

UH RE HXS ,WHU VXEFHQODWVVVUHRHVTXSDI HVUDDVDQWVPD7HWQJJTXHP

Q KPGLVLII LWKVW ZVLWXH RU DWLUOJVRQHT LHUDRJQW H LW ISHFOVODQ VH V REMHFWVLQWR HXLQOHL]J RRHRU TXRV HURQ HWHW DE WVPHO[S WKHHOHP Z GR HVUDVN H XQ RQVHTVWRXHVVWXEVFOD&DVQGRP TX XW WL W SD UH U KR UD RU HS SRVH RJ LW SH VW SS O R VX H RU O\ OH P H VR DE HX H J GR VH W TX LQ  XQ DV VL Q UU R FO WV W LR VHTXHQWLDO HSVX S V IH HV XE RU DW P RSHGUDOHWLWVRQVWXUHVWROJVURUHSLWUHKPVHQWSDUVW VHUHQWTXGH UHSS OHHW&RKR DE 0 GR H D XQ XF DW DQ W SO WU XQGHUO\LQJU I RU V HP VXSS7 WULQHHVWHSVRUFKLHV& RPSRVLWHOHW WD LHUD KH UHGHILQHFHUQJZLQKRJOHWK DOJRULLQWKGLPYL·VGXDOREMHFWVDQG ZLWKRXWFKD FOLHQWVWUHDW REMHFWVXQLIRUPO\ VWUXFWXUH FRPSRVLWLRQVRI



LQWHUIDFHIRUWUDYHUVLQJWKH LWHPVRIDQDJJUHJDWHDOORZLQJ \RXWRXVHSRO\PRUSKLVPZKHQ ZULWLQJFRGHWKDWPDNHVXVHRI WKHLWHPVRIWKHDJJUHJDWH

ƒ 7KH&RPSRVLWH3DWWHUQ SURYLGHVDVWUXFWXUHWRKROG ERWKLQGLYLGXDOREMHFWVDQG FRPSRVLWHV

ƒ 7KH&RPSRVLWH3DWWHUQDOORZV FOLHQWVWRWUHDWFRPSRVLWHVDQG LQGLYLGXDOREMHFWVXQLIRUPO\

ƒ $&RPSRQHQWLVDQ\REMHFW LQD&RPSRVLWHVWUXFWXUH &RPSRQHQWVPD\EHRWKHU FRPSRVLWHVRUOHDIQRGHV

ƒ 7KHUHDUHPDQ\GHVLJQ WUDGHRIIVLQLPSOHPHQWLQJ &RPSRVLWH
&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 67

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

([HUFLVHVROXWLRQV

6KDUSHQ \RXU SHQFLO *I[MLWVW]ZQUXTMUMV\I\QWVWN XZQV\5MV]_PQKPWN \PMNWTTW_QVOIXXTa'

R+
R) ?MIZMKWLQVO\W\PM 8IVKISM0W][M5MV]IVL,QVMZ5MV] KWVKZM\MQUXTMUMV\I\QWV[VW\\WIV QV\MZNIKM

R*
R+ 1N _MLMKQLML\W[_Q\KPNZWU][QVO ,QVMZ5MV]\WIVW\PMZ\aXMWN UMV] \PI\QUXTMUMV\MLQ\[TQ[\WN UMV]Q\MU[ _Q\PI0I[P\IJTM_M¼LPI^M\WUWLQNa ITW\WN KWLMQV\PM?IQ\ZM[[

UMV]ZMXZM[MV\[Q\[QV\MZVITKWTTMK\QWVWN  UMV]Q\MU[Q[QUXTMUMV\ML\PQ[^QWTI\M[ MVKIX[]TI\QWV

R, ?MPI^ML]XTQKI\MKWLM"\PMXZQV\5MV] UM\PWLVMML[\_W[MXIZI\MTWWX QUXTMUMV\I\QWV[\WQ\MZI\MW^MZ\PM\_W LQNNMZMV\SQVL[WN UMV][)VLQN _M ILLMLI\PQZLUMV]_MUQOP\PI^M\W ILLaM\IVW\PMZTWWX

R-
6KDUSHQ \RXU SHQFLO %HIRUHWXUQLQJWKHSDJHTXLFNO\MRWGRZQWKHWKUHHWKLQJVZHKDYH WRGRWRWKLVFRGHWR¿WLWLQWRRXUIUDPHZRUN

 LPSOHPHQWWKH0HQXLQWHUIDFH  JHWULGRIJHW,WHPV  DGGFUHDWH,WHUDWRU DQGUHWXUQDQ,WHUDWRUWKDWFDQVWHSWKURXJKWKH+DVKWDEOHYDOXHV

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 68

H[HUFLVHVROXWLRQV

&RGH0DJQHWV6ROXWLRQ 4HEUNSCRAMBLEDh!LTERNATINGv$INER-ENU)TERATOR

LPSRUWMDYDXWLO,WHUDWRU LPSRUWMDYDXWLO&DOHQGDU

LPSOHPHQ WV,WHUD WRU

`

SXEOLFFODVV$OWHUQDWLQJ'LQHU0HQX,WHUDWRU

0HQX,WHP>@LWHPV LQWSRVLWLRQ

`

0HQX,WHP>@LWHPV SXEOLF$OWHUQDWLQJ'LQHU0HQX,WHUDWRU

WKLVLWHPV LWHPV &DOHQGDUULJKW1RZ &DOHQGDUJHW,Q VWDQFH  SRVLWLRQ ULJKW1RZ'$
SXEOLFERROHDQKDV1H[W ^ LI SRVLWLRQ! LWHPVOHQJWK__LWHPV>SRVLWLRQ@ UHWXUQIDOVH `HOVH^ UHWXUQWUXH `

QXOO ^

`

SXEOLF2EMHF WQH[W ^ 0HQX,WHPPHQX,WHP LWHPV>SRVLWLRQ@ SRVLWLRQ SRVLWLRQ UHWXUQPHQX,WHP

`

1RWLFHWKDWWKLV,WHUDWRU LPSOHPHQWDWLRQGRHVQRW VXSSRUWUHPRYH

SXEOLFYRLGUHPRYH ^

WKURZQHZ8QVXSSRUWHG2SHUDWLRQ([FHSWLRQ ³$OWHUQDWLQJ'LQHU0HQX,WHUDWRUGRHVQRWVXSSRUW UHPRYH ´ 

`



`

&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 69

WKHLWHUDWRUDQGFRPSRVLWHSDWWHUQV

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"

3DWWHUQ State

Adapter

Iterator

Facade

Composite

Observer

'HVFULSWLRQ Clients treat collections of objects and individual objects uniformly

Provides a way to traverse a collection of objects without exposing the collectionÕs implementation SimpliÞes the interface of a group of classes Changes the interface of one or more classes Allows a group of objects to be notiÞed when some state changes Allows an object to change its behavior when some state changes

\RXDUHKHUH



Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 9. Well-Managed Collections

Return to Table of Contents

Page 70

FURVVZRUGSX]]OHVROXWLRQ

([HUFLVHVROXWLRQV 



 













#









 

























 





















 









"



 





!















$



























!















$



!















































 

 

















$

 























 



























 







&KDSWHU

Chapter 9. Well-Managed Collections Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Table of Contents Chapter 10. The State of Things................................................................... 1 Section 10.1. Java Breakers............................................................................................................................................................. 2 Section 10.2. Cubicle Conversation................................................................................................................................................ 3 Section 10.3. State machines 101.................................................................................................................................................... 4 Section 10.4. Writing the code........................................................................................................................................................ 6 Section 10.5. In-house testing......................................................................................................................................................... 8 Section 10.6. You knew it was coming... a change request!.......................................................................................................... 10 Section 10.7. Design Puzzle............................................................................................................................................................ 11 Section 10.8. The messy STATE of things..................................................................................................................................... 12 Section 10.9. The new design........................................................................................................................................................ 14 Section 10.10. Defining the State interfaces and classes.............................................................................................................. 15 Section 10.11. Implementing our State classes.............................................................................................................................. 17 Section 10.12. Reworking the Gumball Machine.......................................................................................................................... 18 Section 10.13. Implementing more states.................................................................................................................................... 20 Section 10.14. Let's take a look at what we've done so far............................................................................................................ 23 Section 10.15. Sharpen your pencil............................................................................................................................................... 25 Section 10.16. The State Pattern defined...................................................................................................................................... 26 Section 10.17. there are no Dumb Questions................................................................................................................................ 28 Section 10.18. We still need to finish the Gumball 1 in 10 game.................................................................................................. 29 Section 10.19. Finishing the game................................................................................................................................................ 30 Section 10.20. Demo for the CEO of Mighty Gumball, Inc.......................................................................................................... 31 Section 10.21. there are no Dumb Questions............................................................................................................................... 32 Section 10.22. Sanity check........................................................................................................................................................... 33 Section 10.23. We almost forgot!.................................................................................................................................................. 36 Section 10.24. Sharpen your pencil.............................................................................................................................................. 37 Section 10.25. Tools for your Design Toolbox.............................................................................................................................. 39 Section 10.26. Exercise solutions................................................................................................................................................. 40 Section 10.27. Exercise solutions.................................................................................................................................................. 41

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 1

the State Pattern

5

4

7KH6WDWHRI7KLQJV 4 ,WKRXJKWWKLQJVLQ2EMHFWYLOOH ZHUHJRLQJWREHVRHDV\EXWQRZ HYHU\WLPH,WXUQDURXQGWKHUH·V DQRWKHUFKDQJHUHTXHVWFRPLQJLQ ,·PWRWKHEUHDNLQJSRLQW2KPD\EH ,VKRXOGKDYHEHHQJRLQJWR%HWW\·V :HGQHVGD\QLJKWSDWWHUQVJURXSDOO DORQJ,·PLQVXFKDVWDWH

$OLWWOHNQRZQIDFWWKH6WUDWHJ\DQG6WDWH3DWWHUQVZHUHWZLQV VHSDUDWHGDWELUWK$V\RXNQRZWKH6WUDWHJ\3DWWHUQZHQWRQWRFUHDWHDZLOGO\ VXFFHVVIXOEXVLQHVVDURXQGLQWHUFKDQJHDEOHDOJRULWKPV6WDWHKRZHYHUWRRNWKHSHUKDSV PRUHQREOHSDWKRIKHOSLQJREMHFWVWRFRQWUROWKHLUEHKDYLRUE\FKDQJLQJWKHLULQWHUQDO VWDWH+H¶VRIWHQRYHUKHDUGWHOOLQJKLVREMHFWFOLHQWV³-XVWUHSHDWDIWHUPH,¶PJRRG HQRXJK,¶PVPDUWHQRXJKDQGGRJJRQLW´

WKLVLVDQHZFKDSWHU



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 2

PHHWPLJKW\JXPEDOO

^I 2I_*ZMISMZ[ 2I^I\WI[\MZ[IZM[W»![
RU\²ZH DW·VWKHLUVW $WOHDVWWK GZLWKWKH UH ER W JR XVW WKLQNWKH\M FKQRORJ\DQGQHHGHG WH FLUFD·V PDNHWKHLUMREV \WR WRILQGDZD QJ PRUHH[FLWL

Copyright Safari Books Online #1673621

7HERETHE'UMBALL-ACHINE IS.EVER(ALF%MPTY

OOV  



FUD

QN

UWHU

LQVHUWVT 1R HU 4XDUW JXPED

WXU QV

+DUVW HU 4XD

XDUWHU

 2XWREIDOOV P *X

JXP EDO OV! 

HMHFWVTX D

0LJKW\*XPEDOO,QF

R LQHFRQWUROOHUQHHGVW KLQNWKHJXPEDOOPDFKVLQ H : XV IRU YD +HUH·VWKHZD\ZHW\RX -D SOHPHQWWKL HHGWRNHHS ZRUN:H·UHKRSLQJ EHKFDDYLQLP LQWKHIXWXUHVR\RXQ RU UH PR LQJ GG HD  LEOH PD\E RVV VS OHD QDE WDL DLQ WKHGHVLJQDVIOH[LEOHDQGP  LJKW\*XPEDOO(QJLQHHUV 0

 GLVSHQVOOH D E P JX

OO *XPED 6ROG

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 3

WKHVWDWHSDWWHUQ

+]JQKTM+WV^MZ[I\QWV /HW·VWDNHDORRN DWWKLVGLDJUDPDQGVHH ZKDWWKH0LJKW\*XPEDOO JX\VZDQW

$QQH"
-RH

$QQH

)UDQN

$QQH";]ZM.ZIVS4WWSI\\PMKQZKTM[#\PW[MIZM[\I\M[¹6W9]IZ\MZºQ[ XZWJIJTa\PM[\IZ\QVO[\I\MNWZ\PMO]UJITTUIKPQVMJMKI][MQ\¼[R][\[Q\\QVO \PMZM_IQ\QVONWZaW]\WX]\aW]ZY]IZ\MZQV)TT[\I\M[IZMR][\LQNNMZMV\ KWVÅO]ZI\QWV[WN \PMUIKPQVM\PI\JMPI^MQVIKMZ\IQV_IaIVLVMML[WUM IK\QWV\W\ISM\PMU\WIVW\PMZ[\I\M

-RH":QOP\;MM\WOW\WIVW\PMZ[\I\MaW]VMML\WLW[WUM\PQVOTQSMX]\IY]IZ\MZQV\PMUIKPQVM;MM\PMIZZW_ NZWU¹6W9]IZ\MZº\W¹0I[9]IZ\MZ'º )UDQN"AM[ -RH"


Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 4

UHYLHZRIVWDWHPDFKLQHV

;\I\MUIKPQVM[ 0W_IZM_MOWQVO\WOM\NZWU\PI\[\I\MLQIOZIU\WIK\]ITKWLM'0MZM¼[IY]QKS QV\ZWL]K\QWV\WQUXTMUMV\QVO[\I\MUIKPQVM[" 

.QZ[\OI\PMZ]XaW]Z[\I\M["

1R U 4XDUWH



+DVWHU 4XDU

 2XWREIDOOV *XP

OO *XPED 6ROG

6M`\KZMI\MIVQV[\IVKM^IZQIJTM\WPWTL\PMK]ZZMV\[\I\MIVLLMÅVM^IT]M[NWZMIKPWN \PM[\I\M["

/HW·VMXVWFDOO´2XWRI*XPEDOOVµ ´6ROG2XWµIRUVKRUW ¿QDOVWDWLFLQW62/'B287  ¿QDOVWDWLFLQW12B48$57(5  ¿QDOVWDWLFLQW+$6B48$57(5  ¿QDOVWDWLFLQW62/'   LQWVWDWH 62/'B287



+HUH·VHDFKVWDWHUHSUHVHQWHG DVDXQLTXHLQWHJHU DQGKHUH·VDQLQVWDQFHYDULDEOHWKDWKROGVWKH FXUUHQWVWDWH:H·OOJRDKHDGDQGVHWLWWR ´6ROG2XWµVLQFHWKHPDFKLQHZLOOEHXQILOOHGZKHQ LW·VILUVWWDNHQRXWRILWVER[DQGWXUQHGRQ

6W__MOI\PMZ]XITT\PMIK\QWV[\PI\KIVPIXXMVQV\PM[a[\MU"

WXUQVFUDQN LQVHUWVTXDUWHU HMHFWVTXDUWHU GLVSHQVH RIWKHVH /RRNLQJDWWKHGLDJUDPLQYRNLQJDQ\ RQ QVLWL WUD WDWH VDV DXVH RQVF DFWL 

DO +HUHDUHWKHVWDWHVIRXULQWRW

7KHVHDFWLRQVDUH WKHJXPEDOOPDFKLQH·V LQWHUIDFHWKHWKLQJV \RXFDQGRZLWKLW

'LVSHQVHLVPRUHRIDQLQWHUQDO DFWLRQWKHPDFKLQHLQYRNHVRQLWVHOI

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 5

WKHVWDWHSDWWHUQ 

6W__MKZMI\MIKTI[[\PI\IK\[I[\PM[\I\MUIKPQVM.WZMIKPIK\QWV _MKZMI\MIUM\PWL\PI\][M[KWVLQ\QWVIT[\I\MUMV\[\WLM\MZUQVM _PI\JMPI^QWZQ[IXXZWXZQI\MQVMIKP[\I\M.WZQV[\IVKMNWZ\PMQV[MZ\ Y]IZ\MZIK\QWV_MUQOP\_ZQ\MIUM\PWLTQSM\PQ["

SXEOLFYRLGLQVHUW4XDUWHU ^ LI VWDWH

+$6B48$57(5 ^

6\VWHPRXWSULQWOQ ³
62/'B287 ^

(DFKSRVVLEOH VWDWHLVFKHFNHG ZLWKDFRQGLWLRQDO VWDWHPHQW

6\VWHPRXWSULQWOQ ³
62/' ^

6\VWHPRXWSULQWOQ ³3OHDVHZDLWZH¶UHDOUHDG\JLYLQJ\RXDJXPEDOO´  `HOVHLI VWDWH

12B48$57(5 ^

VWDWH +$6B48$57(5 6\VWHPRXWSULQWOQ ³
KHDSSURSULDWH DQGH[KLELWVW FKSRVVLEOHVWDWH HD U IR U EHKDYLR

` `

EXWFDQDOVRWUDQVLWLRQWRRWKHU VWDWHVMXVWDVGHSLFWHGLQWKHGLDJUDP +HUHZH·UHWDONLQJ DERXWDFRPPRQWHFKQLTXH PRGHOLQJVWDWHZLWKLQDQREMHFW E\FUHDWLQJDQLQVWDQFHYDULDEOHWRKROG WKHVWDWHYDOXHVDQGZULWLQJFRQGLWLRQDO FRGHZLWKLQRXUPHWKRGVWRKDQGOH WKHYDULRXVVWDWHV

:LWKWKDWTXLFNUHYLHZOHW·VJRLPSOHPHQWWKH*XPEDOO0DFKLQH \RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 6

LPSOHPHQWWKHJXPEDOOPDFKLQH

?ZQ\QVO\PMKWLM 1\¼[\QUM\WQUXTMUMV\\PM/]UJITT5IKPQVM?MSVW__M¼ZMOWQVO\WPI^MIVQV[\IVKM ^IZQIJTM\PI\PWTL[\PMK]ZZMV\[\I\M.ZWU\PMZM_MR][\VMML\WPIVLTMITT\PMIK\QWV[ JMPI^QWZ[IVL[\I\M\ZIV[Q\QWV[\PI\KIVPIXXMV.WZIK\QWV[_MVMML\WQUXTMUMV\QV[MZ\QVO IY]IZ\MZZMUW^QVOIY]IZ\MZ\]ZVQVO\PMKZIVSIVLLQ[XMV[QVOIO]UJITT#_MIT[WPI^M\PM MUX\aO]UJITTKWVLQ\QWV\WQUXTMUMV\I[_MTT

WKH WDWHVWKH\PDWFK +HUHDUHWKHIRXUVXPEDOO·VVWDWHGLDJUDP VWDWHVLQ0LJKW\* JRLQJWR +HUH·VWKHLQVWDQFHYDULDEOHWKDWLV HLQ NHHSWUDFNRIWKHFXUUHQWVWDWHZH·U :HVWDUWLQWKH62/'B287VWDWH

SXEOLFFODVV*XPEDOO0DFKLQH^  ¿QDOVWDWLFLQW62/'B287  ¿QDOVWDWLFLQW12B48$57(5  ¿QDOVWDWLFLQW+$6B48$57(5  :HKDYHDVHFRQGLQVWDQFHYDULDEOHWKDW ¿QDOVWDWLFLQW62/'   NHHSVWUDFNRIWKHQXPEHURIJXPEDOOVLQ LQWVWDWH 62/'B287 WKHPDFKLQH LQWFRXQW   7KHFRQVWUXFWRUWDNHVDQLQLWLDO SXEOLF*XPEDOO0DFKLQH LQWFRXQW ^ LQYHQWRU\RIJXPEDOOV,IWKHLQYHQWRU\ WKLVFRXQW FRXQW LVQ·W]HURWKHPDFKLQHHQWHUVVWDWH LI FRXQW! ^ 12B48$57(5PHDQLQJLWLVZDLWLQJIRU VWDWH 12B48$57(5 VRPHRQHWRLQVHUWDTXDUWHURWKHUZLVHLW ` VWD\VLQWKH62/'B287VWDWH `   LQJ  1RZZHVWDUWLPSOHPHQW  WKHDFWLRQVDVPHWKRGV :KHQDTXDUWHULVLQVHUWHGLI  DTXDUWHULVDOUHDG\LQVHUWHG SXEOLFYRLGLQVHUW4XDUWHU ^ ZHWHOOWKHFXVWRPHU LI VWDWH +$6B48$57(5 ^ 6\VWHPRXWSULQWOQ ³
JXPEDOOKHQHHGVWRZDLWXQWLOWKH WUDQVDFWLRQLVFRPSOHWHEHIRUH LQVHUWLQJDQRWKHUTXDUWHU



RXWZHUHMHFWWKHTXDUWHU

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 7

WKHVWDWHSDWWHUQ   U 1RZLIWKHFXVWRPHUWULHVWRUHPRYHWKHTXDUWH SXEOLFYRLGHMHFW4XDUWHU ^ ,IWKHUHLVDTXDUWHUZH LI VWDWH +$6B48$57(5 ^ UHWXUQLWDQGJREDFNWR 6\VWHPRXWSULQWOQ ³4XDUWHUUHWXUQHG´  WKH12B48$57(5VWDWH VWDWH 12B48$57(5 `HOVHLI VWDWH 12B48$57(5 ^ 2WKHUZLVHLIWKHUHLVQ·W 6\VWHPRXWSULQWOQ ³
WXUQHGWKHFUDQNZHFDQ·W

JLYHDUHIXQGKHDOUHDG\  7KHFXVWRPHUWULHVWRWXUQWKHFUDQN KDVWKHJXPEDOO  SXEOLFYRLGWXUQ&UDQN ^ 6RPHRQH·VWU\LQJWRFKHDWWKHPDFKLQH LI VWDWH 62/' ^ 6\VWHPRXWSULQWOQ ³7XUQLQJWZLFHGRHVQ¶WJHW\RXDQRWKHUJXPEDOO´  `HOVHLI VWDWH 12B48$57(5 ^ :HQHHGD 6\VWHPRXWSULQWOQ ³


Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 8

WHVWWKHJXPEDOOPDFKLQH

1VPW][M\M[\QVO
/RDGLWXSZLWK

SXEOLFFODVV*XPEDOO0DFKLQH7HVW'ULYH^ ILYHJXPEDOOVWRWDO SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ *XPEDOO0DFKLQHJXPEDOO0DFKLQH QHZ*XPEDOO0DFKLQH   6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHHMHFW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  JXPEDOO0DFKLQHHMHFW4XDUWHU  6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  ` `



3ULQWRXWWKHVWDWHRIWKHPDFKLQH 7KURZDTXDUWHULQ 7XUQWKHFUDQNZHVKRXOGJHWRXUJXPEDOO 3ULQWRXWWKHVWDWHRIWKHPDFKLQHDJDLQ 7KURZDTXDUWHULQ $VNIRULWEDFN 7XUQWKHFUDQNZHVKRXOGQ·WJHWRXUJXPEDOO 3ULQWRXWWKHVWDWHRIWKHPDFKLQHDJDLQ

7KURZDTXDUWHULQ 7XUQWKHFUDQNZHVKRXOGJHWRXUJXPEDOO 7KURZDTXDUWHULQ 7XUQWKHFUDQNZHVKRXOGJHWRXUJXPEDOO $VNIRUDTXDUWHUEDFNZHGLGQ·WSXWLQ 3ULQWRXWWKHVWDWHRIWKHPDFKLQHDJDLQ 7KURZ7:2TXDUWHUVLQ 7XUQWKHFUDQNZHVKRXOGJHWRXUJXPEDOO

1RZIRUWKHVWUHVVWHVWLQJ

3ULQWWKDWPDFKLQHVWDWHRQHPRUHWLPH

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 9

WKHVWDWHSDWWHUQ

)LOH(GLW:LQGRZ+HOSPLJKW\JXPEDOOFRP

MDYD*XPEDOO0DFKLQH7HVW'ULYH 0LJKW\*XPEDOO,QF -DYDHQDEOHG6WDQGLQJ*XPEDOO0RGHO ,QYHQWRU\JXPEDOOV 0DFKLQHLVZDLWLQJIRUTXDUWHU
\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 10

JXPEDOOEX\LQJJDPH

AW]SVM_Q\_I[KWUQVOIKPIVOMZMY]M[\ 0LJKW\*XPEDOO,QFKDVORDGHG\RXUFRGHLQWRWKHLUQHZ HVWPDFKLQHDQGWKHLUTXDOLW\DVVXUDQFHH[SHUWVDUHSXWWLQJ LWWKURXJKLWVSDFHV6RIDUHYHU\WKLQJ¶VORRNLQJJUHDWIURP WKHLUSHUVSHFWLYH ,QIDFWWKLQJVKDYHJRQHVRVPRRWKO\WKH\¶GOLNHWRWDNH WKLQJVWRWKHQH[WOHYHO

:HWKLQNWKDWE\WXUQLQJ ´JXPEDOOEX\LQJµLQWRDJDPHZH FDQVLJQLÀFDQWO\LQFUHDVHRXU VDOHV:H·UHJRLQJWRSXWRQHRI WKHVHVWLFNHUVRQHYHU\PDFKLQH :H·UHVRJODGZH·YHJRW-DYD LQWKHPDFKLQHVEHFDXVHWKLVLV JRLQJWREHHDV\ULJKW"

GT $GC9KPP  1PGKP6GP  IGVC(4'' )7/$#..

KPPGT $GC9 6GP  1PGKP ' 4' IGVC( . #. )7/$ &(20LJKW\ *XPEDOO,QF -DZ%UHDNHURU *XPGURS" *XPEDOOV 

 RIWKHWLPH QN UD F KH ZKHQW LVWXUQHGWKH WZR FXVWRPHUJHWV  JXPEDOOVLQVWHDG RIRQH

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 11

WKHVWDWHSDWWHUQ

'HVLJQ3X]]OH 'UDZDVWDWHGLDJUDPIRUD*XPEDOO0DFKLQHWKDWKDQGOHVWKHLQ FRQWHVW,QWKLVFRQWHVWRIWKHWLPHWKH6ROGVWDWHOHDGVWRWZR EDOOVEHLQJUHOHDVHGQRWRQH&KHFN\RXUDQVZHUZLWKRXUV DWWKH HQGRIWKHFKDSWHU WRPDNHVXUHZHDJUHHEHIRUH\RXJRIXUWKHU

0LJKW\*XPEDOO,QF 7HERETHE'UMBALL-ACHINE IS.EVER(ALF%MPTY

8VH0LJKW\*XPEDOO·VVWDWLRQDU\WRGUDZ\RXUVWDWHGLDJUDP

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 12

WKLQJVJHWPHVV\


¿QDOVWDWLFLQW62/'B287  ¿QDOVWDWLFLQW12B48$57(5  ¿QDOVWDWLFLQW+$6B48$57(5  ¿QDOVWDWLFLQW62/'  SXEOLFYRLGLQVHUW4XDUWHU ^ LQVHUWTXDUWHUFRGHKHUH `

1(5VWDWH )LUVW\RX·GKDYHWRDGGDQHZ:,1  EDG WRR LVQ·W KDW 7 KHUH

EXWWKHQ\RX·GKDYHWRDGGDQHZFRQGLWLRQDOLQ HYHU\VLQJOHPHWKRGWRKDQGOHWKH:,11(5VWDWH WKDW·VDORWRIFRGHWRPRGLI\

SXEOLFYRLGHMHFW4XDUWHU ^ HMHFWTXDUWHUFRGHKHUH ` SXEOLFYRLGWXUQ&UDQN ^ WXUQFUDQNFRGHKHUH `

WXUQ&UDQN ZLOOJHWHVSHFLDOO\PHVV\EHFDXVH \RX·GKDYHWRDGGFRGHWRFKHFNWRVHHZKHWKHU \RX·YHJRWD:,11(5DQGWKHQVZLWFKWRHLWKHU WKH:,11(5VWDWHRUWKH62/'VWDWH

SXEOLFYRLGGLVSHQVH ^ GLVSHQVHFRGHKHUH `

6KDUSHQ \RXU SHQFLO ?PQKPWN \PMNWTTW_QVOLM[KZQJM\PM[\I\MWN W]ZQUXTMUMV\I\QWV' +PWW[MITT\PI\IXXTa

R)
R*
R+
IZMJ]ZQMLQV\PMUQLLTMWN IJ]VKPWN  KWVLQ\QWVIT[\I\MUMV\[

R, ?MPI^MV¼\MVKIX[]TI\MLIVa\PQVO\PI\ ^IZQM[PMZM

R- .]Z\PMZILLQ\QWV[IZMTQSMTa\WKI][MJ]O[ QV_WZSQVOKWLM



&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 13

WKHVWDWHSDWWHUQ

2ND\WKLVLVQ·WJRRG,WKLQN RXUÀUVWYHUVLRQZDVJUHDWEXW LWLVQ·WJRLQJWRKROGXSRYHUWLPHDV0LJKW\ *XPEDOONHHSVDVNLQJIRUQHZEHKDYLRU7KH UDWHRIEXJVLVMXVWJRLQJWRPDNHXVORRN EDGQRWWRPHQWLRQWKDW&(2ZLOOGULYH XVFUD]\

-RH"AW]¼ZMZQOP\IJW]\\PI\ ?MVMML\WZMNIK\WZ\PQ[KWLM[W\PI\Q\¼[MI[a \WUIQV\IQVIVLUWLQNa $QQH"?MZMITTa[PW]TL\Za\WTWKITQbM\PMJMPI^QWZNWZMIKP[\I\M[W\PI\QN  _MUISMKPIVOM[\WWVM[\I\M_MLWV¼\Z]V\PMZQ[SWN UM[[QVO]X\PMW\PMZ KWLM -RH":QOP\#QVW\PMZ_WZL[NWTTW_\PI\WT¼¹MVKIX[]TI\M_PI\^IZQM[º XZQVKQXTM $QQH"-`IK\Ta -RH"1N _MX]\MIKP[\I\M¼[JMPI^QWZQVQ\[W_VKTI[[\PMVM^MZa[\I\MR][\ QUXTMUMV\[Q\[W_VIK\QWV[ $QQH":QOP\)VLUIaJM\PM/]UJITT5IKPQVMKIVR][\LMTMOI\M\W\PM [\I\MWJRMK\\PI\ZMXZM[MV\[\PMK]ZZMV\[\I\M -RH")PaW]¼ZMOWWL"NI^WZKWUXW[Q\QWVUWZMXZQVKQXTM[I\_WZS $QQH"+]\M?MTT1¼UVW\ []ZMPW_\PQ[Q[OWQVO\W_WZSJ]\1\PQVS _M¼ZMWV\W[WUM\PQVO -RH"1_WVLMZQN \PQ[_QTT\PQ[UISMQ\MI[QMZ\WILLVM_[\I\M[' $QQH"1\PQVS[W?M¼TT[\QTTPI^M\WKPIVOMKWLMJ]\\PMKPIVOM[_QTTJM U]KPUWZMTQUQ\MLQV[KWXMJMKI][MILLQVOIVM_[\I\M_QTTUMIV_MR][\ PI^M\WILLIVM_KTI[[IVLUIaJMKPIVOMINM_\ZIV[Q\QWV[PMZMIVL\PMZM -RH"1TQSM\PM[W]VLWN \PI\4M\¼[[\IZ\PI[PQVOW]\\PQ[VM_LM[QOV

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 14

DQHZVWDWHGHVLJQ


)LUVWZH·UHJRLQJWRGHÀQHD6WDWHLQWHUIDFHWKDW FRQWDLQVDPHWKRGIRUHYHU\DFWLRQLQWKH*XPEDOO 0DFKLQH



7KHQZH·UHJRLQJWRLPSOHPHQWD6WDWHFODVVIRU HYHU\VWDWHRIWKHPDFKLQH7KHVHFODVVHVZLOOEH UHVSRQVLEOHIRUWKHEHKDYLRURIWKHPDFKLQHZKHQLW LVLQWKHFRUUHVSRQGLQJVWDWH



)LQDOO\ZH·UHJRLQJWRJHWULGRIDOORIRXUFRQGLWLRQDO FRGHDQGLQVWHDGGHOHJDWHWRWKHVWDWHFODVVWRGR WKHZRUNIRUXV

6W\WVTaIZM_MNWTTW_QVOLM[QOVXZQVKQXTM[I[aW]¼TT[MM_M¼ZMIK\]ITTaQUXTMUMV\QVO\PM ;\I\M8I\\MZV*]\_M¼TTOM\\WITT\PMWNÅKQIT;\I\M8I\\MZV[\]NN IN\MZ_MZM_WZSW]ZKWLM

1RZ ZH·UHJRLQJ SXWDOOWKHEHKDYLRURID VWDWHLQWRRQHFODVV7KDWZD\ ZH·UHORFDOL]LQJWKHEHKDYLRUDQG PDNLQJWKLQJVDORWHDVLHUWR FKDQJHDQGXQGHUVWDQG



&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 15

WKHVWDWHSDWWHUQ

,MNQVQVO\PM;\I\MQV\MZNIKM[IVLKTI[[M[ .QZ[\TM\¼[KZMI\MIVQV\MZNIKMNWZ;\I\M_PQKPITTW]Z[\I\M[QUXTMUMV\"

DSGLUHFWO\ +HUH·VWKHLQWHUIDFHIRUDOOVWDWHV7KHPHWKRGVP KLQH WKHVHDUH WRDFWLRQVWKDWFRXOGKDSSHQWRWKH*XPEDOO0DF WKHVDPHPHWKRGVDVLQWKHSUHYLRXVFRGH 

LQWHUIDFH!!


7RILJXUHRXWZKDW VWDWHVZHQHHGZHORRN DWRXUSUHYLRXVFRGH

6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

6ROG6WDWH

LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

SXEOLFFODVV*XPEDOO0DFKLQH^  ¿QDOVWDWLFLQW62/'B287  ¿QDOVWDWLFLQW12B48$57(5  ¿QDOVWDWLFLQW+$6B48$57(5  ¿QDOVWDWLFLQW62/'   LQWVWDWH 62/'B287 LQWFRXQW 

+DV4XDUWHU6WDWH

1R4XDUWHU6WDWH

6ROG2XW6WDWH

LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

DQGZHPDSHDFKVWDWH GLUHFWO\WRDFODVV

'RQ·WIRUJHWZHQHHGDQHZ´ZLQQHUµVWDWHWRR WKDWLPSOHPHQWVWKHVWDWHLQWHUIDFH:H·OOFRPH EDFNWRWKLVDIWHUZHUHLPSOHPHQWWKHILUVW YHUVLRQRIWKH*XPEDOO0DFKLQH :LQQHU6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 16

ZKDWDUHDOOWKHVWDWHV"



6KDUSHQ \RXU SHQFLO

7RLPSOHPHQWRXUVWDWHVZH¿UVWQHHGWRVSHFLI\WKHEHKDYLRURIWKHFODVVHV ZKHQHDFKDFWLRQLVFDOOHG$QQRWDWHWKHGLDJUDPEHORZZLWKWKHEHKDYLRURI HDFKDFWLRQLQHDFKFODVVZH¶YHDOUHDG\¿OOHGLQDIHZIRU\RX

*RWR+DV4XDUWHU6WDWH 7HOOWKHFXVWRPHU´
1R4XDUWHU6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

+DV4XDUWHU6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN

*RWR6ROG6WDWH

GLVSHQVH

7HOOWKHFXVWRPHU´3OHDVHZDLWZH·UHDOUHDG\JLYLQJ\RXDJXPEDOOµ

6ROG6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN

'LVSHQVHRQHJXPEDOO&KHFNQXPEHURIJXPEDOOVLI!JR WR1R4XDUWHU6WDWHRWKHUZLVHJRWR6ROG2XW6WDWH

GLVSHQVH

6ROG2XW6WDWH

7HOOWKHFXVWRPHU´7KHUHDUHQRJXPEDOOVµ

LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

:LQQHU6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

*RDKHDGDQGILOOWKLVRXWHYHQWKRXJKZH·UHLPSOHPHQWLQJLWODWHU 

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 17

WKHVWDWHSDWWHUQ

1UXTMUMV\QVOW]Z;\I\MKTI[[M[
UIDFH

PHQWWKH6WDWHLQWH

)LUVWZHQHHGWRLPSOH

:HJHWSDVVHGDUHIHUHQFHWR WKH*XPEDOO0DFKLQHWKURXJKWKH FRQVWUXFWRU:H·UHMXVWJRLQJWR VWDVKWKLVLQDQLQVWDQFHYDULDEOH

SXEOLFFODVV1R4XDUWHU6WDWHLPSOHPHQWV6WDWH^ *XPEDOO0DFKLQHJXPEDOO0DFKLQH  ,IVRPHRQHLQVHUWVDTXDUWHU SXEOLF1R4XDUWHU6WDWH *XPEDOO0DFKLQHJXPEDOO0DFKLQH ^ ZHSULQWDPHVVDJHVD\LQJWKH WKLVJXPEDOO0DFKLQH JXPEDOO0DFKLQH TXDUWHUZDVDFFHSWHGDQGWKHQ `  FKDQJHWKHPDFKLQH·VVWDWHWR SXEOLFYRLGLQVHUW4XDUWHU ^ WKH+DV4XDUWHU6WDWH 6\VWHPRXWSULQWOQ ³
:KDWZH·UHGRLQJLV LPSOHPHQWLQJWKHEHKDYLRUV WKDWDUHDSSURSULDWHIRUWKH VWDWHZH·UHLQ,QVRPHFDVHVWKLV EHKDYLRULQFOXGHVPRYLQJWKH *XPEDOO0DFKLQHWRDQHZVWDWH

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 18

VWDWHREMHFWVLQWKHJXPEDOOPDFKLQH

:M_WZSQVO\PM/]UJITT5IKPQVM *MNWZM_MNQVQ[P\PM;\I\MKTI[[M[_M¼ZMOWQVO\WZM_WZS\PM/]UJITT5IKPQVM·\PI\_Ia aW]KIV[MMPW_Q\ITTNQ\[\WOM\PMZ?M¼TT[\IZ\_Q\P\PM[\I\MZMTI\MLQV[\IVKM^IZQIJTM[ IVL[_Q\KP\PMKWLMNZWU][QVOQV\MOMZ[\W][QVO[\I\MWJRMK\["

SXEOLFFODVV*XPEDOO0DFKLQH^  ¿QDOVWDWLFLQW62/'B287  ¿QDOVWDWLFLQW12B48$57(5  ¿QDOVWDWLFLQW+$6B48$57(5  ¿QDOVWDWLFLQW62/'   LQWVWDWH 62/'B287 LQWFRXQW 

2OGFRGH

1HZFRGH

HZHXSGDWHWKH Q ,QWKH*XPEDOO0DFKLQ VVHVUDWKHUWKD FOD Z QH KH HW FRGHWRXV FRGHLVTXLWH KH 7 V JHU WH WKHVWDWLFLQ FODVVZHKDYH QH QR WL KD VLPLODUH[FHSWW HRWKHUREMHFWV LQWHJHUVDQGLQWK

SXEOLFFODVV*XPEDOO0DFKLQH^  6WDWHVROG2XW6WDWH 6WDWHQR4XDUWHU6WDWH 6WDWHKDV4XDUWHU6WDWH 6WDWHVROG6WDWH  6WDWHVWDWH VROG2XW6WDWH LQWFRXQW  

$OOWKH6WDWHREMHFWVDUHFUHDWHG DQGDVVLJQHGLQWKHFRQVWUXFWRU



7KLVQRZKROGVD  6WDWHREMHFWQRW DQLQWHJHU

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 19

WKHVWDWHSDWWHUQ

6W_TM\¼[TWWSI\\PMKWUXTM\M/]UJITT5IKPQVMKTI[[ SXEOLFFODVV*XPEDOO0DFKLQH^ WHVDJDLQ  +HUHDUHDOOWKH6WD 6WDWHVROG2XW6WDWH DQGWKH6WDWHLQVWDQFHYDULDEOH 6WDWHQR4XDUWHU6WDWH 6WDWHKDV4XDUWHU6WDWH 7KHFRXQWLQVWDQFHYDULDEOHKROGV 6WDWHVROG6WDWH WKHFRXQWRIJXPEDOOV²LQLWLDOO\WKH  PDFKLQHLVHPSW\ 6WDWHVWDWH VROG2XW6WDWH LQWFRXQW  NHVWKH  2XUFRQVWUXFWRUWDJXP EDOOVDQG I UR EH SXEOLF*XPEDOO0DFKLQH LQWQXPEHU*XPEDOOV ^ XP OQ LQLWLD HYDULDEOH QF VWD LQ VROG2XW6WDWH QHZ6ROG2XW6WDWH WKLV  DQ LQ VWRUHVLW QR4XDUWHU6WDWH QHZ1R4XDUWHU6WDWH WKLV  H6WDWH KDV4XDUWHU6WDWH QHZ+DV4XDUWHU6WDWH WKLV  ,WDOVRFUHDWHVWKHDF K VROG6WDWH QHZ6ROG6WDWH WKLV  LQVWDQFHVRQHRI WKLVFRXQW QXPEHU*XPEDOOV LI QXPEHU*XPEDOOV! ^ ,IWKHUHDUHPRUHWKDQ VWDWH QR4XDUWHU6WDWH JXPEDOOVZHVHWWKHVWDWHWRWKH ` 1R4XDUWHU6WDWH ` DUH  FWLRQV7KHVH SXEOLFYRLGLQVHUW4XDUWHU ^ 1RZIRUWKHDWRLPSOHPHQWQRZ:H VWDWHLQVHUW4XDUWHU  9(5<($6
IURPWKHWXUQ&UDQN PHWKRG

YRLGVHW6WDWH 6WDWHVWDWH ^ 7KLVPHWKRGDOORZVRWKHUREMHFWV OLNH WKLVVWDWH VWDWH ` RXU6WDWHREMHFWV WRWUDQVLWLRQWKH  PDFKLQHWRDGLIIHUHQWVWDWH YRLGUHOHDVH%DOO ^ 6\VWHPRXWSULQWOQ ³$JXPEDOOFRPHVUROOLQJRXWWKHVORW´  LI FRXQW  ^ FRXQW FRXQW 7KHPDFKLQHVXSSRUWVDUHOHDVH%DOO  ` KHOSHUPHWKRGWKDWUHOHDVHVWKHEDOODQG `

GHFUHPHQWVWKHFRXQWLQVWDQFHYDULDEOH

0RUHPHWKRGVKHUHLQFOXGLQJJHWWHUVIRUHDFK6WDWH `

7KLVLQFOXGHVPHWKRGVOLNHJHW1R4XDUWHU6WDWH IRUJHWWLQJHDFK VWDWHREMHFWDQGJHW&RXQW IRUJHWWLQJWKHJXPEDOOFRXQW \RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 20

PRUHVWDWHVIRUWKHJXPEDOOPDFKLQH

1UXTMUMV\QVOUWZM[\I\M[ 6W_\PI\aW]¼ZM[\IZ\QVO\WOM\INMMTNWZPW_\PM/]UJITT5IKPQVMIVL\PM[\I\M[ Å\\WOM\PMZTM\¼[QUXTMUMV\\PM0I[9]IZ\MZ;\I\MIVL\PM;WTL;\I\MKTI[[M[

HG HLVLQVWDQWLDWKH W :KHQWKHVWDW WR H QF UH IH UH ZHSDVVLWDKLQH7KLVLVXVHG *XPEDOO0DF QWKHPDFKLQHWRD WRWUDQVLWLR DWH GLIIHUHQWVW

SXEOLFFODVV+DV4XDUWHU6WDWHLPSOHPHQWV6WDWH^ *XPEDOO0DFKLQHJXPEDOO0DFKLQH  SXEOLF+DV4XDUWHU6WDWH *XPEDOO0DFKLQHJXPEDOO0DFKLQH ^ WKLVJXPEDOO0DFKLQH JXPEDOO0DFKLQH `  SXEOLFYRLGLQVHUW4XDUWHU ^ 6\VWHPRXWSULQWOQ ³
$QRWKHU H LQDSSURSULDW KLV DFWLRQIRUW VWDWH



DWH $QLQDSSURSULKLV W RU I RQ WL DF VWDWH 5HWXUQWKHFXVWRPHU·V TXDUWHUDQG WUDQVLWLRQEDFNWRWKH 1R4XDUWHU6WDWH :KHQWKHFUDQNLV WXUQHGZHWUDQVLWLRQ WKHPDFKLQHWRWKH 6ROG6WDWHVWDWHE\ FDOOLQJLWVVHW6WDWH  PHWKRGDQGSDVVLQJLW WKH6ROG6WDWHREMHFW 7KH6ROG6WDWHREMHFW LVUHWULHYHGE\WKH JHW6ROG6WDWH  JHWWHUPHWKRG WKHUHLVRQHRIWKHVH JHWWHUPHWKRGVIRU HDFKVWDWH 

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 21

WKHVWDWHSDWWHUQ

6W_TM\¼[KPMKSW]\\PM;WTL;\I\MKTI[[

WKH +HUHDUHDOOH LQDSSURSULDW WKLV DFWLRQVIRU VWDWH

SXEOLFFODVV6ROG6WDWHLPSOHPHQWV6WDWH^ FRQVWUXFWRUDQGLQVWDQFHYDULDEOHVKHUH  SXEOLFYRLGLQVHUW4XDUWHU ^ 6\VWHPRXWSULQWOQ ³3OHDVHZDLWZH¶UHDOUHDG\JLYLQJ\RXDJXPEDOO´  `  SXEOLFYRLGHMHFW4XDUWHU ^ 6\VWHPRXWSULQWOQ ³6RUU\\RXDOUHDG\WXUQHGWKHFUDQN´  `  SXEOLFYRLGWXUQ&UDQN ^ 6\VWHPRXWSULQWOQ ³7XUQLQJWZLFHGRHVQ¶WJHW\RXDQRWKHUJXPEDOO´  `  SXEOLFYRLGGLVSHQVH ^ JXPEDOO0DFKLQHUHOHDVH%DOO  LI JXPEDOO0DFKLQHJHW&RXQW ! ^ JXPEDOO0DFKLQHVHW6WDWH JXPEDOO0DFKLQHJHW1R4XDUWHU6WDWH  `HOVH^ 6\VWHPRXWSULQWOQ ³2RSVRXWRIJXPEDOOV´  JXPEDOO0DFKLQHVHW6WDWH JXPEDOO0DFKLQHJHW6ROG2XW6WDWH  ` ` `

UHWKH $QGKHUH·VZKH  QV JL UHDOZRUNEH

 OG6WDWHZKLFK :H·UHLQWKHXV6RWRPHUSDLG6R PHDQVWKHFHGWRDVNWKH ZHILUVWQH UHOHDVHDJXPEDOO PDFKLQHWR

KDW WKHPDFKLQHZ HLWKHU 7KHQZHDVNFR QG D LV W XQ WKHJXPEDOO WKH1R4XDUWHU6WDWH WUDQVLWLRQWR XW6WDWH RUWKH6ROG2

YiX`e gfn\i /RRNEDFNDWWKH*XPEDOO0DFKLQHLPSOHPHQWDWLRQ,IWKHFUDQNLVWXUQHGDQGQRWVXFFHVVIXO VD\ WKHFXVWRPHUGLGQ¶WLQVHUWDTXDUWHU¿UVW ZHFDOOGLVSHQVHDQ\ZD\HYHQWKRXJKLW¶VXQQHFHVVDU\ +RZPLJKW\RX¿[WKLV"

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 22

\RXUWXUQWRLPSOHPHQWDVWDWH

6KDUSHQ \RXU SHQFLO

:HKDYHRQHUHPDLQLQJFODVVZHKDYHQ¶WLPSOHPHQWHG6ROG2XW6WDWH :K\GRQ¶W\RXLPSOHPHQWLW"7RGRWKLVFDUHIXOO\WKLQNWKURXJKKRZ WKH*XPEDOO0DFKLQHVKRXOGEHKDYHLQHDFKVLWXDWLRQ&KHFN\RXU DQVZHUEHIRUHPRYLQJRQ

SXEOLFFODVV6ROG2XW6WDWHLPSOHPHQWV6WDWH^ *XPEDOO0DFKLQHJXPEDOO0DFKLQH  SXEOLF6ROG2XW6WDWH *XPEDOO0DFKLQHJXPEDOO0DFKLQH ^

`  SXEOLFYRLGLQVHUW4XDUWHU ^

`  SXEOLFYRLGHMHFW4XDUWHU ^

` SXEOLFYRLGWXUQ&UDQN ^

` SXEOLFYRLGGLVSHQVH ^

` `



&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 23

WKHVWDWHSDWWHUQ

4M\¼[\ISMITWWSI\_PI\_M¼^MLWVM[WNIZ .WZ[\IZ\MZ[aW]VW_PI^MI/]UJITT5IKPQVMQUXTMUMV\I\QWV\PI\Q[[\Z]K\]ZITTaY]Q\MLQNNMZMV\NZWUaW]Z ÅZ[\^MZ[QWVIVLaM\N]VK\QWVITTaQ\Q[M`IK\Ta\PM[IUM*a[\Z]K\]ZITTaKPIVOQVO\PMQUXTMUMV\QWVaW]¼^M"

ƒ 4WKITQbML\PMJMPI^QWZWN MIKP[\I\MQV\WQ\[W_VKTI[[ ƒ :MUW^MLITT\PM\ZW]JTM[WUMLI[\I\MUMV\[\PI\_W]TLPI^MJMMVLQNÅK]T\\WUIQV\IQV ƒ +TW[MLMIKP[\I\MNWZUWLQÅKI\QWVIVLaM\TMN\\PM/]UJITT5IKPQVMWXMV\WM`\MV[QWVJa ILLQVOVM_[\I\MKTI[[M[IVL_M¼TTLW\PQ[QVI[MKWVL

ƒ +ZMI\MLIKWLMJI[MIVLKTI[[[\Z]K\]ZM\PI\UIX[U]KPUWZMKTW[MTa\W\PM5QOP\a/]UJITT LQIOZIUIVLQ[MI[QMZ\WZMILIVL]VLMZ[\IVL 6W_TM\¼[TWWSITQ\\TMUWZMI\\PMN]VK\QWVITI[XMK\WN _PI\_MLQL"

ROGVDQ 0DFKLQHQRZK  VV OD 7KH*XPEDOOHD F WH FK6WD LQVWDQFHRI

/]UJ ITT5 IKPQVM;\ I\M

[

 1 R4XDUWHU

*X PE

QH

FXUUHQWVWDWH

L DOO0DFK

 + D

V4XDUWH

U

  6ROG

7KHFXUUHQWVWDWHRIWKH PDFKLQHLVDOZD\VRQHRI WKHVHFODVVLQVWDQFHV  6 ROG2XW

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 24

VWDWHWUDQVLWLRQV

:KHQDQDFWLRQLVFDOOHGLWLV GHOHJDWHGWRWKHFXUUHQWVWDWH

/]U JITT5IKPQVM;\ I\M[

WXUQ&UDQN

WXUQ&UDQN

 1 R4XDUWHU

FXUUHQWVWDWH  + D

QH

*X PE

L DOO0DFK

V4XDUWH

U

  6ROG

,QWKLVFDVHWKHWXUQ&UDQN  PHWKRGLVEHLQJFDOOHGZKHQWKH PDFKLQHLVLQWKH+DV4XDUWHU VWDWHVRDVDUHVXOWWKHPDFKLQH WUDQVLWLRQVWRWKH6ROGVWDWH

 6 ROG2XW

75$16,7,217262/'67$7(

QWHUV 7KHPDFKLQHHWHDQGD WD V OG 6R WKH SHQVHG JXPEDOOLVGLV

/]U JITT5IKPQVM;\ I\M[

GLVSHQVH

FXU

UH Q WVW

QH

*X PE

L DOO0DFK

DWH

 1 R4XDUWHU

 + D

V4XDUWH

U

  6ROG

PRUHJXPEDOOV DQGWKHQWKH PDFKLQHZLOO HLWKHUJRWR WKH6ROG2XW RU1R4XDUWHU VWDWHGHSHQGLQJ RQWKHQXPEHURI JXPEDOOVUHPDLQLQJ LQWKHPDFKLQH

VROGRXW  6 ROG2XW



&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 25

WKHVWDWHSDWWHUQ

%HKLQGWKH6FHQHV 6HOI*XLGHG7RXU

6KDUSHQ \RXU SHQFLO

7UDFHWKHVWHSVRIWKH*XPEDOO0DFKLQHVWDUWLQJZLWKWKH1R4XDUWHUVWDWH$OVRDQQRWDWHWKHGLDJUDPZLWKDFWLRQV DQGRXWSXWRIWKHPDFKLQH)RUWKLVH[HUFLVH\RXFDQDVVXPHWKHUHDUHSOHQW\RIJXPEDOOVLQWKHPDFKLQH



 /]U JITT5 IKPQVM;\I\M[

/]U JITT5 IKPQVM;\I\M[

L DOO0DFK



 + D

V4XDUWH

 1 R4XDUWHU

U

*X PE

QH

*X PE

QH

 1 R4XDUWHU

L DOO0DFK

  6ROG

 6 ROG2XW

 6 ROG2XW

/]U JITT5 IKPQVM;\I\M[



 + D

V4XDUWH

U

U

/]U JITT5 IKPQVM;\I\M[

 1 R4XDUWHU

*X PE

QH

QH

L DOO0DFK

V4XDUWH

  6ROG

 1 R4XDUWHU

*X PE

 + D

L DOO0DFK

 + D

V4XDUWH

  6ROG

  6ROG

 6 ROG2XW

 6 ROG2XW

U

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 26

VWDWHSDWWHUQGH¿QHG



7KH6WDWHLQWHUIDFHGHILQHVDFRPPRQ LQWHUIDFHIRUDOOFRQFUHWHVWDWHVWKH VWDWHVDOOLPSOHPHQWWKHVDPHLQWHUIDFH VRWKH\DUHLQWHUFKDQJHDEOH

7KH&RQWH[WLVWKHFODVVWKDW FDQKDYHDQXPEHURILQWHUQDO VWDWHV,QRXUH[DPSOHWKH *XPEDOO0DFKLQHLVWKH&RQWH[W

6WDWH

&RQWH[W UHTXHVW

VWDWHKDQGOH

KDQGOH

&RQFUHWH6WDWH$ KDQGOH

:KHQHYHUWKHUHTXHVW  LVPDGHRQWKH&RQWH[W LWLVGHOHJDWHGWRWKH  VWDWHWRKDQGOH



&RQFUHWH6WDWH% KDQGOH

0DQ\FRQFUHWH  VWDWHVDUHSRVVLE OH

KH &RQFUHWH6WDWHVKDQGOHUHTXHVWVIURPWLWV &RQWH[W(DFK&RQFUHWH6WDWHSURYLGHV KLV RZQLPSOHPHQWDWLRQIRUDUHTXHVW,QW V ZD\ZKHQWKH&RQWH[WFKDQJHVVWDWHLW EHKDYLRUZLOOFKDQJHDVZHOO

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 27

WKHVWDWHSDWWHUQ

:DLWDVHF IURPZKDW,UHPHPEHU RIWKH6WUDWHJ\3DWWHUQ WKLVFODVVGLDJUDPLV (;$&7/<WKHVDPH

AW]¼^MOW\IOWWLMaM AM[\PMKTI[[LQIOZIU[IZMM[[MV\QITTa\PM [IUMJ]\\PM\_WXI\\MZV[LQNNMZQV\PMQZQV\MV\ ?Q\P\PM;\I\M8I\\MZV_MPI^MI[M\WN JMPI^QWZ[MVKIX[]TI\MLQV [\I\MWJRMK\[#I\IVa\QUM\PMKWV\M`\Q[LMTMOI\QVO\WWVMWN \PW[M [\I\M[7^MZ\QUM\PMK]ZZMV\[\I\MKPIVOM[IKZW[[\PM[M\WN [\I\M WJRMK\[\WZMÆMK\\PMQV\MZVIT[\I\MWN \PMKWV\M`\[W\PMKWV\M`\¼[ JMPI^QWZKPIVOM[W^MZ\QUMI[_MTT
\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 28

T DDERXWWKHVWDWHSDWWHUQ

there are no

Q:

Dumb Questions XQLTXHLQVWDQFHSHUFRQWH[W

,QWKH*XPEDOO0DFKLQHWKHVWDWHVGHFLGH ZKDWWKHQH[WVWDWHVKRXOGEH'RWKH&RQFUHWH6WDWHV DOZD\VGHFLGHZKDWVWDWHWRJRWRQH[W"

A:

1RQRWDOZD\V7KHDOWHUQDWLYHLVWROHWWKH&RQWH[W GHFLGHRQWKHIORZRIVWDWHWUDQVLWLRQV $VDJHQHUDOJXLGHOLQHZKHQWKHVWDWHWUDQVLWLRQVDUHIL[HG WKH\DUHDSSURSULDWHIRUSXWWLQJLQWKH&RQWH[WKRZHYHU ZKHQWKHWUDQVLWLRQVDUHPRUHG\QDPLFWKH\DUHW\SLFDOO\ SODFHGLQWKHVWDWHFODVVHVWKHPVHOYHV IRULQVWDQFHLQWKH *XPEDOO0DFKLQHWKHFKRLFHRIWKHWUDQVLWLRQWR1R4XDUWHURU 6ROG2XWGHSHQGHGRQWKHUXQWLPHFRXQWRIJXPEDOOV  7KHGLVDGYDQWDJHRIKDYLQJVWDWHWUDQVLWLRQVLQWKHVWDWH FODVVHVLVWKDWZHFUHDWHGHSHQGHQFLHVEHWZHHQWKHVWDWH FODVVHV,QRXULPSOHPHQWDWLRQRIWKH*XPEDOO0DFKLQH ZHWULHGWRPLQLPL]HWKLVE\XVLQJJHWWHUPHWKRGVRQWKH &RQWH[WUDWKHUWKDQKDUGFRGLQJH[SOLFLWFRQFUHWHVWDWH FODVVHV 1RWLFHWKDWE\PDNLQJWKLVGHFLVLRQ\RXDUHPDNLQJD GHFLVLRQDVWRZKLFKFODVVHVDUHFORVHGIRUPRGLILFDWLRQ ²WKH&RQWH[WRUWKHVWDWHFODVVHV²DVWKHV\VWHPHYROYHV

Q:

'RFOLHQWVHYHULQWHUDFWGLUHFWO\ZLWKWKH VWDWHV"

A:

1R7KHVWDWHVDUHXVHGE\WKH&RQWH[WWR UHSUHVHQWLWVLQWHUQDOVWDWHDQGEHKDYLRUVRDOOUHTXHVWV WRWKHVWDWHVFRPHIURPWKH&RQWH[W&OLHQWVGRQ·WGLUHFWO\ FKDQJHWKHVWDWHRIWKH&RQWH[W,WLVWKH&RQWH[W·VMRE WRRYHUVHHLWVVWDWHDQG\RXGRQ·WXVXDOO\ZDQWDFOLHQW FKDQJLQJWKHVWDWHRID&RQWH[WZLWKRXWWKDW&RQWH[W·V NQRZOHGJH

Q:

,I,KDYHORWVRILQVWDQFHVRIWKH&RQWH[WLQP\ DSSOLFDWLRQLVLWSRVVLEOHWRVKDUHWKHVWDWHREMHFWV DFURVVWKHP"

A:




7RVKDUH\RXUVWDWHV\RX·OOW\SLFDOO\DVVLJQHDFKVWDWHWRD VWDWLFLQVWDQFHYDULDEOH,I\RXUVWDWHQHHGVWRPDNHXVHRI PHWKRGVRULQVWDQFHYDULDEOHVLQ\RXU&RQWH[W\RX·OODOVR KDYHWRJLYHLWDUHIHUHQFHWRWKH&RQWH[WLQHDFKKDQGOHU  PHWKRG

Q:

,WVHHPVOLNHXVLQJWKH6WDWH3DWWHUQDOZD\V LQFUHDVHVWKHQXPEHURIFODVVHVLQRXUGHVLJQV/RRN KRZPDQ\PRUHFODVVHVRXU*XPEDOO0DFKLQHKDG WKDQWKHRULJLQDOGHVLJQ

A:


Q:

7KH6WDWH3DWWHUQFODVVGLDJUDPVKRZV WKDW6WDWHLVDQDEVWUDFWFODVV%XWGLGQ·W\RXXVH DQLQWHUIDFHLQWKHLPSOHPHQWDWLRQRIWKHJXPEDOO PDFKLQH·VVWDWH"

A:


&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 29

WKHVWDWHSDWWHUQ

?M[\QTTVMML\WNQVQ[P\PM/]UJITTQVOIUM :MUMUJMZ_M¼ZMVW\LWVMaM\?M¼^MOW\IOIUM\WQUXTMUMV\#J]\VW_\PI\_M¼^MOW\\PM;\I\M 8I\\MZVQUXTMUMV\MLQ\[PW]TLJMIJZMMbM.QZ[\_MVMML\WILLI[\I\M\W\PM/]UJITT5IKPQVMKTI[[" SXEOLFFODVV*XPEDOO0DFKLQH^  6WDWHVROG2XW6WDWH 6WDWHQR4XDUWHU6WDWH 6WDWHKDV4XDUWHU6WDWH 6WDWHVROG6WDWH 6WDWHZLQQHU6WDWH  6WDWHVWDWH VROG2XW6WDWH LQWFRXQW  PHWKRGVKHUH `

$OO\RXQHHGWRDGGKHUHLVWKH QHZ:LQQHU6WDWHDQGLQLWLDOL]H LWLQWKHFRQVWUXFWRU

'RQ·WIRUJHW\RXDOVRKDYH WRDGGDJHWWHUPHWKRGIRU :LQQHU6WDWHWRR

6W_TM\¼[QUXTMUMV\\PM?QVVMZ;\I\MKTI[[Q\[MTNQ\¼[ZMUIZSIJTa[QUQTIZ\W\PM;WTL;\I\MKTI[[" SXEOLFFODVV:LQQHU6WDWHLPSOHPHQWV6WDWH^  H LQVWDQFHYDULDEOHVDQGFRQVWUXFWRU -XVWOLNH6ROG6WDW  LQVHUW4XDUWHUHUURUPHVVDJH  HMHFW4XDUWHUHUURUPHVVDJH +HUHZHUHOHDVHWZRJXPEDOOVDQGWKHQ KH  HLWKHUJRWRWKH1R4XDUWHU6WDWHRUW WXUQ&UDQNHUURUPHVVDJH 6ROG2XW6WDWH  SXEOLFYRLGGLVSHQVH ^ 6\VWHPRXWSULQWOQ ³<28¶5($:,11(5


Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 30

LPSOHPHQWLQJWKHLQJDPH

.QVQ[PQVO\PMOIUM ?M¼^MR][\OW\WVMUWZMKPIVOM\WUISM"_MVMML\WQUXTMUMV\\PMZIVLWU KPIVKMOIUMIVLILLI\ZIV[Q\QWV\W\PM?QVVMZ;\I\M?M¼ZMOWQVO\WILLJW\P\W \PM0I[9]IZ\MZ;\I\M[QVKM\PI\Q[_PMZM\PMK][\WUMZ\]ZV[\PMKZIVS"

SXEOLFFODVV+DV4XDUWHU6WDWHLPSOHPHQWV6WDWH^ 5DQGRPUDQGRP:LQQHU QHZ5DQGRP 6\VWHPFXUUHQW7LPH0LOOLV  *XPEDOO0DFKLQHJXPEDOO0DFKLQH  SXEOLF+DV4XDUWHU6WDWH *XPEDOO0DFKLQHJXPEDOO0DFKLQH ^ WKLVJXPEDOO0DFKLQH JXPEDOO0DFKLQH `  SXEOLFYRLGLQVHUW4XDUWHU ^ 6\VWHPRXWSULQWOQ ³
)LUVWZHDGGD UDQGRPQXPEHU JHQHUDWRUWR  JHQHUDWHWKH FKDQFHRIZLQQLQJ

WKHQZHGHWHUPLQH LIWKLVFXVWRPHUZRQ

,IWKH\ZRQDQGWKHUH·V HQRXJKJXPEDOOVOHIWIRU WKHPWRJHWWZRZH JRWRWKH:LQQHU6WDWH RWKHUZLVHZHJRWRWKH 6ROG6WDWH MXVWOLNHZH DOZD\VGLG 

?W_\PI\_I[XZM\\a[QUXTM\WQUXTMUMV\ ?MR][\ILLMLIVM_[\I\M\W\PM/]UJITT5IKPQVM IVL\PMVQUXTMUMV\MLQ\)TT_MPIL\WLWNZWU\PMZM_I[\WQUXTMUMV\W]ZKPIVKMOIUMIVL \ZIV[Q\QWV\W\PMKWZZMK\[\I\M1\TWWS[TQSMW]ZVM_KWLM[\ZI\MOaQ[XIaQVOWNN



&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 31

WKHVWDWHSDWWHUQ

,MUWNWZ\PM+-7WN5QOP\a/]UJITT1VK
·WFKDQJHGDWDOO 7KLVFRGHUHDOO\KDVQ DELW LW G HQH UW ZHMXVWVKR 2QFHDJDLQVWDUWZLWKDJXPEDOO

SXEOLFFODVV*XPEDOO0DFKLQH7HVW'ULYH^ PDFKLQHZLWKJXPEDOOV SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ *XPEDOO0DFKLQHJXPEDOO0DFKLQH QHZ*XPEDOO0DFKLQH   6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN  JXPEDOO0DFKLQHLQVHUW4XDUWHU  JXPEDOO0DFKLQHWXUQ&UDQN 

:HZDQWWRJHWDZLQQLQJVWDWH VRZHMXVWNHHSSXPSLQJLQWKRVH TXDUWHUVDQGWXUQLQJWKHFUDQN:H SULQWRXWWKHVWDWHRIWKHJXPEDOO PDFKLQHHYHU\VRRIWHQ

6\VWHPRXWSULQWOQ JXPEDOO0DFKLQH  ` `

HDPLVZDLWLQJ 7KHZKROHHQJLQHHULQJW URRPWRVHH FH UHQ IH FRQ RXWVLGHWKH QEDVHG WHU DW H3 LIWKHQHZ6WDW RUN RZ JW RLQ VJ QL VLJ GH

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 32

WHVWLQJWKHJXPEDOOPDFKLQH


)LOH(GLW:LQGRZ+HOS:KHQLVDJXPEDOODMDZEUHDNHU"

MDYD*XPEDOO0DFKLQH7HVW'ULYH 0LJKW\*XPEDOO,QF -DYDHQDEOHG6WDQGLQJ*XPEDOO0RGHO ,QYHQWRU\JXPEDOOV 0DFKLQHLVZDLWLQJIRUTXDUWHU
\RUZKDW" *HHGLGZHJHWOXFN&(2ZH KH RW RW HP G RXU ,Q H ZRQQRWRQFHEXWWZLF


there are no

Dumb Questions

Q: A:

:K\GRZHQHHGWKH:LQQHU6WDWH"&RXOGQ·WZHMXVWKDYHWKH6ROG6WDWHGLVSHQVHWZRJXPEDOOV"

7KDW·VDJUHDWTXHVWLRQ6ROG6WDWHDQG:LQQHU6WDWHDUHDOPRVWLGHQWLFDOH[FHSWWKDW:LQQHU6WDWHGLVSHQVHVWZR JXPEDOOVLQVWHDGRIRQH


&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 33

WKHVWDWHSDWWHUQ

%UDYR*UHDWMRE JDQJ2XUVDOHVDUHDOUHDG\JRLQJ WKURXJKWKHURRIZLWKWKHQHZJDPH
;IVQ\aKPMKS AM[\PM+-7WN 5QOP\a/]UJITTXZWJIJTaVMML[I[IVQ\aKPMKSJ]\\PI\¼[ VW\_PI\_M¼ZM\ITSQVOIJW]\PMZM4M\¼[\PQVS\PZW]OP[WUMI[XMK\[WN \PM /]UJITT5IKPQVM\PI\_MUQOP\_IV\\W[PWZM]XJMNWZM_M[PQX\PMOWTL^MZ[QWV"

ƒ ?M¼^MOW\ITW\WN L]XTQKI\MKWLMQV\PM;WTLIVL?QVVQVO [\I\M[IVL_MUQOP\_IV\\WKTMIV\PW[M]X0W__W]TL_M LWQ\'?MKW]TLUISM;\I\MQV\WIVIJ[\ZIK\KTI[[IVLJ]QTLQV [WUMLMNI]T\JMPI^QWZNWZ\PMUM\PWL[#IN\MZITTMZZWZUM[[IOM[ TQSM¹AW]ITZMILaQV[MZ\MLIY]IZ\MZºIZMV¼\OWQVO\WJM[MMV Ja\PMK][\WUMZ;WITT¹MZZWZZM[XWV[MºJMPI^QWZKW]TLJM OMVMZQKIVLQVPMZQ\MLNZWU\PMIJ[\ZIK\;\I\MKTI[[

ƒ
'DPPLW-LP ,·PDJXPEDOO PDFKLQHQRWD FRPSXWHU

\]ZVML_PMV\PMZMQ[VWY]IZ\MZ?PQTM\PMUIKPQVMWXMZI\M[ KWZZMK\TaIVLLWM[V¼\LQ[XMV[M]VTM[[Q\¼[QV\PMZQOP\[\I\M_M KW]TLMI[QTaÅ`\PQ[JaPI^QVO\]ZV+ZIVSZM\]ZVIJWWTMIV WZJaQV\ZWL]KQVOM`KMX\QWV[?PQKPLWaW]\PQVSQ[IJM\\MZ [WT]\QWV'

ƒ )TTWN \PMQV\MTTQOMVKMNWZ\PM[\I\M\ZIV[Q\QWV[Q[QV\PM;\I\M KTI[[M[?PI\XZWJTMU[UQOP\\PQ[KI][M'?W]TL_M_IV\\W UW^M\PI\TWOQKQV\W\PM/]UJITT5IKPQVM'?PI\_W]TLJM \PMIL^IV\IOM[IVLLQ[IL^IV\IOM[WN \PI\'

ƒ ?QTTaW]JMQV[\IV\QI\QVOITW\WN /]UJITT5IKPQVMWJRMK\[' 1N [WaW]UIa_IV\\WUW^M\PM[\I\MQV[\IVKM[QV\W[\I\QK QV[\IVKM^IZQIJTM[IVL[PIZM\PMU?PI\KPIVOM[_W]TL\PQ[ ZMY]QZM\W\PM/]UJITT5IKPQVMIVL\PM;\I\M['

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 34

¿UHVLGHFKDWVVWDWHDQGVWUDWHJ\


;\ZI\MOa

;\I\M

0MaJZW,QLaW]PMIZ1_I[QV+PIX\MZ' AMIP_WZLQ[LMÅVQ\MTaOM\\QVOIZW]VL 1_I[R][\W^MZOQ^QVO\PM
AM[WN KW]Z[M6W_\PQVSIJW]\PW_1_WZS#Q\¼[ \W\ITTaLQNNMZMV\

;WZZaaW]¼ZMOWQVO\WPI^M\WM`XTIQV\PI\ 

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 35

WKHVWDWHSDWWHUQ

;\ZI\MOa

;\I\M 7SIa_PMVUa+WV\M`\WJRMK\[OM\KZMI\ML1UIa \MTT\PMU\PM[\I\M\W[\IZ\QVJ]\\PMV\PMaKPIVOM \PMQZW_V[\I\MW^MZ\QUM

0MaKWUMWV1KIVKPIVOMJMPI^QWZI\Z]V\QUM \WW#\PI\¼[_PI\KWUXW[Q\QWVQ[ITTIJW]\ ;]ZMaW]KIVJ]\\PM_Ia1_WZSQ[J]QT\IZW]VL LQ[KZM\M[\I\M[#Ua+WV\M`\WJRMK\[KPIVOM[\I\M W^MZ\QUMIKKWZLQVO\W[WUM_MTTLMÅVML[\I\M \ZIV[Q\QWV[1VW\PMZ_WZL[KPIVOQVOJMPI^QWZQ[ J]QT\QV\WUa[KPMUM·Q\¼[PW_1_WZS ?MTT1ILUQ\1LWV¼\MVKW]ZIOMUaWJRMK\[\WPI^M I_MTTLMÅVML[M\WN \ZIV[Q\QWV[JM\_MMV[\I\M[1V NIK\1\aXQKITTaTQSM\WKWV\ZWT_PI\[\ZI\MOaUa WJRMK\[IZM][QVO 4WWS_M¼^MITZMILa[IQL_M¼ZMITQSMQV[\Z]K\]ZMJ]\ _PI\_MLWQ[Y]Q\MLQNNMZMV\QVQV\MV\.IKMQ\\PM _WZTLPI[][M[NWZJW\PWN ][ AMIPaMIPSMMXTQ^QVOaW]ZXQXMLZMIU[JZW\PMZ AW]IK\TQSMaW]¼ZMIJQOXI\\MZVTQSMUMJ]\KPMKS Q\W]\"1¼UQV+PIX\MZ#\PMa[\]KSaW]_IaW]\QV +PIX\MZ1UMIVPW_UIVaXMWXTMIZMIK\]ITTa OWQVO\WZMIL\PQ[NIZ'

)ZMaW]SQLLQVO'

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 36

UH¿OOH[HUFLVH

?MITUW[\NWZOW\

F JRWWRSXWLQWKHRULJLQDOVSH 7KHUH·VRQHWUDQVLWLRQZHIRU LW·VRXWRI KHQ QHZ DFKL DOOP XPE KHJ LOOW UHI ZHQHHGDZD\WR LWIRUXV" LDJUDPFDQ\RXLPSOHPHQW JXPEDOOV+HUH·VWKHQHZG PDFKLQHZH EDOO JXP WKH RI UHVW WKH RQ MRE
0LJKW\*XPEDOO,QF 7HERETHE'UMBALL-ACHINE IS.EVER(ALF%MPTY

UHILOO

1RWHU 4XDU JXP JXPED

OOV  



EDO OV!



WXU

+DVW HU 4XDU

UDQ

N

XDUWHU

QV F

HMHFWVT

LQVHUWVT XDUWHU

 2XWRIDOOV E P X *

GLVSHQVOOH JXPED

OO *XPED 6ROG

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 37

WKHVWDWHSDWWHUQ

6KDUSHQ \RXU SHQFLO 7ENEEDYOUTOWRITETHEREFILL METHODFORTHE'UMBALLMACHINE)THASONE ARGUMENT´THENUMBEROFGUMBALLSYOUREADDINGTOTHEMACHINE´ANDSHOULD UPDATETHEGUMBALLMACHINECOUNTANDRESETTHEMACHINESSTATE


\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 38

ZKRGRHVZKDW"

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"

3DWWHUQ State



'HVFULSWLRQ Encapsulate interchangeable behaviors and use delegation to decide which behavior to use

Strategy

Subclasses decide how to implement steps in an algorithm

Template Method

Encapsulate state-based behavior and delegate behavior to the current state

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 39

WKHVWDWHSDWWHUQ


:MDD=LHGAFLK

ƒ 7KH6WDWH3DWWHUQDOORZVDQ

V 223ULQFYLSDULHOHV

REMHFWWRKDYHPDQ\GLIIHUHQW EHKDYLRUVWKDWDUHEDVHGRQLWV LQWHUQDOVWDWH

22%DVLFV

$EVWUDFWLRQ RQ (QFDSVXODWL ZKDW (QFDSVXODWH H QF WD UL P KH 3RO\PRUSKLV VLWLRQRYHULQ )DYRUFRPSR  RW ,QKHULWDQFH LQWHUIDFHVQ 3URJUDPWR RQV LPSOHPHQWDWL GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW RE Q EHWZHH RUH[WHQVLRQ OGEHRSHQI &ODVVHVVKRXIRUPRGLILFDWLRQ EXWFORVHG 'RQRW EVWUDFWLRQV 'HSHQGRQDFRQFUHWHFODVVHV GHSHQGRQ V \RXUIULHQG 2QO\WDONWR RX O\ DO F ·OO ZH V 'RQ·WFDOOX RQHUHDVRQ GKDYHRQO\ $FODVVVKRXO WRFKDQJH

223DWWHLQUHVQDILVIQHDPVLO\DRRQIHDOJRWRULWKPPVDQDO\

ƒ 8QOLNHDSURFHGXUDOVWDWH PDFKLQHWKH6WDWH3DWWHUQ UHSUHVHQWVVWDWHDVDIXOOEORZQ FODVV

ƒ 7KH&RQWH[WJHWVLWVEHKDYLRU E\GHOHJDWLQJWRWKHFXUUHQW VWDWHREMHFWLWLVFRPSRVHG ZLWK

 QFLSOHVWKLV 1RQHZSUL KDWJLYHV\RX FKDSWHUWHHSRQWKHP WLPHWRVO

+HUH·VRXUQHZ SDWWHUQ,I\RX·UH PDQDJLQJVWDWHLQ DFODVVWKH6WDWH 3DWWHUQJLYHV\RX DWHFKQLTXHIRU HQFDSVXODWLQJWKDW VWDWH

RQ YLWGHDQ GUHIGH GLVR PWLW WDG DFMHHVRKFW DN 3URKD 6WUD $QWW QG 2EWHVHJ\HFWHURYH UMHRKH\KHVFWGDWH LFVLQDOIHO\DQ UQHZD) HH HI LWODP DFKWUERDRHWFW DP\REFW LWR HDF\  GOJDP DOLOL' RU\Q XODQG W HVKP K WVRE Q W WD HW OH SH V D HQFDGHSV' ERQHDHQV)UVW HV I HJ 0 WR $ \ QJ QJ DW V U LH MH WL WU KD R DV 6 HD OLW RE F LW FW EL  KDV W GVKRFWRQXWO\EX Q H FU FW VH D VL OH EO D U WH MH X LE FO QJ DW IR RE GD QJ VS H[ WL D LW H H WK XS KD IO UH Z H V DFV\DFSU DGHD QW XUMHFWV[W H OLH U LQWHZUFKHQLQRQWHUIRU W LGFRLI R (DQQVREG IR LHFU RPW HRY DOUHSRTXLQHV VVGLORWVQJ Q IUOH W ODHQVJWH RW ED HQ F WOUI Q H HG HQ FK UH WH DW J RU HS KL VX QG LQ D D RU Z LQ I G SH DS WV HF 6 GH H QJ GH RU QF HQ YL VH ' LG (UR DVKRVXGODOHWHLQWVVJD\RUHXTXHVW WHLYG S FOFH G YDU\GHLQSHQG HFOHW HV UHUQODOHDW HW VP VVKHXE DFDVQDHFRQGVLQGFUWR ODRVW P WR EF H DQ WW VX DS OH LU & W LQ QF O\ \ 0 H ( DO  HE W U\ RQ WH LF  HU QJ XWHVW DO UHHQTX HFLIDO\LDQLWDV LQJ DWRS)MHWDFLFWHU DHU\R WWK LRHUQHE DXWRPVSDW V WW OHODKH $HVQHGVRE WH GLII D VXWK LW ZWR\ DWL\FFDW WLFO DW (QWQFVDS HQ DOWHULWV DQH LHWK IXQFWLLQRQVWRI FW HU H \R VW MH RXW G LQ W II J RE QG D L] LQ U GL FW Q F D HU K MH D IH WW V D LW OH HW ) RE VW DV GH Z Q XH D\ HT QW DFODVVSDUDP PHWQWTXHU OORHUUVZHE HQFWKDQJHV QG WH L]MHHHHFW  RUFOOLH$WKRJ HU D WD V W II V RE HX D VW GL DO XH K 6  UQ D UD  HT LW WV DV HV WH SD Z UVVRQLQV RJ O QW WL LW LH V RU Q UD VXEFODVVUHTXHV HVWVPKD FO H KH SH H HX R Z L] HURUOH HWTX YLDE V XH WRVWFVKDDQJQGH LW XQGR RQHTU TXSDWUDEH UHRU SSWLUHD SH OUDRJ RZRU VXSS LOOD DE HXOHWH GR HF TX  XQ EM WV W R V HV RU KH RQ TX 7 SS WL UH VX SHUD V XQGRDEOHR DVW VXSSFORU

ƒ %\HQFDSVXODWLQJHDFKVWDWH LQWRDFODVVZHORFDOL]HDQ\ FKDQJHVWKDWZLOOQHHGWREH PDGH

ƒ 7KH6WDWHDQG6WUDWHJ\ 3DWWHUQVKDYHWKHVDPHFODVV GLDJUDPEXWWKH\GLIIHULQ LQWHQW

ƒ 6WUDWHJ\3DWWHUQW\SLFDOO\ FRQILJXUHV&RQWH[WFODVVHV ZLWKDEHKDYLRURUDOJRULWKP

ƒ 6WDWH3DWWHUQDOORZVD&RQWH[W WRFKDQJHLWVEHKDYLRUDVWKH VWDWHRIWKH&RQWH[WFKDQJHV

ƒ 6WDWHWUDQVLWLRQVFDQEH FRQWUROOHGE\WKH6WDWHFODVVHV RUE\WKH&RQWH[WFODVVHV

ƒ 8VLQJWKH6WDWH3DWWHUQZLOO W\SLFDOO\UHVXOWLQDJUHDWHU QXPEHURIFODVVHVLQ\RXU GHVLJQ

ƒ 6WDWHFODVVHVPD\EHVKDUHG DPRQJ&RQWH[WLQVWDQFHV

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 40

H[HUFLVHVROXWLRQV

([HUFLVHVROXWLRQV

JXPEDOOV 

WXU KDYH QVFUDQ DZ NZH LQQHU  

JXPED

OOV!



7HERETHE'UMBALL-ACHINE IS.EVER(ALF%MPTY

G JXP LVSHQ EDO VH OV 

0LJKW\*XPEDOO,QF

:LQQHU



JXP

EDO

V 



QV F

OV!



UDQ

N QR

ZLQ

QHU

HMHFWV

1R U 4XDUWH JXPED OO

WXU

+DVWHU 4XDU

TXDUWHU

LQVHUWV T

XDUWHU

2XWRIDOO V *XPE

GLVSHQVOOH JXPED

OO *XPED 6ROG

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 41

WKHVWDWHSDWWHUQ

([HUFLVHVROXWLRQV 6KDUSHQ \RXU SHQFLO *I[MLWVW]ZÅZ[\QUXTMUMV\I\QWV_PQKPWN \PMNWTTW_QVOIXXTa' +PWW[MITT\PI\IXXTa

R)
R*
R+
IZMJ]ZQMLQV\PMUQLLTMWN IJ]VKPWN  KWVLQ\QWVITKWLM

R, ?MPI^MV¼\MVKIX[]TI\MLIVa\PQVO\PI\ ^IZQM[PMZM

R- .]Z\PMZILLQ\QWV[IZMTQSMTa\WKI][MJ]O[ QV_WZSQVOKWLM

6KDUSHQ \RXU SHQFLO

:HKDYHRQHUHPDLQLQJFODVVZHKDYHQ¶WLPSOHPHQWHG6ROG2XW6WDWH :K\GRQ¶W\RXLPSOHPHQWLW"7RGRWKLVFDUHIXOO\WKLQNWKURXJKKRZ WKH*XPEDOO0DFKLQHVKRXOGEHKDYHLQHDFKVLWXDWLRQ&KHFN\RXU DQVZHUEHIRUHPRYLQJRQ

\ VWDWHZHUHDOO ,QWKH6ROG2XWLQJXQWLOVRPHRQH WK Q\ FDQ·WGRD EDOO0DFKLQH UHILOOVWKH*XP

SXEOLFFODVV6ROG2XW6WDWHLPSOHPHQWV6WDWH^ *XPEDOO0DFKLQHJXPEDOO0DFKLQH  SXEOLF6ROG2XW6WDWH *XPEDOO0DFKLQHJXPEDOO0DFKLQH ^ WKLVJXPEDOO0DFKLQH JXPEDOO0DFKLQH `  SXEOLFYRLGLQVHUW4XDUWHU ^ 6\VWHPRXWSULQWOQ ³
\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 42

H[HUFLVHVROXWLRQV



6KDUSHQ \RXU SHQFLO 7RLPSOHPHQWWKHVWDWHVZH¿UVWQHHGWRGH¿QHZKDWWKHEHKDYLRUZLOOEH ZKHQWKHFRUUHVSRQGLQJDFWLRQLVFDOOHG$QQRWDWHWKHGLDJUDPEHORZZLWKWKH EHKDYLRURIHDFKDFWLRQLQHDFKFODVVZH¶YHDOUHDG\¿OOHGLQDIHZIRU\RX

*RWR+DV4XDUWHU6WDWH 7HOOWKHFXVWRPHU´\RXKDYHQ·WLQVHUWHGDTXDUWHUµ 7HOOWKHFXVWRPHU´\RXWXUQHGEXWWKHUH·VQRTXDUWHUµ 7HOOWKHFXVWRPHU´\RXQHHGWRSD\ILUVWµ

7HOOWKHFXVWRPHU´\RXFDQ·WLQVHUWDQRWKHUTXDUWHUµ *LYHEDFNTXDUWHUJRWR1R4XDUWHUVWDWH

1R4XDUWHU6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

+DV4XDUWHU6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU

*RWR6ROG6WDWH

WXUQ&UDQN

7HOOWKHFXVWRPHU´QRJXPEDOOGLVSHQVHGµ

7HOOWKHFXVWRPHU´SOHDVHZDLWZH·UHDOUHDG\JLYLQJ\RXDJXPEDOOµ 7HOOWKHFXVWRPHU´VRUU\\RXDOUHDG\WXUQHGWKHFUDQNµ 7HOOWKHFXVWRPHU´WXUQLQJWZLFHGRHVQ·WJHW\RXDQRWKHUJXPEDOOµ 'LVSHQVHRQHJXPEDOO&KHFNQXPEHURIJXPEDOOVLI!JR WR1R4XDUWHUVWDWHRWKHUZLVHJRWR6ROG2XWVWDWH

GLVSHQVH

6ROG6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

7HOOWKHFXVWRPHU´WKHPDFKLQHLVVROGRXWµ 7HOOWKHFXVWRPHU´\RXKDYHQ·WLQVHUWHGDTXDUWHU\HWµ 7HOOWKHFXVWRPHU´7KHUHDUHQRJXPEDOOVµ

6ROG2XW6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN

7HOOWKHFXVWRPHU´QRJXPEDOOGLVSHQVHGµ 7HOOWKHFXVWRPHU´SOHDVHZDLWZH·UHDOUHDG\JLYLQJ\RXDJXPEDOOµ 7HOOWKHFXVWRPHU´VRUU\\RXDOUHDG\WXUQHGWKHFUDQNµ 7HOOWKHFXVWRPHU´WXUQLQJWZLFHGRHVQ·WJHW\RXDQRWKHUJXPEDOOµ 'LVSHQVHWZRJXPEDOOV&KHFNQXPEHURIJXPEDOOVLI! JRWR1R4XDUWHUVWDWHRWKHUZLVHJRWR6ROG2XW6WDWH 

GLVSHQVH

:LQQHU6WDWH LQVHUW4XDUWHU HMHFW4XDUWHU WXUQ&UDQN GLVSHQVH

&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 43

WKHVWDWHSDWWHUQ

%HKLQGWKH6FHQHV 6HOI*XLGHG7RXU 6ROXWLRQ

GHOHJDWHVWR FXUUHQWVWDWH



 LQVHUW4XDUWHU

L DOO0DFK

PDFKLQHDFWLRQ

V4XDUWH

U

*X PE

 + D

L DOO0DFK

PDFKLQHDFWLRQ

  6ROG

 1 R4XDUWHU

FXUUHQWVWDWH

QH

QH

*X PE

WXUQ&UDQN  + D

/]U JITT5 IKPQVM;\I\M[

WXUQ&UDQN

 1 R4XDUWHU

WDWH HQWV FXUU

LQVHUW4XDUWHU

GHOHJDWHV

/]U JITT5 IKPQVM;\I\M[

V4XDUWH

  6ROG

 6 ROG2XW

 6 ROG2XW

WUDQVLWLRQVWR +DV4XDUWHUVWDWH

/]U JITT5 IKPQVM;\I\M[

GLVSHQVH

FXU UH

QH

*X PE

L DOO0DFK

QWV

WDWH



/]U JITT5 IKPQVM;\I\M[

 1 R4XDUWHU

 + D

V4XDUWH

U

 6 ROG2XW

WDWH

QWV

UH FXU

*X PE

L DOO0DFK

  6ROG

+HUHWKHPDFKLQH JLYHVRXWDJXPEDOO E\FDOOLQJWKHLQWHUQDO GLVSHQVH DFWLRQ

WUDQVLWLRQVWR 6ROGVWDWH

QH



U

 1 R4XDUWHU

 + D

V4XDUWH

U

  6ROG

DQGWKHQWUDQVLWLRQV WR1R4XDUWHU

 6 ROG2XW

\RXDUHKHUH



Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 10. The State of Things

Return to Table of Contents

Page 44

H[HUFLVHVROXWLRQV

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"

3DWWHUQ

'HVFULSWLRQ Encapsulate interchangeable behaviors and use delegation to decide which behavior to use

State

Subclasses decide how to implement steps in an algorithm

Strategy

Template Method

Encapsulate state-based behavior and delegate behavior to the current state

6KDUSHQ \RXU SHQFLO ?MVMMLaW]\W_ZQ\M\PMZMÅTTUM\PWLNWZ\PM/]UJITTUIKPQVM1\PI[WVM IZO]UMV\\PMV]UJMZWN O]UJITT[aW]¼ZMILLQVO\W\PMUIKPQVMIVL[PW]TL ]XLI\M\PMO]UJITTUIKPQVMKW]V\IVLZM[M\\PMUIKPQVM¼[[\I\M

YRLGUH¿OO LQWFRXQW ^ WKLVFRXQW FRXQW VWDWH QR4XDUWHU6WDWH `



&KDSWHU

Chapter 10. The State of Things Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Table of Contents Chapter 11. Controlling Object Access.......................................................... 1 Section 11.1. Coding the Monitor.................................................................................................................................................... 3 Section 11.2. Testing the Monitor................................................................................................................................................... 4 Section 11.3. The role of the 'remote proxy'.................................................................................................................................... 6 Section 11.4. Adding a remote proxy to the Gumball Machine monitoring code.......................................................................... 8 Section 11.5. Remote methods 101.................................................................................................................................................. 9 Section 11.6. How the method call happens................................................................................................................................. 10 Section 11.7. Java RMI, the Big Picture......................................................................................................................................... 12 Section 11.8. Making the Remote service...................................................................................................................................... 13 Section 11.9. Step one: make a Remote interface.......................................................................................................................... 14 Section 11.10. Step two: make a Remote implementation............................................................................................................ 15 Section 11.11. Step three: generate stubs and skeletons............................................................................................................... 16 Section 11.12. Step four: run rmiregistry....................................................................................................................................... 16 Section 11.13. Step five: start the service....................................................................................................................................... 16 Section 11.14. How does the client get the stub object?................................................................................................................ 18 Section 11.15. Watch it................................................................................................................................................................... 21 Section 11.16. Back to our GumballMachine remote proxy.......................................................................................................... 22 Section 11.17. Getting the GumballMachine ready to be a remote service.................................................................................. 23 Section 11.18. Registering with the RMI registry......................................................................................................................... 25 Section 11.19. Now for the GumballMonitor client...................................................................................................................... 26 Section 11.20. Writing the Monitor test drive............................................................................................................................... 27 Section 11.21. Another demo for the CEO of Mighty Gumball..................................................................................................... 28 Section 11.22. And now let's put the monitor in the hands of the CEO. Hopefully this time he'll love it:.................................. 29 Section 11.23. Behind the Scenes.................................................................................................................................................. 30 Section 11.24. The Proxy Pattern defined..................................................................................................................................... 32 Section 11.25. Get ready for Virtual Proxy.................................................................................................................................... 34 Section 11.26. Displaying CD covers............................................................................................................................................. 35 Section 11.27. Designing the CD cover Virtual Proxy................................................................................................................... 36 Section 11.28. Writing the Image Proxy........................................................................................................................................ 37 Section 11.29. Design Puzzle......................................................................................................................................................... 40 Section 11.30. Testing the CD Cover Viewer................................................................................................................................. 41 Section 11.31. What did we do?: Behin the scenes........................................................................................................................ 42 Section 11.32. there are no Dumb Questions................................................................................................................................ 43 Section 11.33. Fireside Charts....................................................................................................................................................... 44 Section 11.34. Using the Java API's Proxy to create a protection proxy...................................................................................... 46 Section 11.35. Matchmaking in Objectville................................................................................................................................... 47 Section 11.36. The PersonBean implementation.......................................................................................................................... 48 Section 11.37. Five minute drama: protecting subjects................................................................................................................ 50 Section 11.38. Big Picture: creating a Dynamic Proxy for the PersonBean.................................................................................. 51 Section 11.39. Step one: creating Invocation Handlers................................................................................................................ 52 Section 11.40. Creating Invocation Handlers continued.............................................................................................................. 53 Section 11.41. Exercise................................................................................................................................................................... 54 Section 11.42. Step two: creating the Proxy class and instantiating the Proxy object................................................................. 55 Section 11.43. Sharpen your pencil............................................................................................................................................... 55 Section 11.44. Testing the matchmaking service.......................................................................................................................... 56 Section 11.45. Running the code................................................................................................................................................... 57 Section 11.46. there are no Dumb Questions................................................................................................................................ 58 Section 11.47. WHO DOES WHAT............................................................................................................................................... 59 Section 11.48. The Proxy Zoo........................................................................................................................................................ 60 Section 11.49. Tools for your Design Toolbox.............................................................................................................................. 63 Section 11.50. Exercise solutions.................................................................................................................................................. 64 Section 11.51. Exercise solutions................................................................................................................................................... 65 Section 11.52. Ready-bake Code: The code for the CD Cover Viewer.......................................................................................... 66 Section 11.53. Ready-bake Code: The code for the CD Cover Viewer, continued........................................................................ 68

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 1

the Proxy Pattern

&RQWUROOLQJ 5 42EMHFW$FFHVV

4

:LWK\RXDVP\3UR[\,·OOEH DEOHWRWULSOHWKHDPRXQWRIOXQFK PRQH\,FDQH[WUDFWIURPIULHQGV

(YHUSOD\JRRGFRSEDGFRS"
WKLVLVDQHZFKDSWHU



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 2

ZKDW¶VWKHJRDO

+H\WHDP,·G UHDOO\OLNHWRJHW VRPHEHWWHUPRQLWRULQJIRU P\JXPEDOOPDFKLQHV&DQ\RX ÀQGDZD\WRJHWPHDUHSRUWRI LQYHQWRU\DQGPDFKLQHVWDWH"

;W]VL[MI[aMVW]OP1N aW]ZMUMUJMZ_M¼^MITZMILa OW\UM\PWL[QV\PMO]UJITTUIKPQVMKWLMNWZOM\\QVO\PM KW]V\WN O]UJITT[OM\+W]V\IVLOM\\QVO\PMK]ZZMV\ [\I\MWN \PMUIKPQVMOM\;\I\M )TT_MVMML\WLWQ[KZMI\MIZMXWZ\\PI\KIVJMXZQV\MLW]\ IVL[MV\JIKS\W\PM+-70UUU_M[PW]TLXZWJIJTa ILLITWKI\QWVÅMTL\WMIKPO]UJITTUIKPQVMI[_MTT#\PI\ _Ia\PM+-7KIVSMMX\PMUIKPQVM[[\ZIQOP\

5HPHPEHUWKH&(2RI 0LJKW\*XPEDOO,QF"



4M\¼[R][\R]UXQVIVLKWLM\PQ[?M¼TTQUXZM[[\PM+-7 _Q\PI^MZaNI[\\]ZVIZW]VL

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 3

WKHSUR[\SDWWHUQ

+WLQVO\PM5WVQ\WZ 4M\¼[[\IZ\JaILLQVO[]XXWZ\\W\PM/]UJITT5IKPQVMKTI[[[W\PI\Q\ KIVPIVLTMTWKI\QWV["

$ORFDWLRQLVMXVWD6WULQJ SXEOLFFODVV*XPEDOO0DFKLQH^ RWKHULQVWDQFHYDULDEOHV 6WULQJORFDWLRQ  SXEOLF*XPEDOO0DFKLQH 6WULQJORFDWLRQLQWFRXQW ^ RWKHUFRQVWUXFWRUFRGHKHUH 7KHORFDWLRQLVSDVVHGLQWRWKH WKLVORFDWLRQ ORFDWLRQ ` FRQVWUXFWRUDQGVWRUHGLQWKH  LQVWDQFHYDULDEOH SXEOLF6WULQJJHW/RFDWLRQ ^ UHWXUQORFDWLRQ ` /HW·VDOVRDGGDJHWWHUPHWKRGWR  JUDEWKHORFDWLRQZKHQZHQHHGLW RWKHUPHWKRGVKHUH ` 6W_TM\¼[KZMI\MIVW\PMZKTI[[/]UJITT5WVQ\WZ\PI\ZM\ZQM^M[\PMUIKPQVM¼[ TWKI\QWVQV^MV\WZaWN O]UJITT[IVL\PMK]ZZMV\UIKPQVM[\I\MIVLXZQV\[\PMU QVIVQKMTQ\\TMZMXWZ\"

SXEOLFFODVV*XPEDOO0RQLWRU^ *XPEDOO0DFKLQHPDFKLQH 7KHPRQLWRUWDNHVWKHPDFKLQHLQL  FRQVWUXFWRUDQGDVVLJQVLWWRWKH WV SXEOLF*XPEDOO0RQLWRU *XPEDOO0DFKLQHPDFKLQH ^ PDFKLQHLQVWDQFHYDULDEOH WKLVPDFKLQH PDFKLQH `  SXEOLFYRLGUHSRUW ^ 6\VWHPRXWSULQWOQ ³*XPEDOO0DFKLQH³PDFKLQHJHW/RFDWLRQ  6\VWHPRXWSULQWOQ ³&XUUHQWLQYHQWRU\³PDFKLQHJHW&RXQW ³JXPEDOOV´  6\VWHPRXWSULQWOQ ³&XUUHQWVWDWH³PDFKLQHJHW6WDWH  ` `

2XUUHSRUWPHWKRGMXVWSULQWVDU HSRUWZLWK ORFDWLRQLQYHQWRU\DQGWKHPDFKL QH·VVWDWH

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 4

ORFDOJXPEDOOPRQLWRU

@DUJV ^ LQWFRXQW 

3DVVLQDORFDWLRQDQGLQLWLDORI JXPEDOOVRQWKHFRPPDQGOLQH

LI DUJVOHQJWK ^ 6\VWHPRXWSULQWOQ ³*XPEDOO0DFKLQHQDPH!LQYHQWRU\!´  6\VWHPH[LW   `

'RQ·WIRUJHWWRJLYH WKHFRQVWUXFWRUD ORFDWLRQDQGFRXQW

FRXQW ,QWHJHUSDUVH,QW DUJV>@  *XPEDOO0DFKLQHJXPEDOO0DFKLQH QHZ*XPEDOO0DFKLQH DUJV>@FRXQW  *XPEDOO0RQLWRUPRQLWRU QHZ*XPEDOO0RQLWRU JXPEDOO0DFKLQH 

DQGSDVVLWD DQGLQVWDQWLDWHDPRQLWRUUW PDFKLQHWRSURYLGHDUHSR RQ

 UHVWRIWHVWFRGHKHUH PRQLWRUUHSRUW  ` ` SRUWRQ

:KHQZHQHHGDUH WKHPDFKLQHZHFDOOWKH UHSRUW PHWKRG

)LOH(GLW:LQGRZ+HOS)O\LQJ)LVK

MDYD*XPEDOO0DFKLQH7HVW'ULYH6HDWWOH *XPEDOO0DFKLQH6HDWWOH &XUUHQW,QYHQWRU\JXPEDOOV &XUUHQW6WDWHZDLWLQJIRUTXDUWHU

7KHPRQLWRURXWSXWORRNVJUHDW EXW,JXHVV,ZDVQ·WFOHDU,QHHGWR PRQLWRUJXPEDOOPDFKLQHV5(027(/< ,QIDFWZHDOUHDG\KDYHWKHQHWZRUNV LQSODFHIRUPRQLWRULQJ&RPHRQJX\V \RX·UHVXSSRVHGWREHWKH,QWHUQHW JHQHUDWLRQ



$QGKHUH·VWKHRXWSXW

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 5

WKHSUR[\SDWWHUQ

'RQ·WZRUU\JX\V,·YH EHHQEUXVKLQJXSRQP\GHVLJQ SDWWHUQV$OOZHQHHGLVDUHPRWH SUR[\DQGZH·OOEHUHDG\WRJR :HOOWKDWZLOOWHDFKXVWRJDWKHU VRPHUHTXLUHPHQWVEHIRUHZHMXPS LQDQGFRGH,KRSHZHGRQ·WKDYH WRVWDUWRYHU

-RH")ZMUW\M_PI\'

-RH

-LP

)UDQN

)UDQN":MUW\MXZW`a5I[\PMO]UJITTUIKPQVMIVL\PM+-7_IV\[\W[Q\I\PQ[LM[SIVLZMUW\MTaUWVQ\WZ\PM UIKPQVM[ ;W_PI\QN _MTMN\W]Z/]UJITT5WVQ\WZKTI[[I[Q[J]\PIVLMLQ\IXZW`a\WIZMUW\MWJRMK\' -RH"1¼UVW\[]ZM1OM\Q\ -LP"5MVMQ\PMZ )UDQN"4M\¼[[\IZ\I\\PMJMOQVVQVOIXZW`aQ[I[\IVLQVNWZIZMITWJRMK\1V\PQ[KI[M\PMXZW`aIK\[ R][\TQSMQ\Q[I/]UJITT5IKPQVMWJRMK\J]\JMPQVL\PM[KMVM[Q\Q[KWUU]VQKI\QVOW^MZ\PMVM\_WZS\W \ITS\W\PMZMITZMUW\M/]UJITT5IKPQVM -LP;WaW]¼ZM[IaQVO_MSMMXW]ZKWLMI[Q\Q[IVL_MOQ^M\PMUWVQ\WZIZMNMZMVKM\WIXZW`a^MZ[QWV WN \PM/]UJITT5IKPQVM -RH")VL\PQ[XZW`aXZM\MVL[Q\¼[\PMZMITWJRMK\J]\Q\¼[ZMITTaR][\KWUU]VQKI\QVOW^MZ\PMVM\\W\PM ZMITWJRMK\ )UDQN"AMIP\PI\¼[XZM\\aU]KP\PM[\WZa -RH"1\[W]VL[TQSM[WUM\PQVO\PI\Q[MI[QMZ[IQL\PIVLWVM )UDQN"8MZPIX[J]\1LWV¼\\PQVSQ\¼TTJM\PI\JIL?MPI^M\WUISM[]ZM\PI\\PMO]UJITTUIKPQVM KIVIK\I[I[MZ^QKMIVLIKKMX\ZMY]M[\[W^MZ\PMVM\_WZS#_MIT[WVMML\WOQ^MW]ZUWVQ\WZI_Ia\WOM\ IZMNMZMVKM\WIXZW`aWJRMK\J]\_M¼^MOW\[WUMOZMI\\WWT[ITZMILaJ]QT\QV\W2I^I\WPMTX][4M\¼[\ITS ITQ\\TMUWZMIJW]\ZMUW\MXZW`QM[ÅZ[\ \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 6

UHPRWHSUR[\

QZ\]IT5IKPQVM WZUWZMOMVMZITTaIZMUW\MWJRMK\\PI\Q[Z]VVQVOQVILQNNMZMV\ILLZM[[[XIKM ?PI\¼[I¹TWKITZMXZM[MV\I\Q^M'º1\¼[IVWJRMK\\PI\aW]KIVKITTTWKITUM\PWL[WV IVLPI^M\PMUNWZ_IZLMLWV\W\PMZMUW\MWJRMK\

RU

 3UR[\

 6DPHDV\RXUROG FRGHRQO\LW·V R[\ WDONLQJWRDSU

 XP E

*

W DOO0RQL



*X PE

5HPRWH+HDS



OO +HUHWKH*XPEDFOLHQW 0RQLWRULVWKH VLW·V REMHFWLWWKLQN5HDO WDONLQJWRWKHQHEXW JXPEDOOPDFKL WDONLQJ LW·VUHDOO\MXVW KLFK WRWKHSUR[\Z  WKHQWDONVWRWDFKHKLQH 5HDOJXPEDOOP UN RYHUWKHQHWZR

5HPRWH*XPEDOO0DFKLQH ZLWKD-90

LQH

/RFDO+HDS

QGVWR 7KHSUR[\SUHHWHREMHFW EHWKHUHPRW VWDQGLQ EXWLW·VMXVWD7KLQJ IRUWKH5HDO

FK

&(2·VGHVNWRS

DOO0D

W,6 RWHREMHF,W·VWKH P H 5 H K 7 7KLQJ WKH5HDOLWKWKHPHWKRG Z W F REMH WXDOO\GRHVWKH WKDWDF UN UHDOZR




&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 7

WKHSUR[\SDWWHUQ

7KLVLVDSUHWW\VOLFNLGHD:H·UH JRLQJWRZULWHVRPHFRGHWKDWWDNHVD PHWKRGLQYRFDWLRQVRPHKRZWUDQVIHUVLWRYHU WKHQHWZRUNDQGLQYRNHVWKHVDPHPHWKRGRQD UHPRWHREMHFW7KHQ,SUHVXPHZKHQWKHFDOOLV FRPSOHWHWKHUHVXOWJHWVVHQWEDFNRYHUWKH QHWZRUNWRRXUFOLHQW%XWLWVHHPVWRPH WKLVFRGHLVJRLQJWREHYHU\ WULFN\WRZULWH

+ROGRQQRZZH DUHQ·WJRLQJWRZULWHWKDWFRGH RXUVHOYHVLW·VSUHWW\PXFKEXLOW LQWR-DYD·VUHPRWHLQYRFDWLRQ IXQFWLRQDOLW\$OOZHKDYHWRGR LVUHWURÀWRXUFRGHVRWKDWLW WDNHVDGYDQWDJHRI50,

YiX`e gfn\i %HIRUHJRLQJIXUWKHUWKLQNDERXWKRZ\RX¶GGHVLJQDV\VWHPWRHQDEOHUHPRWHPHWKRGLQYRFDWLRQ +RZZRXOG\RXPDNHLWHDV\RQWKHGHYHORSHUVRWKDWVKHKDVWRZULWHDVOLWWOHFRGHDVSRVVLEOH" +RZZRXOG\RXPDNHWKHUHPRWHLQYRFDWLRQORRNVHDPOHVV"

)

YiX`e gfn\i 6KRXOGPDNLQJUHPRWHFDOOVEHWRWDOO\WUDQVSDUHQW",VWKDWDJRRGLGHD":KDWPLJKWEHDSUREOHP ZLWKWKDWDSSURDFK"

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 8

50,GHWRXU

)LLQVOIZMUW\MXZW`a\W\PM/]UJITT 5IKPQVMUWVQ\WZQVOKWLM 7VXIXMZ\PQ[TWWS[OWWLJ]\PW_LW_MKZMI\MIXZW`a\PI\SVW_[PW_\WQV^WSMIUM\PWLWVIV WJRMK\\PI\TQ^M[QVIVW\PMZ2>5' 0UUU?MTTaW]KIV¼\OM\IZMNMZMVKM\W[WUM\PQVOWVIVW\PMZPMIXZQOP\'1VW\PMZ_WZL[aW] KIV¼\[Ia" 'XFNG REMHFWLQDQRWKHUKHDS! ?PI\M^MZ\PM^IZQIJTMGQ[ZMNMZMVKQVOU][\JMQV\PM[IUMPMIX[XIKMI[\PMKWLMZ]VVQVO\PM [\I\MUMV\;WPW_LW_MIXXZWIKP\PQ['?MTT\PI\¼[_PMZM2I^I¼[:MUW\M5M\PWL1V^WKI\QWV KWUM[QV:51OQ^M[][I_Ia\WÅVLWJRMK\[QVIZMUW\M2>5IVLITTW_[][\WQV^WSM\PMQZ UM\PWL[ AW]UIaPI^MMVKW]V\MZML:51QV0MIL.QZ[\2I^I#QN VW\_M¼ZMOWQVO\W\ISMI[TQOP\LM\W]ZIVL KWUM]X\W[XMMLWV:51JMNWZMILLQVO\PMXZW`a[]XXWZ\\W\PM/]UJITT5IKPQVMKWLM ;WPMZM¼[_PI\_M¼ZMOWQVO\WLW"









)LUVWZH·UHJRLQJWRWDNHWKH50, 'HWRXUDQGFKHFN50,RXW(YHQLI \RXDUHIDPLOLDUZLWK50,\RXPLJKW ZDQWWRIROORZDORQJDQGFKHFNRXWWKH VFHQHU\

$Q50,'HWRXU

7KHQZH·UHJRLQJWRWDNHRXU *XPEDOO0DFKLQHDQGPDNHLWDUHPRWH VHUYLFHWKDWSURYLGHVDVHWRIPHWKRGV FDOOVWKDWFDQEHLQYRNHGUHPRWHO\ 7KHQZHJRLQJWRFUHDWHDSUR[\WKDWFDQ WDONWRDUHPRWH*XPEDOO0DFKLQHDJDLQ XVLQJ50,DQGSXWWKHPRQLWRULQJV\VWHP EDFNWRJHWKHUVRWKDWWKH&(2FDQPRQLWRU DQ\QXPEHURIUHPRWHPDFKLQHV

,I\RX·UHQHZWR50, WDNHWKHGHWRXUWKDWUXQV RYHUWKHQH[WIHZSDJHV RWKHUZLVH\RXPLJKWZDQWWR MXVWTXLFNO\WKXPEWKURXJK WKHGHWRXUDVDUHYLHZ

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 9

WKHSUR[\SDWWHUQ

:MUW\MUM\PWL[

$Q50,'HWRXU

4M\¼[[Ia_M_IV\\WLM[QOVI[a[\MU\PI\ITTW_[][\WKITTITWKITWJRMK\\PI\NWZ_IZL[MIKP ZMY]M[\\WIZMUW\MWJRMK\0W__W]TL_MLM[QOVQ\'?M¼LVMMLIKW]XTMWN PMTXMZWJRMK\[ \PI\IK\]ITTaLW\PMKWUU]VQKI\QVONWZ][
KLQNV &OLHQWREMHFWWWK H R W LQJ ON WD ·V LW W , LFH UY 6H 5HDO WKLQNVWKHFOLHQWKWLQJ KHOSHULVWKH OO\ WKDWFDQDFWXDRUN GRWKHUHDOZ

 & OL HQWREMHFW

& OL HQWKHOSHU

7KLVLVJRLQJ WREHRXU SUR[\

6H

6HUYHUKHDS

H UYLFHKHOS

6H

W

&OLHQWKHDS

HQGV &OLHQWKHOSHUSULFHHWEXW UY VH H WK WREH IRUWKH LW·VMXVWDSUR[\  5HDO7KLQJ

U

DPLOLDU 7KLVVKRXOGORRNI

UYLFHREMHF

6HUYLFHKHOSHUJHWVWKH UHTXHVWIURPWKHFOLHQW KHOSHUXQSDFNVLWDQG FDOOVWKHPHWKRGRQWKH 5HDO6HUYLFH

W,6  LFHREMHF H 7KH6HUDYO6HUYLFH,W·VWKG R H K W 5 H WKH LWKWKHP REMHFWZWXDOO\GRHVWKH F WKDWD UN UHDOZR \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 10

UHPRWHPHWKRGLQYRFDWLRQ

+RZWKHPHWKRGFDOOKDSSHQV &OLHQWREMHFWFDOOVGR%LJ7KLQJ RQWKHFOLHQWKHOSHUREMHFW



6HUYHUKHDS

&OLHQWKHDS GR%LJ7KLQJ

 FW

& OL HQWREMH

UYLFHKHOS

H

6H

W

6H

U

& OL HQWKHOSHU

UYLFHREMHF

&OLHQWKHOSHUSDFNDJHVXSLQIRUPDWLRQDERXWWKHFDOO DUJXPHQWVPHWKRGQDPHHWF DQGVKLSVLWRYHUWKH QHWZRUNWRWKHVHUYLFHKHOSHU



&OLHQWKHDS

´FOLHQWZDQWVWRFDOODPHWKRGµ

6HUYHUKHDS

GR%LJ7KLQJ

 FW

& OL HQWREMH

H

UYLFHKHOS

6H

W

U

6H

UYLFHREMHF

6HUYLFHKHOSHUXQSDFNVWKHLQIRUPDWLRQIURPWKHFOLHQWKHOSHU ÀQGVRXWZKLFKPHWKRGWRFDOO DQGRQZKLFKREMHFW DQG LQYRNHVWKHUHDOPHWKRGRQWKHUHDOVHUYLFHREMHFW ´FOLHQWZDQWVWRFDOODPHWKRGµ

GR%LJ7KLQJ

GR%LJ7KLQJ

 & OL HQWREMHFW 

& OL HQWKHOSHU

6HUYHUKHDS

6H

H UYLFHKHOS

6H

W

&OLHQWKHDS

U



& OL HQWKHOSHU

UYLFHREMHF

WKH 5HPHPEHUWKLVHLV5($/ REMHFWZLWKWK KHRQH PHWKRGORJLF7UHDOZRUN WKDWGRHVWKH

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 11

WKHSUR[\SDWWHUQ



$Q50,'HWRXU

7KHPHWKRGLVLQYRNHGRQWKHVHUYLFHREMHFWZKLFKUHWXUQV VRPHUHVXOWWRWKHVHUYLFHKHOSHU

6HUYHUKHDS

&OLHQWKHDS

UHVXOW

 FW

& OL HQWREMH

H

6H

W

U

UYLFHKHOS

UYLFHREMHF

6HUYLFHKHOSHUSDFNDJHVXSLQIRUPDWLRQUHWXUQHGIURPWKH FDOODQGVKLSVLWEDFNRYHUWKHQHWZRUNWRWKHFOLHQWKHOSHU

 & OL HQWREMHFW

6HUYHUKHDS SDFNDJHGXSUHVXOW

& OL HQWKHOSHU

6H

H UYLFHKHOS

6H

W

&OLHQWKHDS



6H

U



& OL HQWKHOSHU

UYLFHREMHF

&OLHQWKHOSHUXQSDFNDJHVWKHUHWXUQHGYDOXHVDQGUHWXUQV WKHPWRWKHFOLHQWREMHFW7RWKHFOLHQWREMHFWWKLVZDVDOO WUDQVSDUHQW

6HUYHUKHDS

&OLHQWKHDS UHVXOW

 & OL HQWREMHFW

H UYLFHKHOS

6H

W

6H

U

& OL HQWKHOSHU

UYLFHREMHF

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 12

50,WKHELJSLFWXUH

2I^I:51\PM*QO8QK\]ZM 7SIaaW]¼^MOW\\PMOQ[\WN PW_ZMUW\MUM\PWL[_WZS# VW_aW]R][\VMML\W]VLMZ[\IVLPW_\W][M:51\W MVIJTMZMUW\MUM\PWLQV^WKI\QWV ?PI\:51LWM[NWZaW]Q[J]QTL\PMKTQMV\IVL[MZ^QKM PMTXMZWJRMK\[ZQOP\LW_V\WKZMI\QVOIKTQMV\PMTXMZ WJRMK\_Q\P\PM[IUMUM\PWL[I[\PMZMUW\M[MZ^QKM5


:51IT[WXZW^QLM[ITT\PMZ]V\QUMQVNZI[\Z]K\]ZM\WUISM Q\ITT_WZSQVKT]LQVOITWWS]X[MZ^QKM\PI\\PMKTQMV\KIV ][M\WÅVLIVLIKKM[[\PMZMUW\MWJRMK\[ 50,1RPHQFODWXUHLQ50,WKHFOLHQWKHOSHULVD¶VWXE·DQGWKH VHUYLFHKHOSHULVD¶VNHOHWRQ·

 & OL HQWREMHFW

& OL HQWKHOSHU

50,6.(/(721

6H

UYLFHKHOS

H

6H

W

50,678%

6HUYHUKHDS

U

&OLHQWKHDS

7KLVLVJRLQJ WRDFWDVRXU SUR[\

UYLFHREMHF

1RZOHW·VJRWKURXJKDOOWKHVWHSVQHHGHGWRPDNHDQREMHFWLQWRD VHUYLFHWKDWFDQDFFHSWUHPRWHFDOOVDQGDOVRWKHVWHSVQHHGHGWR DOORZDFOLHQWWRPDNHUHPRWHFDOOV

1HZHUYHUVLRQV RI-DYDGRQ·W UHTXLUHDQH[SOLF VNHOHWRQREMHFW LW EXWVRPHWKLQJR WKHVHUYHUVLGH Q LVVWLOOKDQGOLQJ VNHOHWRQEHKDYLRU


&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 13

WKHSUR[\SDWWHUQ

0DNLQJWKH5HPRWHVHUYLFH $Q50,'HWRXU


6WHSRQH

SXEOLFLQWHUIDFH 0\5HPRWHH[WHQGV 5HPRWH^`

0DNHD5HPRWH,QWHUIDFH
6WHSWZR 0DNHD5HPRWH,PSOHPHQWDWLRQ
HVWKH DFHGHIKLQDW\RX I U H W Q L LV 7K HWKRGVW UHPRWHPHQWVWRFDOO OL F ZDQW

SXEOLFLQWHUIDFH 0\5HPRWHH[WHQGV 5HPRWH^`

0\6HUYLFH,PSOMDYD

ODVV 7KH5HDO6HUYLFHWKHFWGR ZLWKWKHPHWKRGVWKD QWV WKHUHDOZRUN,WLPSOH PH DFH HUI LQW WH PR WKHUH

VSLWVRXWWZR FODVVHVIRUWK QHZ KHOSHUREMHFWVH

KHDFWXDO 5XQQLQJUPLFDJDLQVWW FODVV RQ DWL VHUYLFHLPSOHPHQW

6WHSWKUHH *HQHUDWHWKHVWXEVDQGVNHOHWRQVXVLQJUPLF
    

)LOH(GLW:LQGRZ+HOS(DW

UPLF0\6HUYLFH,PSO

0\6HUYLFH,PSOB6WXEFODVV     

6WHSIRXU 6WDUWWKH50,UHJLVWU\ UPLUHJLVWU\
0\6HUYLFH,PSOB6NHOFODVV )LOH(GLW:LQGRZ+HOS'ULQN

UPLUHJLVWU\

6WHSÀYH 6WDUWWKHUHPRWHVHUYLFH AW]PI^M\WOM\\PM[MZ^QKMWJRMK\]XIVLZ]VVQVOAW]Z [MZ^QKMQUXTMUMV\I\QWVKTI[[QV[\IV\QI\M[IVQV[\IVKM WN \PM[MZ^QKMIVLZMOQ[\MZ[Q\_Q\P\PM:51ZMOQ[\Za :MOQ[\MZQVOQ\UISM[\PM[MZ^QKMI^IQTIJTMNWZKTQMV\[

 5XQWKLVLWQH D U D S DVH WHUPLQDO

)LOH(GLW:LQGRZ+HOS%H0HUU\

MDYD0\6HUYLFH,PSO

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 14

PDNHDUHPRWHLQWHUIDFH

6WHSRQHPDNHD5HPRWHLQWHUIDFH 

([WHQGMDYDUPL5HPRWH :MUW\MQ[I»UIZSMZ¼QV\MZNIKM_PQKPUMIV[Q\PI[VWUM\PWL[1\PI[[XMKQIT UMIVQVONWZ:51\PW]OP[WaW]U][\NWTTW_\PQ[Z]TM6W\QKM\PI\_M[Ia »M`\MVL[¼PMZM7VMQV\MZNIKMQ[ITTW_ML\WM`\MVLIVW\PMZQV\MZNIKM

SXEOLFLQWHUIDFH0\5HPRWHH[WHQGV5HPRWH^



DWWKH 7KLVWHOOVXVWKRLQ JWREHXVHG LQWHUIDFHLVJ RWHFDOOV WRVXSSRUWUHP

'HFODUHWKDWDOOPHWKRGVWKURZD5HPRWH([FHSWLRQ
LPSRUWMDYDUPL 

MDY 5HPRWHLQWHUIDFHLVLQ

DUPL

SXEOLFLQWHUIDFH0\5HPRWHH[WHQGV5HPRWH^ SXEOLF6WULQJVD\+HOOR WKURZV5HPRWH([FHSWLRQ ` 

%HVXUHDUJXPHQWVDQGUHWXUQYDOXHVDUHSULPLWLYHVRU6HULDOL]DEOH )ZO]UMV\[IVLZM\]ZV^IT]M[WN IZMUW\MUM\PWLU][\JMMQ\PMZXZQUQ\Q^M WZ;MZQITQbIJTM
(YHU\UHPRWHPHWKRGFDOOLV FRQVLGHUHG¶ULVN\·'HFODULQJ 5HPRWH([FHSWLRQRQHYHU\ PHWKRGIRUFHVWKHFOLHQW WRSD\DWWHQWLRQDQG DFNQRZOHGJHWKDWWKLQJV PLJKWQRWZRUN &KHFNRXW+HDG)LUVW -DYDLI\RXQHHGWR UHIUHVK\RXUPHPRU\ RQ6HULDOL]DEOH

SXEOLF6WULQJVD\+HOOR WKURZV5HPRWH([FHSWLRQ

7KLVUHWXUQYDOXHLVJRQQDEHVKLSS VHUYHUEDFNWRWKHFOLHQWVRLWP HGRYHUWKHZLUHIURPWKH XVWEH6HULDOL]DEOH7KDW·V KRZDUJVDQGUHWXUQYDOXHVJHW SDFNDJHGXSDQGVHQW 

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 15

WKHSUR[\SDWWHUQ

6WHSWZRPDNHD5HPRWHLPSOHPHQWDWLRQ 

$Q50,'HWRXU

,PSOHPHQWWKH5HPRWHLQWHUIDFH AW]Z[MZ^QKMPI[\WQUXTMUMV\\PMZMUW\MQV\MZNIKM¸\PMWVM_Q\P \PMUM\PWL[aW]ZKTQMV\Q[OWQVO\WKITT

SXEOLFFODVV0\5HPRWH,PSOH[WHQGV8QLFDVW5HPRWH2EMHFWLPSOHPHQWV0\5HPRWH^ SXEOLF6WULQJVD\+HOOR ^ UHWXUQ³6HUYHUVD\Vµ+H\¶´ 7KHFRPSLOHUZLO OPDNHVXUH W ` \RX·YHLPSOHPHQWHGDOOWKHPHWKD GV PRUHFRGHLQFODVV IURPWKHLQWHUIDFH\RXLPSOHPWKR HQW ` ,QWKLVFDVHWKH

UH·VRQO\RQH



([WHQG8QLFDVW5HPRWH2EMHFW 1VWZLMZ\W_WZSI[IZMUW\M[MZ^QKMWJRMK\aW]ZWJRMK\VMML[[WUMN]VK\QWVITQ\a ZMTI\ML\W»JMQVOZMUW\M¼


:ULWHDQRDUJFRQVWUXFWRUWKDWGHFODUHVD5HPRWH([FHSWLRQ AW]ZVM_[]XMZKTI[[=VQKI[\:MUW\M7JRMK\PI[WVMTQ\\TMXZWJTMU¸Q\[ KWV[\Z]K\WZ\PZW_[I:MUW\M-`KMX\QWV


WDQ\WKLQJLQ
5HJLVWHUWKHVHUYLFHZLWKWKH50,UHJLVWU\ 6W_\PI\aW]¼^MOW\IZMUW\M[MZ^QKMaW]PI^M\WUISMQ\I^IQTIJTM\WZMUW\M KTQMV\[AW]LW\PQ[JaQV[\IV\QI\QVOQ\IVLX]\\QVOQ\QV\W\PM:51ZMOQ[\Za_PQKP U][\JMZ]VVQVOWZ\PQ[TQVMWN KWLMNIQT[?PMVaW]ZMOQ[\MZ\PMQUXTMUMV\I\QWV WJRMK\\PM:51[a[\MUIK\]ITTaX]\[\PM[\]JQV\PMZMOQ[\Za[QVKM\PI\¼[_PI\\PM KTQMV\ZMITTaVMML[:MOQ[\MZaW]Z[MZ^QKM][QVO\PM[\I\QKZMJQVLUM\PWLWN \PM RI^IZUQ6IUQVOKTI[[ FDQXVH DPH WKDWFOLHQWVLVW WU\^ HULW *LYH\RXUVHUYLFHDQ UHJ G DQ \  VWU HJL 0\5HPRWHVHUYLFH QHZ0\5HPRWH,PSO  H WK WRORRNLWXSLQWKHU LQG XE \R HQ :K \ 1DPLQJUHELQG ³5HPRWH+HOOR´VHUYLFH  KH UW IR ZLWKWKH50,UHJLVWU FH UYL VH KH DSVW `FDWFK ([FHSWLRQH[ ^` VHUYLFHREMHFW50,VZ JLVWU\

VWXEDQGSXWVWKHVWX

ELQWKHUH

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 16

VWXEVDQGVNHOHWRQV

6WHSWKUHHJHQHUDWHVWXEVDQGVNHOHWRQV 5XQUPLFRQWKHUHPRWHLPSOHPHQWDWLRQFODVV QRWWKHUHPRWHLQWHUIDFH




50,&JHQHUDW QHZFODVVHVIRUHVWZR Vµ ODV ´F D\ WV RQ· KHOSHUREMHFWV WKH 1RWLFHWKDW\RXG FODVVQDPH RQWKHHQG-XVWWKH )LOH(GLW:LQGRZ+HOS:KXI¿H

UPLF0\5HPRWH,PSO

    

0\5HPRWH,PSOB6WXEFODVV     

0\5HPRWH,PSOB6NHOFODVV

6WHSIRXUUXQUPLUHJLVWU\ %ULQJXSDWHUPLQDODQGVWDUWWKHUPLUHJLVWU\



*M[]ZMaW][\IZ\Q\NZWUILQZMK\WZa\PI\PI[IKKM[[\W aW]ZKTI[[M[
)LOH(GLW:LQGRZ+HOS+XK"

UPLUHJLVWU\

6WHSÀYHVWDUWWKHVHUYLFH %ULQJXSDQRWKHUWHUPLQDODQGVWDUW\RXUVHUYLFH






)LOH(GLW:LQGRZ+HOS+XK"

MDYD0\5HPRWH,PSO

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 17

WKHSUR[\SDWWHUQ

&RPSOHWHFRGHIRUWKHVHUYHUVLGH $Q50,'HWRXU

7KH5HPRWHLQWHUIDFH

5HPRWH 5HPRWH([FHSWLRQDQGUP LSDFNDJH DYD QM HL DU LQWHUIDFH DUPL5HPRWH
LPSRUWMDYDUPL 

SXEOLF6WULQJVD\+HOOR WKURZV5HPRWH([FHSWLRQ `

$OORI\RXUUHPRWHPHWKRGVPXVW GHFODUHD5HPRWH([FHSWLRQ

7KH5HPRWHVHUYLFH WKHLPSOHPHQWDWLRQ 

LPSRUWMDYDUPL  LPSRUWMDYDUPLVHUYHU 

 WLVLQWKH PRWH2EMHNFDJH H 5 VW D WKH LF Q 8 W5HPRWH2EMHFWMHLVFW UYHUSDF ([WHQGLQJ8QLFDV RE MDYDUPLVH H RW HP U D NH HDVLHVWZD\WRPD

SXEOLFFODVV0\5HPRWH,PSOH[WHQGV8QLFDVW5HPRWH2EMHFWLPSOHPHQWV0\5HPRWH^  SXEOLF6WULQJVD\+HOOR ^ UHWXUQ³6HUYHUVD\Vµ+H\¶´ `


SXEOLF0\5HPRWH,PSO WKURZV5HPRWH([FHSWLRQ^`

SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ WU\^ 0\5HPRWHVHUYLFH QHZ0\5HPRWH,PSO  1DPLQJUHELQG ³5HPRWH+HOOR´VHUYLFH  `FDWFK ([FHSWLRQH[ ^ H[SULQW6WDFN7UDFH  ` ` `



0DNHWKHUHPRWHREM WKHQ¶ELQG·LWWRWKH UPLUHJLVWHU\XVLQJWKHHFW QDPH\RXUHJLVWHULWXQGVWDWLF1DPLQJUHELQG 7KH XVHWRORRNLWXSLQWKH HULVWKHQDPHFOLHQWVZLOO 50,UHJLVWU\ \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 18

KRZWRJHWWKHVWXEREMHFW

0W_LWM[\PMKTQMV\OM\\PM [\]JWJRMK\'
L +HUH·VKRZ

WZRUNV

&RGH8S&ORVH 7KHFOLHQWDOZD\VXVHVWKHUHPRWH LPSOHPHQWDWLRQDVWKHW\SH KH VHUYLFH,QIDFWWKHFOLHQWQRIW  QHHGVWRNQRZWKHDFWXDOFODHYHU VVQDPH RI\RXUUHPRWHVHUYLFH

ORRNXS LVDVWDWLFPHWKRG RIWKH1DPLQJFODVV

7KLVPXVWEH WKDWWKHVHUYLFWKHHQDPH UHJLVWHUHGXQGHU ZDV

0\5HPRWHVHUYLFH   0\5HPRWH 1DPLQJORRNXS ³UPL5HPRWH+HOOR´ 




7KHKRVWQDPHRU,3 DGGUHVVZKHUHWKH VHUYLFHLVUXQQLQJ

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 19

WKHSUR[\SDWWHUQ

$Q50,'HWRXU

6HUYHU

&OLHQW



 & OL HQWREMHFW

6 WX E

6 NH O VWX HWRQ EU HW XU QH G

6H

W

HOOR  VD\+

UYLFHREMHF



50,UHJLVWU\ RQVHUYHU

 OR RNX S 

5HPRWH +HOOR

6WXE

+RZLWZRUNV  &OLHQWGRHVDORRNXSRQWKH50,UHJLVWU\ 1DPLQJORRNXS ³UPL5HPRWH+HOOR´ 

 50,UHJLVWU\UHWXUQVWKHVWXEREMHFW I[\PMZM\]ZV^IT]MWN \PMTWWS]XUM\PWLIVL:51LM[MZQITQbM[\PM[\]J I]\WUI\QKITTaAW]5=;<PI^M\PM[\]JKTI[[\PI\ZUQKOMVMZI\MLNWZaW] WV\PMKTQMV\WZ\PM[\]J_WV¼\JMLM[MZQITQbML



&OLHQWLQYRNHVDPHWKRGRQWKHVWXEDVLIWKH VWXE,6WKHUHDOVHUYLFH

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 20

WKHUHPRWHFOLHQW

&RPSOHWHFOLHQWFRGH

LPSRUWMDYDUPL 

7KH1DPLQJF ORRNXS LVLQWKODHVV IRUGRLQJWKHUPLUHJLVWU\ MDYDUPLSDFNDJH 

SXEOLFFODVV0\5HPRWH&OLHQW^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ QHZ0\5HPRWH&OLHQW JR  ` SXEOLFYRLGJR ^

 VWU\DVW\SH IWKHUHJLW  R VW XW FD R H K HV ,WFRP GRQ·WIRUJHW 2EMHFWVR

WU\^ 0\5HPRWHVHUYLFH  0\5HPRWH 1DPLQJORRNXS ³UPL5HPRWH+HOOR´  6WULQJV VHUYLFHVD\+HOOR  6\VWHPRXWSULQWOQ V  `FDWFK ([FHSWLRQH[ ^ H[SULQW6WDFN7UDFH  ` ` `


,WORRNVMXVWOLNHDUHJ XODUROG PHWKRGFDOO ([FHSW LWPXVW DFNQRZOHGJHWKH5HPRW H([FHSWLRQ

WR DQGWKHQDPHXVHGHUY LFH ELQGUHELQGWKHV

*HHN%LWV 0W_LWM[\PMKTQMV\OM\\PM[\]JKTI[[' .OWWEGETTOTHEINTERESTINGQUESTION3OMEHOW SOMEWAY THECLIENTMUSTHAVETHESTUBCLASS THATYOUGENERATEDEARLIERUSINGRMIC ATTHETIMETHECLIENTDOESTHELOOKUP ORELSETHESTUBWONT BEDESERIALIZEDONTHECLIENTANDTHEWHOLETHINGBLOWSUP4HECLIENTALSONEEDSCLASSESFORANY SERIALIZEDOBJECTSRETURNEDBYMETHODCALLSTOTHEREMOTEOBJECT)NASIMPLESYSTEM YOUCANSIMPLY HAND DELIVERTHETHESECLASSESTOTHECLIENT 4HERESAMUCHCOOLERWAY ALTHOUGHITSBEYONDTHESCOPEOFTHISBOOK"UTJUSTINCASEYOURE INTERESTED THECOOLERWAYISCALLEDhDYNAMICCLASSDOWNLOADINGv7ITHDYNAMICCLASSDOWNLOADING 3ERIALIZEDOBJECTSLIKETHESTUB AREhSTAMPEDvWITHA52,THATTELLSTHE2-)SYSTEMONTHECLIENTWHERE TOlNDTHECLASSlLEFORTHATOBJECT4HEN INTHEPROCESSOFDESERIALIZINGANOBJECT IF2-)CANTlNDTHE CLASSLOCALLY ITUSESTHAT52,TODOAN(440'ETTORETRIEVETHECLASSlLE3OYOUDNEEDASIMPLEWEB SERVERTOSERVEUPCLASSlLES ANDYOUDALSONEEDTOCHANGESOMESECURITYPARAMETERSONTHECLIENT 4HEREAREAFEWOTHERTRICKYISSUESWITHDYNAMICCLASSDOWNLOADING BUTTHATSTHEOVERVIEW &ORTHESTUBOBJECTSPECIlCALLY THERESANOTHERWAYTHECLIENTCANGETTHECLASS4HISISONLYAVAILABLEIN *AVA THOUGH7ELLBRIEmYTALKABOUTTHISNEARTHEENDOFTHECHAPTER



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 21

WKHSUR[\SDWWHUQ

$Q50,'HWRXU


6 NH O HWRQ

 FW

& OL HQWREMH

6 WX E

6H

W

6HUYHU

&OLHQW

UYLFHREMHF

6 WX E

'RQ·WIRUJHWWKHFOLHQW XVHVWKHUHPRWHLQWHUIDFH WRFDOOPHWKRGVRQWKHVWXE 7KHFOLHQW-90QHHGVWKH &OLHQWFODVV 0\6HUYLFH,PSOB6WXEFODVV VWXEFODVVEXWWKHFOLHQW QHYHUUHIHUVWRWKHVWXE FODVVLQFRGH7KHFOLHQW DOZD\VXVHVWKHUHPRWH 0\5HPRWHFODVV LQWHUIDFHDVWKRXJKWKH UHPRWHLQWHUIDFH:(5(WKH DFWXDOUHPRWHREMHFW     

    

    

    

0\6HUYLFH,PSOFODVV     

0\6HUYLFH,PSOB6NHOFODVV

    

0\6HUYLFH,PSOB6WXEFODVV     

0\5HPRWHFODVV

6HUYHUQHHGVERWKWKH6WXEDQG6NHOHWRQ FODVVHVDVZHOODVWKHVHUYLFHDQGWKH UHPRWHLQWHUIDFH,WQHHGVWKHVWXEFODVV EHFDXVHUHPHPEHUWKHVWXELVVXEVWLWXWHG IRUWKHUHDOVHUYLFHZKHQWKHUHDOVHUYLFH LVERXQGWRWKH50,UHJLVWU\

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 22

UHPRWHJXPEDOOPRQLWRU

*IKS\WW]Z/]UJITT5IKPQVM ZMUW\MXZW`a 2ND\QRZWKDW\RXKDYHWKH50,EDVLFVGRZQ\RX·YH JRWWKHWRROV\RXQHHGWRLPSOHPHQWWKHJXPEDOO PDFKLQHUHPRWHSUR[\/HW·VWDNHDORRNDWKRZWKH *XPEDOO0DFKLQHÀWVLQWRWKLVIUDPHZRUN

6HUYHUKHDS

DOO0RQLWR

7KLVLVRXU LW 0RQLWRUFRGHR XVHVDSUR[\W  WDONWRUHPRWHQHV JXPEDOOPDFKL

U

*X PE

*X PEDOO6WXE

WR Q

&OLHQWKHDS



5HPRWH*XPEDOO0DFKLQH ZLWKD-90

SUR[\ 7KHVWXELVDH WRWKHUHPRW QH *XPEDOO0DFKL

H *X PEDOO6NHO

QH

&(2·VGHVNWRS

*X PEDO 0DFKL O

7KHVNHOHWRQDFFHSWVWKH UHPRWHFDOOVDQGPDNHV HYHU\WKLQJZRUNRQWKH VHUYLFHVLGH

7KH 0DFKLQHLV *XPEDOO RWHVHUYLFH RXUUHP JWRH[SRVH LW·VJRLQ HLQWHUIDFH DUHPRW FOLHQWWR IRUWKH XVH

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 23

WKHSUR[\SDWWHUQ

/M\\QVO\PM/]UJITT5IKPQVMZMILa \WJMIZMUW\M[MZ ^QKM


MDYDUPL 'RQ·WIRUJHWWRLPSRUW

7KLVLVWKHUHPRWHLQWHUIDFH

LPSRUWMDYDUPL   SXEOLFLQWHUIDFH*XPEDOO0DFKLQH5HPRWHH[WHQGV5HPRWH^ SXEOLFLQWJHW&RXQW WKURZV5HPRWH([FHSWLRQ SXEOLF6WULQJJHW/RFDWLRQ WKURZV5HPRWH([FHSWLRQ SXEOLF6WDWHJHW6WDWH WKURZV5HPRWH([FHSWLRQ `

$OOUHWXUQW\SHVQHHG WREHSULPLWLYHRU 6HULDOL]DEOH

 +HUHDUHWKHPHWKRGVZHUHJRLQJWRVXSSRUW Q HSWLR H([F HPRW ZV5 WKUR RQH (DFK

?MPI^MWVMZM\]ZV\aXM\PI\Q[V¼\;MZQITQbIJTM"\PM;\I\MKTI[[4M\¼[Å`Q\]X LPSRUWMDYDLR  6HULDOL]DEOHLVLQWKHMDYDLRSDFNDJH  SXEOLFLQWHUIDFH6WDWHH[WHQGV6HULDOL]DEOH^ SXEOLFYRLGLQVHUW4XDUWHU  7KHQZHMXVWH[WHQGWKH6HULDOL]DEOH  SXEOLFYRLGHMHFW4XDUWHU  LQWHUIDFH ZKLFKKDVQRPHWKRGVLQLW SXEOLFYRLGWXUQ&UDQN  $QGQRZ6WDWHLQDOOWKHVXEFODVVHVFDQ SXEOLFYRLGGLVSHQVH  ` EHWUDQVIHUUHGRYHUWKHQHWZRUN

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 24

UHPRWHLQWHUIDFHIRUWKHJXPEDOOPDFKLQH

)K\]ITTa_M¼ZMVW\LWVM_Q\P;MZQITQbIJTMaM\#_MPI^MWVMXZWJTMU_Q\P;\I\M)[aW]UIa ZMUMUJMZMIKP;\I\MWJRMK\UIQV\IQV[IZMNMZMVKM\WIO]UJITTUIKPQVM[W\PI\Q\KIVKITT\PM O]UJITTUIKPQVM¼[UM\PWL[IVLKPIVOMQ\[[\I\M?MLWV¼\_IV\\PMMV\QZMO]UJITTUIKPQVM [MZQITQbMLIVL\ZIV[NMZZML_Q\P\PM;\I\MWJRMK\
,QHDFKLPSOHPHQWDWLRQRI6WDWHZH DGGWKHWUDQVLHQWNH\ZRUGWRWKH *XPEDOO0DFKLQHLQVWDQFHYDULDEOH7KLV  WHOOVWKH-90QRWWRVHULDOL]HWKLVILHOG

?M¼^MITZMILaQUXTMUMV\MLW]Z/]UJITT5IKPQVMJ]\_MVMML\WUISM[]ZMQ\KIVIK\I[I[MZ^QKMIVL PIVLTMZMY]M[\[KWUQVONZWUW^MZ\PMVM\_WZS
)LUVWZHQHHGWRLPSRUWWKH UPLSDFNDJHV

*XPEDOO0DFKLQHLV JRLQJWRVXEFODVVWKH 8QLFDVW5HPRWH2EMHFW WKLVJLYHVLWWKHDELOLW\WR DFWDVDUHPRWHVHUYLFH

LPSRUWMDYDUPL  *XPEDOO0DFKLQHDOVRQHHGVWR LPSRUWMDYDUPLVHUYHU  LPSOHPHQWWKHUHPRWHLQWHUIDFH  SXEOLFFODVV*XPEDOO0DFKLQH H[WHQGV8QLFDVW5HPRWH2EMHFWLPSOHPHQWV*XPEDOO0DFKLQH5HPRWH ^ LQVWDQFHYDULDEOHVKHUH  SXEOLF*XPEDOO0DFKLQH 6WULQJORFDWLRQLQWQXPEHU*XPEDOOV WKURZV5HPRWH([FHSWLRQ^ FRGHKHUH `  SXEOLFLQWJHW&RXQW ^ UHWXUQFRXQW DQGWKHFRQVWUXFWRUQHHGV ` WRWKURZDUHPRWHH[FHSWLRQ  EHFDXVHWKHVXSHUFODVVGRHV SXEOLF6WDWHJHW6WDWH ^ UHWXUQVWDWH 7KDW·VLW1RWKLQJ ` FKDQJHVKHUHDWDOO  SXEOLF6WULQJJHW/RFDWLRQ ^ UHWXUQORFDWLRQ `  RWKHUPHWKRGVKHUH `



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 25

WKHSUR[\SDWWHUQ

:MOQ[\MZQVO_Q\P\PM:51ZMOQ[\Za @DUJV ^ *XPEDOO0DFKLQH5HPRWHJXPEDOO0DFKLQH QXOO LQWFRXQW LI DUJVOHQJWK ^ 6\VWHPRXWSULQWOQ ³*XPEDOO0DFKLQHQDPH!LQYHQWRU\!´  6\VWHPH[LW   )LUVWZHQHHGWRDGGDWU\FDWFKEORFN ` WU\^ FRXQW ,QWHJHUSDUVH,QW DUJV>@ 

DURXQGWKHJXPEDOOLQVWDQWLDWLRQEHFD XU FRQVWUXFWRUFDQQRZWKURZH[FHSWLRQVXVHR 

JXPEDOO0DFKLQH  QHZ*XPEDOO0DFKLQH DUJV>@FRXQW  1DPLQJUHELQG ³´DUJV>@³JXPEDOOPDFKLQH´JXPEDOO0DFKLQH  `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` :HDOVRDGGWKHFDOOWR1DPLQJUHELQG ` ZKLFKSXEOLVKHVWKH*XPEDOO0DFKLQHVWXE ` XQGHUWKHQDPHJXPEDOOPDFKLQH

4M\¼[OWIPMILIVLOM\\PQ[Z]VVQVO

5XQWKLVILUVW

7KLVJHWVWKH50, UHJLVWU\VHUYLFHXS DQGUXQQLQJ

)LOH(GLW:LQGRZ+HOS+XK"

UPLUHJLVWU\ )LOH(GLW:LQGRZ+HOS+XK"

MDYD*XPEDOO0DFKLQH³6HDWWOH´

5XQWKLVVHFRQG

7KLVJHWVWKH*XPEDOO0DFKLQHXSDQGUXQQLQJ DQGUHJLVWHUVLWZLWKWKH50,UHJLVWU\ \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 26

JXPEDOOPRQLWRUFOLHQW

6W_NWZ\PM/]UJITT5WVQ\WZKTQMV\ :MUMUJMZ\PM/]UJITT5WVQ\WZ'?M_IV\ML\WZM][MQ\_Q\PW]\ PI^QVO\WZM_ZQ\MQ\\W_WZSW^MZIVM\_WZS?MTT_M¼ZMXZM\\aU]KP OWQVO\WLW\PI\J]\_MLWVMML\WUISMINM_KPIVOM[

ZHDUH ,SDFNDJHEHFDXVH 0 5 KH W UW SR LP :HQHHGWR RWH([FHSWLRQFODVVEHORZ XVLQJWKH5HP PRWH LPSRUWMDYDUPL  WRUHO\RQWKHUH 1RZZH·UHJRLQKHJUWKDQWKHFRQFUHWH  LQWHUIDFHUDW FODVV SXEOLFFODVV*XPEDOO0RQLWRU^ *XPEDOO0DFKLQH *XPEDOO0DFKLQH5HPRWHPDFKLQH  SXEOLF*XPEDOO0RQLWRU *XPEDOO0DFKLQH5HPRWHPDFKLQH ^ WKLVPDFKLQH PDFKLQH `  SXEOLFYRLGUHSRUW ^ WU\^ 6\VWHPRXWSULQWOQ ³*XPEDOO0DFKLQH³PDFKLQHJHW/RFDWLRQ  6\VWHPRXWSULQWOQ ³&XUUHQWLQYHQWRU\³PDFKLQHJHW&RXQW ³JXPEDOOV´  6\VWHPRXWSULQWOQ ³&XUUHQWVWDWH³PDFKLQHJHW6WDWH  `FDWFK 5HPRWH([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` :HDOVRQHHGWRFDWFKDQ\UHPRWHH[FHSW ` LRQV WKDWPLJKWKDSSHQDVZHWU\WRLQYRNHP ` HWKRGV

WKDWDUHXOWLPDWHO\KDSSHQLQJRYHUWKHQHW ZRUN

)UDQNZDVULJKWWKLV LVZRUNLQJRXWTXLWH QLFHO\



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 27

WKHSUR[\SDWWHUQ

?ZQ\QVO\PM5WVQ\WZ\M[\LZQ^M 6W__M¼^MOW\ITT\PMXQMKM[_MVMML?MR][\VMML\W_ZQ\M[WUM KWLM[W\PM+-7KIVUWVQ\WZIJ]VKPWN O]UJITTUIKPQVM["

+HUH·VWKHPRQLWRUWHVWGULYH7KH &(2LVJRLQJWRUXQWKLV

WKHORFDWLRQV

+HUH·VDOO PRQLWRU :HFUHDWHDQ LPSRUWMDYDUPL   ZHUHJRLQJWR DUUD\RIORFDWLRQV SXEOLFFODVV*XPEDOO0RQLWRU7HVW'ULYH^ RQHIRUHDFK  PDFKLQH SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 6WULQJ>@ORFDWLRQ ^³UPLVDQWDIHPLJKW\JXPEDOOFRPJXPEDOOPDFKLQH´ ³UPLERXOGHUPLJKW\JXPEDOOFRPJXPEDOOPDFKLQH´ ³UPLVHDWWOHPLJKW\JXPEDOOFRPJXPEDOOPDFKLQH´`  *XPEDOO0RQLWRU>@PRQLWRU QHZ*XPEDOO0RQLWRU>ORFDWLRQOHQJWK@  IRU LQWL LORFDWLRQOHQJWKL ^ :HDOVRFUHDWHDQ WU\^ DUUD\RIPRQLWRUV *XPEDOO0DFKLQH5HPRWHPDFKLQH   *XPEDOO0DFKLQH5HPRWH 1DPLQJORRNXS ORFDWLRQ>L@  PRQLWRU>L@ QHZ*XPEDOO0RQLWRU PDFKLQH  6\VWHPRXWSULQWOQ PRQLWRU>L@  `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` ` 1RZZHQHHGWRJHWDSUR[\  WRHDFKUHPRWHPDFKLQH IRU LQWL LPRQLWRUOHQJWKL ^ PRQLWRU>L@UHSRUW  ` ` ` 7KHQZHLWHUDWHWKURXJKHDFK W PDFKLQHDQGSULQWRXWLWVUHSRU

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 28

WKHJXPEDOOPDFKLQHSUR[\

&RGH8S&ORVH 7KLVUHWXUQVDSUR[\WRWKHUHPRWH *XPEDOO0DFKLQH RUWKURZVDQH[FHSWLRQ LIRQHFDQ·WEHORFDWHG 

5HPHPEHU1DPLQJORRNXS LVD VWDWLFPHWKRGLQWKH50,SDFNDJH WKDWWDNHVDORFDWLRQDQGVHUYLFH QDPHDQGORRNVLWXSLQWKH UPLUHJLVWU\DWWKDWORFDWLRQ

WU\^ *XPEDOO0DFKLQH5HPRWHPDFKLQH      *XPEDOO0DFKLQH5HPRWH 1DPLQJORRNXS ORFDWLRQ>L@  PRQLWRU>L@ QHZ*XPEDOO0RQLWRU PDFKLQH  `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  `

 [\WRWKHUHPRWHRQ 2QFHZHJHWDSURHD DOO0 LWRU PE *X Z QH DW UH PDFKLQHZHF DFKLQHWRPRQLWRU DQGSDVVLWWKHP

)VW\PMZLMUWNWZ\PM+-7WN5QOP\a/]UJITT 7SIaQ\¼[\QUM\WX]\ITT\PQ[_WZS\WOM\PMZIVLOQ^MIVW\PMZLMUW.QZ[\TM\¼[UISM []ZMINM_O]UJITTUIKPQVM[IZMZ]VVQVO\PMVM_KWLM"

2QHDFKPDFKLQHUXQUPLUHJLVWU\LQ WKHEDFNJURXQGRUIURPDVHSDUDWH WHUPLQDOZLQGRZ

DQGWKHQUXQWKH*XPEDOO0DFKLQHJLYLQJLW DORFDWLRQDQGDQLQLWLDOJXPEDOOFRXQW

)LOH(GLW:LQGRZ+HOS+XK"

UPLUHJLVWU\ MDYD*XPEDOO0DFKLQHVDQWDIHPLJKW\JXPEDOOFRP )LOH(GLW:LQGRZ+HOS+XK"

UPLUHJLVWU\ MDYD*XPEDOO0DFKLQHERXOGHUPLJKW\JXPEDOOFRP )LOH(GLW:LQGRZ+HOS+XK"

UPLUHJLVWU\ MDYD*XPEDOO0DFKLQHVHDWWOHPLJKW\JXPEDOOFRP

SRSXODUPDFKLQH 

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 29

WKHSUR[\SDWWHUQ

)VLVW_TM\¼[X]\\PMUWVQ\WZQV\PMPIVL[WN\PM+-7 0WXMN]TTa\PQ[\QUMPM¼TTTW^MQ\"

)LOH(GLW:LQGRZ+HOS*XPEDOOV$QG%H\RQG

MDYD*XPEDOO0RQLWRU *XPEDOO0DFKLQHVDQWDIHPLJKW\JXPEDOOFRP &XUUHQWLQYHQWRU\JXPEDOOV &XUUHQWVWDWHZDLWLQJIRUTXDUWHU *XPEDOO0DFKLQHERXOGHUPLJKW\JXPEDOOFRP &XUUHQWLQYHQWRU\JXPEDOOV &XUUHQWVWDWHZDLWLQJIRUWXUQRIFUDQN

7KHPRQLWRULWHUDWHV RYHUHDFKUHPRWH PDFKLQHDQGFDOOVLWV JHW/RFDWLRQ  JHW&RXQW DQG JHW6WDWH PHWKRGV

*XPEDOO0DFKLQHVHDWWOHPLJKW\JXPEDOOFRP &XUUHQWLQYHQWRU\JXPEDOOV &XUUHQWVWDWHZDLWLQJIRUTXDUWHU 

7KLVLVDPD]LQJ LW·VJRLQJWRUHYROXWLRQL]HP\ EXVLQHVVDQGEORZDZD\WKH FRPSHWLWLRQ

%\LQYRNLQJPHWKRGVRQWKHSUR[\DUHPRWHFDOO LVPDGHDFURVVWKHZLUHDQGD6WULQJDQLQWHJHU DQGD6WDWHREMHFWDUHUHWXUQHG%HFDXVHZHDUH XVLQJDSUR[\WKH*XPEDOO0RQLWRUGRHVQ·WNQRZ RUFDUHWKDWFDOOVDUHUHPRWH RWKHUWKDQKDYLQJ WRZRUU\DERXWUHPRWHH[FHSWLRQV 

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 30

SUR[\EHKLQGWKHVFHQHV

7KLVZRUNHGJUHDW%XW ,ZDQWWRPDNHVXUH, XQGHUVWDQGH[DFWO\ZKDW·V JRLQJRQ



%HKLQG WKH6FHQHV

7KH&(2UXQVWKHPRQLWRUZKLFKÀUVWJUDEVWKHSUR[LHVWRWKHUHPRWH JXPEDOOPDFKLQHVDQGWKHQFDOOVJHW6WDWH RQHDFKRQH DORQJZLWK JHW&RXQW DQGJHW/RFDWLRQ 

&(2·VGHVNWRS 7\SHLV*XPEDOO0DFKLQH

5HPRWH*XPEDOO0DFKLQH ZLWKD-90

5HPRWH

RU

*X LW PEDOO0RQ

XE



W 3UR[\6

 OR RNX

SU 6 NH O R[ HWRQ \U HW XU QH G

QH

 WDWH JHW6

*X PEDO 0DFKL O



S  ´VH DWW OHµ

50,UHJLVWU\ RQJXPEDOOPDFKLQH VHDWWOH

3UR[\6WXE



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 31

WKHSUR[\SDWWHUQ



JHW6WDWH LVFDOOHGRQWKHSUR[\ZKLFKIRUZDUGVWKHFDOOWRWKHUHPRWH VHUYLFH7KHVNHOHWRQUHFHLYHVWKHUHTXHVWDQGWKHQIRUZDUGVLWWRWKH JXPEDOOPDFKLQH JHW6WDWH

RU

XE

 WDWH JHW6

*X LW PEDOO0RQ



QH

6 NH O HWRQ

W 3UR[\6

*X PEDO 0DFKL O

*XPEDOO0DFKLQHUHWXUQVWKHVWDWHWRWKHVNHOHWRQZKLFKVHULDOL]HVLWDQG WUDQVIHUVLWEDFNRYHUWKHZLUHWRWKHSUR[\7KHSUR[\GHVHULDOL]HVLWDQG UHWXUQVLWDVDQREMHFWWRWKHPRQLWRU 6WDWH REMHFW

6HULDOL]HG 6WDWH

RU

*X LW PEDOO0RQ

W 3UR[\6

DOO DVQ·WFKDQJHGDW HU QW 7KHPRQLWRUKZV RX QF H D\ LWP H[FHSWLWNQR WLRQ XVHVWKH  OVR D ,W V HS UHPRWHH[F 5HPRWHLQWHUIDFHUDWKHU *XPEDOO0DFKLQHHLPSOHPHQWDWLRQ WKDQDFRQFUHW

6 NH O HWRQ

QH

XE

6WDWH REMHFW

*X PEDO 0DFKL O

/LNHZLVHWKH*XPEDOO0DFKLQH LPSOHPHQWVDQRWKHULQWHUIDFHDQG PD\WKURZDUHPRWHH[FHSWLRQLQLWV FRQVWUXFWRUEXWRWKHUWKDQWKDWWKH FRGHKDVQ·WFKDQJHG

:HDOVRKDYHDVPDOOELWRIFRGHWRUHJLVWHUDQGORFDWHVWXEVXVLQJWKH 50,UHJLVWU\%XWQRPDWWHUZKDWLIZHZHUHZULWLQJVRPHWKLQJWR ZRUNRYHUWKH,QWHUQHWZH·GQHHGVRPHNLQGRIORFDWRUVHUYLFH

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 32

WKHSUR[\SDWWHUQGH¿QHG



?MTT_M¼^M[MMVPW_\PM8ZW`a8I\\MZVXZW^QLM[I[]ZZWOI\MWZ XTIKMPWTLMZNWZIVW\PMZWJRMK\?M¼^MIT[WLM[KZQJML\PMXZW`aI[ I¹ZMXZM[MV\I\Q^MºNWZIVW\PMZWJRMK\ *]\_PI\IJW]\IXZW`aKWV\ZWTTQVOIKKM[['
8VHWKH3UR[\ 3DWWHUQWRFUHDWHD UHSUHVHQWDWLYHREMHFW WKDWFRQWUROVDFFHVV WRDQRWKHUREMHFW ZKLFKPD\EHUHPRWH H[SHQVLYHWRFUHDWHRU LQQHHGRIVHFXULQJ

ƒ )[_MSVW_IZMUW\MXZW`aKWV\ZWT[IKKM[[\WI ZMUW\MWJRMK\

ƒ )^QZ\]ITXZW`aKWV\ZWT[IKKM[[\WIZM[W]ZKM\PI\Q[ M`XMV[Q^M\WKZMI\M

ƒ )XZW\MK\QWVXZW`aKWV\ZWT[IKKM[[\WIZM[W]ZKM JI[MLWVIKKM[[ZQOP\[ 6W_\PI\aW]¼^MOW\\PMOQ[\WN \PMOMVMZITXI\\MZVKPMKSW]\\PM KTI[[LQIOZIU



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 33

WKHSUR[\SDWWHUQ

QGWKH %RWKWKH3UR[\SOHDPHQWWKH LP FW 5HDO6XEMH 7KLV 6XEMHFWLQWHUIDFHWRWUHDW DOORZVDQ\FOLHQWOLNHWKH WKHSUR[\MXVW 5HDO6XEMHFW

LQWHUIDFH!!

6XEMHFW UHTXHVW

SUBJECT

5HDO6XEMHFW UHTXHVW

7KH5HDO6XEMHFWLV XVXDOO\WKHREMHFW WKDWGRHVPRVW RIWKHUHDOZRUN WKH3UR[\FRQWUROV DFFHVVWRLW

3UR[\ UHTXHVW

7KH3UR[\RIWHQLQVWDQWLDWHV RUKDQGOHVWKHFUHDWLRQRI WKH5HDO6XEMHFW

D 7KH3UR[\NHHSVKH W WR H QF UH UHIH  6XEMHFWVRLWFDQ  IRUZDUGUHTXHVWV WRWKH6XEMHFW ZKHQQHFHVVDU\

4M\¼[[\MX\PZW]OP\PMLQIOZIU .QZ[\_MPI^MI;]JRMK\_PQKPXZW^QLM[IVQV\MZNIKMNWZ\PM:MIT;]JRMK\IVL\PM8ZW`a *aQUXTMUMV\QVO\PM[IUMQV\MZNIKM\PM8ZW`aKIVJM[]J[\Q\]\MLNWZ\PM:MIT;]JRMK\ IVa_PMZMQ\WKK]Z[
\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 34

YLUWXDOSUR[\

/M\ZMILaNWZ>QZ\]IT8ZW`a 7SIa[WNIZaW]¼^M[MMV\PMLMÅVQ\QWVWN \PM8ZW`a8I\\MZVIVLaW]¼^M\ISMVITWWS I\WVM[XMKQÅKM`IUXTM"\PM:MUW\M8ZW`a6W__M¼ZMOWQVO\W\ISMITWWSI\ILQNNMZMV\ \aXMWN XZW`a\PM>QZ\]IT8ZW`a)[aW]¼TTLQ[KW^MZ\PM8ZW`a8I\\MZVKIVUIVQNM[\ Q\[MTN QVUIVaNWZU[aM\ITT\PMNWZU[NWTTW_ZW]OPTa\PMOMVMZITXZW`aLM[QOV?Pa [WUIVaNWZU['*MKI][M\PMXZW`aXI\\MZVKIVJMIXXTQML\WITW\WN LQNNMZMV\][M KI[M[4M\¼[KPMKSW]\\PM>QZ\]IT8ZW`aIVLKWUXIZMQ\\W:MUW\M8ZW`a"

:MUW\M8ZW`a

VW  UHTXH VW  UHTXH

 5HDO XEMHF 6

W

:LWK5HPRWH3UR[\WKHSUR[\ DFWVDVDORFDOUHSUHVHQWDWLYH IRUDQREMHFWWKDWOLYHVLQD GLIIHUHQW-90$PHWKRGFDOO RQWKHSUR[\UHVXOWVLQWKHFDOO EHLQJWUDQVIHUUHGRYHUWKHZLUH LQYRNHGUHPRWHO\DQGWKHUHVXOW EHLQJUHWXUQHGEDFNWRWKHSUR[\ DQGWKHQWRWKH&OLHQW

 &OLHQW

3UR[\

:HNQRZWKLVGLDJUDP SUHWW\ZHOOE\QRZ

HDWHµREMHFW

%LJ´H[SHQVLYHWRFU

>QZ\]IT8ZW`a

7KHSUR[\FUHDWHV WKH5HDO6XEMHFW ZKHQLW·VQHHGHG

W

9LUWXDO3UR[\DFWVDVD VW  UHSUHVHQWDWLYHIRUDQREMHFWWKDW UHTXH PD\EHH[SHQVLYHWRFUHDWH7KH 9LUWXDO3UR[\RIWHQGHIHUVWKH FUHDWLRQRIWKHREMHFWXQWLOLW 3UR[\   5HDO XEMHF LVQHHGHGWKH9LUWXDO3UR[\ &OLHQW 6 DOVRDFWVDVDVXUURJDWHIRU 7KHSUR[\PD\KDQGOHWKHUHTXHVWRULI WKHREMHFWEHIRUHDQGZKLOHLW WKH5HDO6XEMHFWKDVEHHQFUHDWHGGHOHJDWH LVEHLQJFUHDWHG$IWHUWKDWWKH WKHFDOOVWRWKH5HDO6XEMHFW SUR[\GHOHJDWHVUHTXHVWVGLUHFWO\WR WKH5HDO6XEMHFW



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 35

WKHSUR[\SDWWHUQ

,Q[XTIaQVO+,KW^MZ[ 4M\¼[[IaaW]_IV\\W_ZQ\MIVIXXTQKI\QWV\PI\LQ[XTIa[aW]ZNI^WZQ\MKWUXIK\LQ[K KW^MZ[AW]UQOP\KZMI\MIUMV]WN \PM+,\Q\TM[IVL\PMVZM\ZQM^M\PMQUIOM[ NZWUIVWVTQVM[MZ^QKMTQSM)UIbWVKWU1N aW]¼ZM][QVO;_QVOaW]UQOP\KZMI\M IV1KWVIVLI[SQ\\WTWIL\PMQUIOMNZWU\PMVM\_WZS
&KRRVHWKHDOEXPFRYHURI \RXUOLNLQJKHUH

:KLOHWKH&'FRYHU LVORDGLQJWKHSUR[\ GLVSOD\VDPHVVDJH

'FRYHULV [\ :KHQWKHG& GWKHSUR IXOO\ORD WHKHLPDJH GLVSOD\V \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 36

LPDJHSUR[\FRQWUROVDFFHVV

,M[QOVQVO\PM+,KW^MZ>QZ\]IT8ZW`a *MNWZM_ZQ\QVO\PMKWLMNWZ\PM+,+W^MZ>QM_MZTM\¼[TWWSI\\PMKTI[[LQIOZIU AW]¼TT[MM\PQ[TWWS[R][\TQSMW]Z:MUW\M8ZW`aKTI[[LQIOZIUJ]\PMZM\PMXZW`aQ[ ][ML\WPQLMIVWJRMK\\PI\Q[M`XMV[Q^M\WKZMI\MJMKI][M_MVMML\WZM\ZQM^M\PMLI\I NWZ\PM1KWVW^MZ\PMVM\_WZSI[WXXW[ML\WIVWJRMK\\PI\IK\]ITTaTQ^M[[WUM_PMZM MT[MWV\PMVM\_WZS

7KLVLVWKH6ZLQJ ,FRQLQWHUIDFHXVHG WRGLVSOD\LPDJHVLQD XVHULQWHUIDFH

LQWHUIDFH!!

,FRQ JHW,FRQ:LGWK JHW,FRQ+HLJKW SDLQW,FRQ

SUBJECT

,PDJH,FRQ

,PDJH3UR[\

JHW,FRQ:LGWK

JHW,FRQ:LGWK

JHW,FRQ+HLJKW

JHW,FRQ+HLJKW

SDLQW,FRQ

SDLQW,FRQ

7KLVLVMDYD[VZLQJ,PDJH,FRQ DFODVVWKDWGLVSOD\VDQ,PDJH

7KLVLVRXUSUR[\ZKLFKILUVW GLVSOD\VDPHVVDJHDQGWKHQZKHQ WKHLPDJHLVORDGHGGHOHJDWHVWR ,PDJH,FRQWRGLVSOD\WKHLPDJH

0W_1UIOM8ZW`aQ[OWQVO\W_WZS"





,PDJH3UR[\ÀUVWFUHDWHVDQ,PDJH,FRQDQGVWDUWV ORDGLQJLWIURPDQHWZRUN85/



:KLOHWKHE\WHVRIWKHLPDJHDUHEHLQJUHWULHYHG ,PDJH3UR[\GLVSOD\V´/RDGLQJ&'FRYHUSOHDVH ZDLWµ



:KHQWKHLPDJHLVIXOO\ORDGHG,PDJH3UR[\GHO HJDWHVDOOPHWKRGFDOOVWRWKHLPDJHLFRQLQFOXGLQJ SDLQW,FRQ JHW:LGWK DQGJHW+HLJKW 



,IWKHXVHUUHTXHVWVDQHZLPDJHZH·OOFUHDWHD QHZSUR[\DQGVWDUWWKHSURFHVVRYHU

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 37

WKHSUR[\SDWWHUQ

?ZQ\QVO\PM1UIOM8ZW`a

7KH,PDJH3UR[\ RQ LPSOHPHQWVWKH,F LQWHUIDFH

LQWHUIDFH!!

,FRQ JHW,FRQ:LGWK

FODVV,PDJH3UR[\LPSOHPHQWV,FRQ^ JHW,FRQ+HLJKW ,PDJH,FRQLPDJH,FRQ SDLQW,FRQ 85/LPDJH85/ 7KUHDGUHWULHYDO7KUHDG ERROHDQUHWULHYLQJ IDOVH 7KHLPDJH,FRQLVWKH5($/LFRQWKDWZH  HYHQWXDOO\ZDQWWRGLVSOD\ZKHQLW·VORDGHG SXEOLF,PDJH3UR[\ 85/XUO ^LPDJH85/ XUO`  :HSDVVWKH85/RIWKHLPDJHLQWR SXEOLFLQWJHW,FRQ:LGWK ^ LI LPDJH,FRQ QXOO ^ WKHFRQVWUXFWRU7KLVLVWKHLPDJH UHWXUQLPDJH,FRQJHW,FRQ:LGWK  ZHQHHGWRGLVSOD\RQFHLW·VORDGHG `HOVH^ UHWXUQ ` ` :HUHWXUQDGHIDXOWZLGWKDQGKHLJKW  XQWLOWKHLPDJH,FRQLVORDGHGWKHQZH SXEOLFLQWJHW,FRQ+HLJKW ^ LI LPDJH,FRQ QXOO ^ WXUQLWRYHUWRWKHLPDJH,FRQ UHWXUQLPDJH,FRQJHW,FRQ+HLJKW  `HOVH^ UHWXUQ ` `  SXEOLFYRLGSDLQW,FRQ ¿QDO&RPSRQHQWF*UDSKLFVJLQW[LQW\ ^ LI LPDJH,FRQ QXOO ^ LPDJH,FRQSDLQW,FRQ FJ[\  `HOVH^ JGUDZ6WULQJ ³/RDGLQJ&'FRYHUSOHDVHZDLW´[\  LI UHWULHYLQJ ^ UHWULHYLQJ WUXH UHWULHYDO7KUHDG QHZ7KUHDG QHZ5XQQDEOH ^ SXEOLFYRLGUXQ ^ WU\^ LPDJH,FRQ QHZ,PDJH,FRQ LPDJH85/³&'&RYHU´  FUHSDLQW  `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` +HUH·VZKHUHWKLQJVJHWLQWHUHVWLQJ ` 7KLVFRGHSDLQWVWKHLFRQRQWKH `  VFUHHQ E\GHOHJDWLQJWRWKH UHWULHYDO7KUHDGVWDUW  LPDJH,FRQ +RZHYHULIZHGRQ·WKDYH ` ` DIXOO\FUHDWHG,PDJH,FRQWKHQZH ` FUHDWHRQH/HW·VORRNDWWKLVFORVHU ` RQWKHQH[WSDJH \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 38

LPDJHSUR[\XSFORVH



&RGH8S&ORVH 7KLVPHWKRGLVFDOOHGZKHQLW·VWLPHWRSDLQWWKHLFRQRQWKHVFUHHQ

SXEOLFYRLGSDLQW,FRQ ¿QDO&RPSRQHQWF*UDSKLFVJLQW[LQW\ ^ LI LPDJH,FRQ QXOO ^ LPDJH,FRQSDLQW,FRQ FJ[\ 

,IZH·YHJRWDQLFRQDOUHDG\ZHJR DKHDGDQGWHOOLWWRSDLQWLWVHOI

`HOVH^ JGUDZ6WULQJ ³/RDGLQJ&'FRYHUSOHDVHZDLW´[\  LI UHWULHYLQJ ^

2WKHUZLVHZH

GLVSOD\WKH UHWULHYLQJ WUXH ´ORDGLQJµPHVVDJH UHWULHYDO7KUHDG QHZ7KUHDG QHZ5XQQDEOH ^ SXEOLFYRLGUXQ ^ WU\^ LPDJH,FRQ QHZ,PDJH,FRQ LPDJH85/³&'&RYHU´  FUHSDLQW  `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` ` `  RWHWKDW UHWULHYDO7KUHDGVWDUW  ` ` `



FRQLPDJH1 WKH5($/HL LVV\QFKURQRXVWKH LV DG OR H Z UH +HUH·VZKH ORDGLQJZLWK,FRQ,PDJ XUQXQWLOWKHLPDJH WKHLPDJH FRQVWUXFWRUGRHVQ·WUHWKRIDFKDQFHWRGR  ,PDJH,FRQ KDWGRHVQ·WJLYHXVPXF JHGLVSOD\HGVRZH·UHS ORDGHG7 DWHVDQGKDYHRXUPHVVD6HHWKH´&RGH:D\8 VFUHHQXSG RWKLVDV\QFKURQRXVO\H JRLQJWRG KHQH[WSDJHIRUPRU &ORVHµRQW

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 39

WKHSUR[\SDWWHUQ

&RGH:D\8S&ORVH YHWKHLPDJH ,IZHDUHQ·WDOUHDG\WU\LQJWRUHWULH JLW LQFDVH\RX WKHQLW·VWLPHWRVWDUWUHWULHYLQ OOVSDLQWVRZH GFD KUHD QHW QO\R QJR GHUL ZHUHZRQ GVDIHW\  KUHD RIW UPV LQWH  HUH D\K VKRXOGEHRN LI UHWULHYLQJ ^ :HGRQ·WZDQWWRKDQJXSWKH UHWULHYLQJ WUXH HQWLUHXVHULQWHUIDFHVRZH·UH JRLQJWRXVHDQRWKHUWKUHDGWR UHWULHYDO7KUHDG QHZ7KUHDG QHZ5XQQDEOH ^ SXEOLFYRLGUXQ ^ UHWULHYHWKHLPDJH WU\^ LPDJH,FRQ QHZ,PDJH,FRQ LPDJH85/³&'&RYHU´  FUHSDLQW  ,QRXUWKU `FDWFK ([FHSWLRQH ^ LQVWDQWLDWHHDGZH HSULQW6WDFN7UDFH  ,FRQREMHF WKH ` FRQVWUXFWRUW,WV ` :KHQZHKDYHWKHLPDJH UHWXUQXQWLOZLOOQRW `  ZHWHOO6ZLQJWKDWZH LP DJHLVORDGHGWKH UHWULHYDO7KUHDGVWDUW  QHHGWREHUHSDLQWHG  `

6RWKHQH[WWLPHWKHGLVSOD\LVSDLQWHGDIWHUWKH,PDJH,FRQLVLQVWDQWLDWHGWKHSDLQW,FRQ PHWKRGZLOOSDLQWWKHLPDJHQRWWKHORDGLQJPHVVDJH

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 40

GHVLJQSX]]OH

'HVLJQ3X]]OH

7KH,PDJH3UR[\FODVVDSSHDUVWRKDYHWZRVWDWHVWKDWDUHFRQWUROOHG E\FRQGLWLRQDOVWDWHPHQWV&DQ\RXWKLQNRIDQRWKHUSDWWHUQWKDW PLJKWFOHDQXSWKLVFRGH"+RZZRXOG\RXUHGHVLJQ,PDJH3UR[\"

FODVV,PDJH3UR[\LPSOHPHQWV,FRQ^ LQVWDQFHYDULDEOHV FRQVWUXFWRUKHUH  SXEOLFLQWJHW,FRQ:LGWK ^ LI LPDJH,FRQ QXOO ^ UHWXUQLPDJH,FRQJHW,FRQ:LGWK  7ZRVWDWHV `HOVH^ UHWXUQ ` `  SXEOLFLQWJHW,FRQ+HLJKW ^ LI LPDJH,FRQ QXOO ^ UHWXUQLPDJH,FRQJHW,FRQ+HLJKW  7ZRVWDWHV `HOVH^ UHWXUQ ` `  SXEOLFYRLGSDLQW,FRQ ¿QDO&RPSRQHQWF*UDSKLFVJLQW[LQW\ ^ LI LPDJH,FRQ QXOO ^ 7ZRVWDWHV LPDJH,FRQSDLQW,FRQ FJ[\  `HOVH^ JGUDZ6WULQJ ³/RDGLQJ&'FRYHUSOHDVHZDLW´[\   PRUHFRGHKHUH ` ` `



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 41

WKHSUR[\SDWWHUQ

QM_MZ 5HDG\EDNH &RGH

/KAY ITSTIMETOTESTOUTTHISFANCYNEWVIRTUALPROXY"EHINDTHE SCENESWEVEBEENBAKINGUPANEW)MAGE0ROXY4EST$RIVETHATSETSUP THEWINDOW CREATESAFRAME INSTALLSTHEMENUSANDCREATESOURPROXY 7EDONTGOTHROUGHALLTHATCODEINGORYDETAILHERE BUTYOUCAN ALWAYSGRABTHESOURCECODEANDHAVEALOOK ORCHECKITOUTATTHEEND OFTHECHAPTERWHEREWELISTALLTHESOURCECODEFORTHE6IRTUAL0ROXY (ERESAPARTIALVIEWOFTHETESTDRIVECODE

SXEOLFFODVV,PDJH3UR[\7HVW'ULYH^ ,PDJH&RPSRQHQWLPDJH&RPSRQHQW SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV WKURZV([FHSWLRQ^ ,PDJH3UR[\7HVW'ULYHWHVW'ULYH QHZ,PDJH3UR[\7HVW'ULYH  `  +HUHZHFUHDWHDQLPDJHSUR[\DQGVHW SXEOLF,PDJH3UR[\7HVW'ULYH WKURZV([FHSWLRQ^  LWWRDQLQLWLDO85/:KHQHYHU\RX VHWXSIUDPHDQGPHQXV FKRRVHDVHOHFWLRQIURPWKH&'PHQX  \RX·OOJHWDQHZLPDJHSUR[\ ,FRQLFRQ QHZ,PDJH3UR[\ LQLWLDO85/  LPDJH&RPSRQHQW QHZ,PDJH&RPSRQHQW LFRQ  1H[WZHZUDSRXUSUR[\LQD IUDPHJHW&RQWHQW3DQH DGG LPDJH&RPSRQHQW  FRPSRQHQWVRLWFDQEHDGGHGWR ` WKHIUDPH7KHFRPSRQHQWZLOO `

)LQDOO\ZHDGGWKHSUR[\WRWKHIUDPH VRLWFDQEHGLVSOD\HG

WDNHFDUHRIWKHSUR[\·VZLGWK KHLJKWDQGVLPLODUGHWDLOV

.OWLETSRUNTHETESTDRIVE )LOH(GLW:LQGRZ+HOS-XVW6RPH2I7KH&'V7KDW*RW8V7KURXJK7KLV%RRN

MDYD,PDJH3UR[\7HVW'ULYH

5XQQLQJ,PDJH3UR[\7HVW'ULYHVKRXOG JLYH\RXDZLQGRZOLNHWKLV
8VHWKHPHQXWRORDGGLIIHUHQW&'FRYHUVZDWFKWKH SUR[\GLVSOD\´ORDGLQJµXQWLOWKHLPDJHKDVDUULYHG



5HVL]HWKHZLQGRZDVWKH´ORDGLQJµPHVVDJHLV GLVSOD\HG1RWLFHWKDWWKHSUR[\LVKDQGOLQJWKHORDGLQJ ZLWKRXWKDQJLQJXSWKH6ZLQJZLQGRZ



$GG\RXURZQIDYRULWH&'VWRWKH,PDJH3UR[\7HVW'ULYH

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 42

EHKLQGWKHVFHQHVZLWKLPDJHSUR[\

?PI\LQL_MLW' 

%HKLQG

:HFUHDWHGDQ,PDJH3UR[\IRUWKHGLVSOD\7KHSDLQW,FRQ  PHWKRGLVFDOOHGDQG,PDJH3UR[\ÀUHVRIIDWKUHDGWR UHWULHYHWKHLPDJHDQGFUHDWHWKH,PDJH,FRQ

WKH6FHQHV

DWHVD ,PDJH3UR[\FUH LDWHWKH WD LQV R WKUHDGW LFKQWVWDUWV ZK ,PDJH,FRQ LPDJH UHWULHYLQJWKH

[\

SDLQW,FRQ

R  ,PDJH3U

,P DJ

JHWLPDJH

6RPHLPDJH VHUYHURQ WKH,QWHUQHW

H,FRQ

GLVSOD\VORDGLQJ PHVVDJH

LPDJHUHWULHYHG





$WVRPHSRLQWWKHLPDJHLVUHWXUQHGDQG WKH,PDJH,FRQIXOO\LQVWDQWLDWHG

,P DJ

H,FRQ

$IWHUWKH,PDJH,FRQLVFUHDWHGWKHQH[WWLPHSDLQW,FRQ LV FDOOHGWKHSUR[\GHOHJDWHVWRWKH,PDJH,FRQ

SDLQW,FRQ

[\

SDLQW,FRQ

R  ,PDJH3U

,P DJ

H,FRQ

GLVSOD\VWKHUHDOLPDJH



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 43

WKHSUR[\SDWWHUQ

there are no

Dumb Questions

Q:

4HE2EMOTE0ROXYAND6IRTUAL 0ROXYSEEMSODIFFERENTTOMEARE THEYREALLY/.%PATTERN

A:

9OULLlNDALOTOFVARIANTSOFTHE 0ROXY0ATTERNINTHEREALWORLDWHAT THEYALLHAVEINCOMMONISTHATTHEY INTERCEPTAMETHODINVOCATIONTHAT THECLIENTISMAKINGONTHESUBJECT 4HISLEVELOFINDIRECTIONALLOWSUSTO DOMANYTHINGS INCLUDINGDISPATCHING REQUESTSTOAREMOTESUBJECT PROVIDING AREPRESENTATIVEFORANEXPENSIVE OBJECTASITISCREATED OR ASYOULLSEE PROVIDINGSOMELEVELOFPROTECTIONTHAT CANDETERMINEWHICHCLIENTSSHOULDBE CALLINGWHICHMETHODS4HATSJUSTTHE BEGINNINGTHEGENERAL0ROXY0ATTERN CANBEAPPLIEDINMANYDIFFERENTWAYS ANDWELLCOVERSOMEOFTHEOTHERWAYS ATTHEENDOFTHECHAPTER

Q:

)MAGE0ROXYSEEMSJUSTLIKE A$ECORATORTOME)MEAN WEARE BASICALLYWRAPPINGONEOBJECTWITH ANOTHERANDTHENDELEGATINGTHE CALLSTOTHE)MAGE)CON7HATAM) MISSING

A:

3OMETIMES0ROXYAND$ECORATOR LOOKVERYSIMILAR BUTTHEIRPURPOSESARE DIFFERENTADECORATORADDSBEHAVIORTO ACLASS WHILEAPROXYCONTROLSACCESS TOIT9OUMIGHTSAY h)SNTTHELOADING MESSAGEADDINGBEHAVIORv)NSOME

WAYSITISHOWEVER MOREIMPORTANTLY THE)MAGE0ROXYISCONTROLLINGACCESS TOAN)MAGE)CON(OWDOESITCONTROL ACCESS7ELL THINKABOUTITTHISWAY THEPROXYISDECOUPLINGTHECLIENTFROM THE)MAGE)CON)FTHEYWERECOUPLED THECLIENTWOULDHAVETOWAITUNTILEACH IMAGEISRETRIEVEDBEFOREITCOULDPAINT ITENTIREINTERFACE4HEPROXYCONTROLS ACCESSTOTHE)MAGE)CONSOTHATBEFORE ITISFULLYCREATED THEPROXYPROVIDES ANOTHERONSCREENREPRESENTATION /NCETHE)MAGE)CONISCREATEDTHE PROXYALLOWSACCESS

Q:

(OWDO)MAKECLIENTSUSETHE 0ROXYRATHERTHANTHE2EAL3UBJECT

A:

'OODQUESTION/NECOMMON TECHNIQUEISTOPROVIDEAFACTORYTHAT INSTANTIATESANDRETURNSTHESUBJECT "ECAUSETHISHAPPENSINAFACTORY METHODWECANTHENWRAPTHESUBJECT WITHAPROXYBEFORERETURNINGIT4HE CLIENTNEVERKNOWSORCARESTHATITS USINGAPROXYINSTEADOFTHEREALTHING

Q:

)NOTICEDINTHE)MAGE0ROXY EXAMPLE YOUALWAYSCREATEANEW )MAGE)CONTOGETTHEIMAGE EVEN IFTHEIMAGEHASALREADYBEEN RETRIEVED#OULDYOUIMPLEMENT SOMETHINGSIMILARTOTHE)MAGE0ROXY THATCACHESPASTRETRIEVALS

A:

9OUARETALKINGABOUTASPECIAL IZEDFORMOFA6IRTUAL0ROXYCALLED A#ACHING0ROXY!CACHINGPROXY MAINTAINSACACHEOFPREVIOUSCREATED OBJECTSANDWHENAREQUESTISMADEIT RETURNSCACHEDOBJECT IFPOSSIBLE 7EREGOINGTOLOOKTHISANDATSEVERAL OTHERVARIANTSOFTHE0ROXY0ATTERNAT THEENDOFTHECHAPTER

Q:

)SEEHOW$ECORATORAND0ROXY RELATE BUTWHATABOUT!DAPTER!N ADAPTERSEEMSVERYSIMILARASWELL

A:

"OTH0ROXYAND!DAPTERSITIN FRONTOFOTHEROBJECTSANDFORWARD REQUESTSTOTHEM2EMEMBERTHAT !DAPTERCHANGESTHEINTERFACEOF THEOBJECTSITADAPTS WHILETHE0ROXY IMPLEMENTSTHESAMEINTERFACE 4HEREISONEADDITIONALSIMILARITYTHAT RELATESTOTHE0ROTECTION0ROXY! 0ROTECTION0ROXYMAYALLOWORDISALLOW ACLIENTACCESSTOPARTICULARMETHODS INANOBJECTBASEDONTHEROLEOFTHE CLIENT)NTHISWAYA0ROTECTION0ROXY MAYONLYPROVIDEAPARTIALINTERFACETO ACLIENT WHICHISQUITESIMILARTOSOME !DAPTERS7EAREGOINGTOTAKEALOOK AT0ROTECTION0ROXYINAFEWPAGES

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 44

¿UHVLGHFKDWVSUR[\DQGGHFRUDWRU


8ZW`a

,MKWZI\WZ

0MTTW,MKWZI\WZ1XZM[]UMaW]¼ZMPMZM JMKI][MXMWXTM[WUM\QUM[OM\][KWVN][ML'

5MKWXaQVOaW]ZQLMI['8TMI[M1KWV\ZWTIKKM[[ \WWJRMK\[AW]R][\LMKWZI\M\PMU5aRWJQ[ [WU]KPUWZMQUXWZ\IV\\PIVaW]Z[Q\¼[R][\VW\ M^MVN]VVa

.QVM[WUIaJMaW]¼ZMVW\MV\QZMTaNZQ^WTW][ J]\1[\QTTLWV¼\OM\_PaaW]\PQVS1¼UKWXaQVO ITTaW]ZQLMI[1¼UITTIJW]\ZMXZM[MV\QVOUa []JRMK\[VW\LMKWZI\QVO\PMU

1LWV¼\\PQVSaW]OM\Q\,MKWZI\WZ1[\IVLQVNWZ Ua;]JRMK\[#1LWV¼\R][\ILLJMPI^QWZ+TQMV\[ ][MUMI[I[]ZZWOI\MWN I:MIT;]JRMK\JMKI][M 1KIVXZW\MK\\PMUNZWU]V_IV\MLIKKM[[WZSMMX \PMQZ/=1[NZWUPIVOQVO]X_PQTM\PMa¼ZM_IQ\QVO NWZJQOWJRMK\[\WTWILWZPQLM\PMNIK\\PI\\PMQZ ;]JRMK\[IZMZ]VVQVOWVZMUW\MUIKPQVM[1¼L[Ia \PI\¼[I^MZaLQNNMZMV\QV\MV\NZWUaW]Z[



?MTT1\PQVS\PMZMI[WVXMWXTMOM\][KWVN][ML Q[\PI\aW]OWIZW]VLXZM\MVLQVO\WJMIV MV\QZMTaLQNNMZMV\XI\\MZV_PMVQVNIK\aW]¼ZM R][\I,MKWZI\WZQVLQ[O]Q[M1ZMITTaLWV¼\ \PQVSaW][PW]TLJMKWXaQVOITTUaQLMI[

¹2][\ºLMKWZI\M'AW]\PQVSLMKWZI\QVOQ[[WUM NZQ^WTW][]VQUXWZ\IV\XI\\MZV'4M\UM\MTT aW]J]LLa1ILLJMPI^QWZ
AW]KIVKITTQ\¹ZMXZM[MV\I\QWVºJ]\QN Q\TWWS[ TQSMIL]KSIVL_ITS[TQSMIL]KS1UMIVR][\ TWWSI\aW]Z>QZ\]IT8ZW`a#Q\¼[R][\IVW\PMZ _IaWN ILLQVOJMPI^QWZ\WLW[WUM\PQVO_PQTM [WUMJQOM`XMV[Q^MWJRMK\Q[TWILQVOIVLaW]Z :MUW\M8ZW`aQ[I_IaWN \ITSQVO\WZMUW\M WJRMK\[[WaW]ZKTQMV\[LWV¼\PI^M\WJW\PMZ _Q\P\PI\\PMU[MT^M[1\¼[ITTIJW]\JMPI^QWZ R][\TQSM1[IQL

+ITTQ\_PI\aW]_IV\1QUXTMUMV\\PM[IUM QV\MZNIKMI[\PMWJRMK\[1_ZIX#[WLWaW]

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 45

WKHSUR[\SDWWHUQ

8ZW`a

,MKWZI\WZ

7SIaTM\¼[ZM^QM_\PI\[\I\MUMV\AW]_ZIX IVWJRMK\?PQTM[WUM\QUM[_MQVNWZUITTa[Ia IXZW`a_ZIX[Q\[;]JRMK\\PI\¼[VW\ZMITTaIV IKK]ZI\M\MZU

7PaMIP'?PaVW\'


=PP]PIVL\PMVM`\\PQVOaW]¼TTJM[IaQVOQ[ \PI\aW]IK\]ITTaOM\\WKZMI\MWJRMK\[

1VM^MZSVM_LMKWZI\WZ[_MZM[WL]UJ 7N  KW]Z[M1[WUM\QUM[KZMI\MWJRMK\[PW_LWaW] \PQVSI^QZ\]ITXZW`aOM\[Q\[[]JRMK\ 7SIaaW] R][\XWQV\MLW]\IJQOLQNNMZMVKMJM\_MMV][" _MJW\PSVW_LMKWZI\WZ[WVTaILL_QVLW_ LZM[[QVO#\PMaVM^MZOM\\WQV[\IV\QI\MIVa\PQVO 7PaMIP'1V[\IV\QI\M\PQ[ 0MaIN\MZ\PQ[KWV^MZ[I\QWV1¼UKWV^QVKML aW]¼ZMR][\IL]UJXZW`a

>MZa[MTLWU_QTTaW]M^MZ[MMIXZW`aOM\QV\W _ZIXXQVOI[]JRMK\U]T\QXTM\QUM[#QVNIK\QN  aW]¼ZM_ZIXXQVO[WUM\PQVO\QUM[aW] JM\\MZOWJIKSZMM`IUQVMaW]ZLM[QOV

,]UJXZW`a'1¼LTQSM\W[MMaW]ZMK]Z[Q^MTa _ZIXIVWJRMK\_Q\PLMKWZI\WZ[IVLSMMX aW]ZPMIL[\ZIQOP\I\\PM[IUM\QUM

2][\TQSMIXZW`aIK\QVOITTZMIT_PMVQVNIK\aW] R][\[\IVLQVNWZ\PMWJRMK\[LWQVO\PMZMIT_WZS AW]SVW_1IK\]ITTaNMMT[WZZaNWZaW] \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 46

SURWHFWLRQSUR[\

=[QVO\PM2I^I)81¼[8ZW`a\WKZMI\MI XZW\MK\QWVXZW`a 2I^I¼[OW\Q\[W_VXZW`a[]XXWZ\ZQOP\QV\PMRI^ITIVOZMÆMK\XIKSIOM?Q\P\PQ[XIKSIOM2I^I TM\[aW]KZMI\MIXZW`aKTI[[WV\PMÆa\PI\QUXTMUMV\[WVMWZUWZMQV\MZNIKM[IVLNWZ_IZL[ UM\PWLQV^WKI\QWV[\WIKTI[[\PI\aW][XMKQNa*MKI][M\PMIK\]ITXZW`aKTI[[Q[KZMI\MLI\ Z]V\QUM_MZMNMZ\W\PQ[2I^I\MKPVWTWOaI[ILaVIUQKXZW`a ?M¼ZMOWQVO\W][M2I^I¼[LaVIUQKXZW`a\WKZMI\MW]ZVM`\XZW`aQUXTMUMV\I\QWVI XZW\MK\QWVXZW`aJ]\JMNWZM_MLW\PI\TM\¼[Y]QKSTaTWWSI\IKTI[[LQIOZIU\PI\[PW_[PW_ LaVIUQKXZW`QM[IZMX]\\WOM\PMZ4QSMUW[\\PQVO[QV\PMZMIT_WZTLQ\LQNNMZ[[TQOP\TaNZWU \PMKTI[[QKLMÅVQ\QWVWN \PMXI\\MZV"

LQWHUIDFH!! 6XEMHFW

LQWHUIDFH!! ,QYRFDWLRQ+DQGOHU

UHTXHVW

LQYRNH

RQVLVWV

7KH3UR[\QRZVF RIWZRFODVVH 3UR[\

5HDO6XEMHFW UHTXHVW

UHTXHVW

,QYRFDWLRQ+DQGOHU LQYRNH

7KH3UR[\LVJHQHUDWHG E\-DYDDQGLPSOHPHQWV WKHHQWLUH6XEMHFW LQWHUIDFH

KLFKJHWV
*MKI][M2I^IKZMI\M[\PM8ZW`aKTI[[NWZaW]aW]VMMLI_Ia\W\MTT\PM8ZW`aKTI[[_PI\\WLWAW]KIV¼\ X]\\PI\KWLMQV\W\PM8ZW`aKTI[[TQSM_MLQLJMNWZMJMKI][MaW]¼ZMVW\QUXTMUMV\QVOWVMLQZMK\Ta;WQN  aW]KIV¼\X]\\PQ[KWLMQV\PM8ZW`aKTI[[_PMZMLWaW]X]\Q\'1VIV1V^WKI\QWV0IVLTMZ
&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 47

WKHSUR[\SDWWHUQ

5I\KPUISQVOQV7JRMK\ ^QTTM

1RW +RW

-^MZa\W_VVMML[IUI\KPUISQVO[MZ^QKMZQOP\'AW]¼^MZQ[MV\W\PM\I[SIVL QUXTMUMV\MLILI\QVO[MZ^QKMNWZ7JRMK\^QTTMAW]¼^MIT[W\ZQML\WJMQVVW^I\Q^MJa QVKT]LQVOI¹0W\WZ6W\ºNMI\]ZMQV\PM[MZ^QKM_PMZMXIZ\QKQXIV\[KIVZI\MMIKP W\PMZ·aW]ÅO]ZM\PQ[SMMX[aW]ZK][\WUMZ[MVOIOMLIVLTWWSQVO\PZW]OPXW[[QJTM UI\KPM[#Q\IT[WUISM[\PQVO[ITW\UWZMN]V AW]Z[MZ^QKMZM^WT^M[IZW]VLI8MZ[WVJMIV\PI\ITTW_[aW]\W[M\IVLOM\QVNWZUI\QWV IJW]\IXMZ[WV"

H·OO QWHUIDFHZ 7KLVLVWKHLLPSOHPHQWDWLRQ JHWWRWKH F LQMXVWDVH

SXEOLFLQWHUIDFH3HUVRQ%HDQ^  6WULQJJHW1DPH  6WULQJJHW*HQGHU  6WULQJJHW,QWHUHVWV  LQWJHW+RW2U1RW5DWLQJ   YRLGVHW1DPH 6WULQJQDPH  YRLGVHW*HQGHU 6WULQJJHQGHU  YRLGVHW,QWHUHVWV 6WULQJLQWHUHVWV  YRLGVHW+RW2U1RW5DWLQJ LQWUDWLQJ   `

:HFDQDOVRVHWWKHVDPH LQIRUPDWLRQWKURXJKWKH UHVSHFWLYHPHWKRGFDOOV

+HUHZHFDQ DERXWWKHSH JHWLQIRUPDWLRQ JHQGHULQWHU UVRQ·VQDPH +RW2U1RWUDWHVWVDQG LQJ  

DWLQJ WDNHV VHW+RW2U1RW5 DGGVLWWRWKH DQLQWHJHUDQGHIRUWKLVSHUVRQ UXQQLQJDYHUDJ

6W_TM\¼[KPMKSW]\\PMQUXTMUMV\I\QWV

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 48

SHUVRQEHDQQHHGVSURWHFWLQJ




&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 49

WKHSUR[\SDWWHUQ

,ZDVQ·WYHU\VXFFHVVIXOÀQGLQJ GDWHV7KHQ,QRWLFHGVRPHRQHKDGFKDQJHG P\LQWHUHVWV,DOVRQRWLFHGWKDWDORWRISHRSOH DUHEXPSLQJXSWKHLU+RW2U1RWVFRUHVE\JLYLQJ WKHPVHOYHVKLJKUDWLQJV
?PQTM_M[][XMK\W\PMZNIK\WZ[UIaJMSMMXQVO-TZWaNZWUOM\\QVO LI\M[PMQ[ZQOP\"aW][PW]TLV¼\JMIJTM\W^W\MNWZaW]Z[MTN WZ\WKPIVOM IVW\PMZK][\WUMZ¼[LI\I
(OUR\

1VW]ZLI\QVO[MZ^QKM_M_IV\\WUISM[]ZM\PI\IK][\WUMZKIV[M\PQ[ W_VQVNWZUI\QWV_PQTMXZM^MV\QVOW\PMZ[NZWUIT\MZQVOQ\?MIT[W_IV\ \WITTW_R][\\PMWXXW[Q\M_Q\P\PM0W\7Z6W\ZI\QVO["_M_IV\\PMW\PMZ K][\WUMZ[\WJMIJTM\W[M\\PMZI\QVOJ]\VW\\PI\XIZ\QK]TIZK][\WUMZ ?MIT[WPI^MIV]UJMZWN OM\\MZUM\PWL[QV\PM8MZ[WV*MIVIVL JMKI][MVWVMWN \PM[MZM\]ZVXZQ^I\MQVNWZUI\QWVIVaK][\WUMZ[PW]TL JMIJTM\WKITT\PMU

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 50

¿YHPLQXWHGUDPD

.Q^MUQV]\MLZIUI"XZW\MK\QVO[]JRMK\[ 7KH,QWHUQHWEXEEOHVHHPVDGLVWDQWPHPRU\WKRVHZHUHWKHGD\V ZKHQDOO\RXQHHGHGWRGRWRÀQGDEHWWHUKLJKHUSD\LQJMREZDVWR ZDONDFURVVWKHVWUHHW(YHQDJHQWVIRUVRIWZDUHGHYHORSHUVZHUH LQYRJXH

,·GOLNHWRPDNHDQ RIIHUFDQZHJHWKHURQ WKHSKRQH"

6KH·VWLHGXSXK LQDPHHWLQJULJKWQRZ ZKDWGLG\RXKDYHLQ PLQG"

\ HFWLRQSUR[ /LNHDSURWSURWHFWVDFFHVV WKHDJHQW FWRQO\OHWWLQJ WRKLVVXEMH WKURXJK FHUWDLQFDOOV

-RH'RW&RP

$JHQW

:HWKLQNZHFDQ PHHWKHUFXUUHQW VDODU\SOXV



&RPH RQ
&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 51

WKHSUR[\SDWWHUQ

*QO8QK\]ZM"KZMI\QVOI, aVIUQK8ZW`a NWZ\PM8MZ[WV*MIV ?MPI^MIKW]XTMWN XZWJTMU[\WÅ`"K][\WUMZ[[PW]TLV¼\JMKPIVOQVO\PMQZW_V 0W\7Z6W\ZI\QVOIVLK][\WUMZ[[PW]TLV¼\JMIJTM\WKPIVOMW\PMZK][\WUMZ[¼XMZ[WVIT QVNWZUI\QWV

5HPHPEHUWKLVGLDJUDP IURPDIHZSDJHVEDFN

LQWHUIDFH!! 6XEMHFW

LQWHUIDFH!! ,QYRFDWLRQ+DQGOHU

UHTXHVW

3UR[\

5HDO6XEMHFW

6WHSRQH

LQYRNH

UHTXHVW

,QYRFDWLRQ+DQGOHU

UHTXHVW

LQYRNH

&UHDWHWZR,QYRFDWLRQ+DQGOHUV 1V^WKI\QWV0IVLTMZ[QUXTMUMV\\PMJMPI^QWZ WN \PMXZW`a)[aW]¼TT[MM2I^I_QTT\ISMKIZM WN KZMI\QVO\PMIK\]ITXZW`aKTI[[IVLWJRMK\ _MR][\VMML\W[]XXTaIPIVLTMZ\PI\SVW_[ _PI\\WLW_PMVIUM\PWLQ[KITTMLWVQ\

:HQHHGWZR RIWKHVH :HFUHDWHWKH SUR[\LWVHOIDW UXQWLPH

6WHSWZR :ULWHWKHFRGHWKDWFUHDWHVWKH G\QDPLFSUR[LHV ?MVMML\W_ZQ\MITQ\\TMJQ\WN KWLM\W OMVMZI\M\PMXZW`aKTI[[IVLQV[\IV\QI\MQ\ ?M¼TT[\MX\PZW]OP\PQ[KWLMQVR][\IJQ\ 3UR[\ UHTXHVW

6WHSWKUHH :UDSDQ\3HUVRQ%HDQREMHFWZLWK WKHDSSURSULDWHSUR[\

2ZQHU,QYRFDWLRQ+DQGOHU LQYRNH

Q

?PMV_MVMML\W][MI8MZ[WV*MIVWJRMK\ MQ\PMZQ\¼[\PMWJRMK\WN \PMK][\WUMZPQU[MTN  QV\PI\KI[M_QTTKITTPQU\PM¹W_VMZºWZQ\¼[ IVW\PMZ][MZWN \PM[MZ^QKM\PI\\PMK][\WUMZQ[ KPMKSQVOW]\QV\PI\KI[M_M¼TTKITTPQU¹VWV W_VMZº

:KHQDFXVWRPHULVYLHZLQJKLVRZQEHD

:KHQDFXVWRPHULVYLHZLQJVRPHRQHHOVH

·VEHDQ

3UR[\ UHTXHVW

1RQ2ZQHU,QYRFDWLRQ+DQGOHU LQYRNH

1VMQ\PMZKI[M_MKZMI\M\PMIXXZWXZQI\MXZW`a NWZ\PM8MZ[WV*MIV \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 52

FUHDWHDQLQYRFDWLRQKDQGOHU

;\MXWVM"KZMI\QVO1V^WKI\QWV0IVLTMZ[ ?MSVW__MVMML\W_ZQ\M\_WQV^WKI\QWVPIVLTMZ[WVMNWZ\PMW_VMZIVLWVMNWZ\PMVWVW_VMZ*]\ _PI\IZMQV^WKI\QWVPIVLTMZ['0MZM¼[\PM_Ia\W\PQVSIJW]\\PMU"_PMVIUM\PWLKITTQ[UILMWV\PM XZW`a\PMXZW`aNWZ_IZL[\PI\KITT\WaW]ZQV^WKI\QWVPIVLTMZJ]\VW\JaKITTQVO\PMQV^WKI\QWVPIVLTMZ¼[ KWZZM[XWVLQVOUM\PWL;W_PI\LWM[Q\KITT'0I^MITWWSI\\PM1V^WKI\QWV0IVLTMZQV\MZNIKM" LQWHUIDFH!! 2ZQHU,QYRFDWLRQ+DQGOHU

LQYRNH


 /HW·VVD\WKHVHW+RW2U1RW5DWLQJ  PHWKRGLVFDOOHGRQWKHSUR[\

SUR[\VHW+RW2U1RW5DWLQJ  

 7KHSUR[\WKHQ WXUQVDURXQGDQG FDOOVLQYRNH RQWKH ,QYRFDWLRQ+DQGOHU

LQYRNH 2EMHFWSUR[\0HWKRGPHWKRG2EMHFW>@DUJV

 7KHKDQGOHUGHFLGHV ZKDWLWVKRXOGGR ZLWKWKHUHTXHVW DQGSRVVLEO\ IRUZDUGVLWRQWR WKH5HDO6XEMHFW +RZGRHVWKH KDQGOHUGHFLGH" :H·OOÀQGRXWQH[W



+HUH·VKRZZH LQYRNHWKHPHWKRG RQWKH5HDO 6XEMHFW

7KH0HWKRGFODVVSDUWRIWKH UHIOHFWLRQ$3,WHOOVXVZKDW PHWKRGZDVFDOOHGRQWKHSUR[\ YLDLWVJHW1DPH PHWKRG

UHWXUQPHWKRGLQYRNH SHUVRQDUJV 

+HUHZHLQYRNHWKH 2QO\QRZZH RULJLQDOPHWKRGWKDWZDV LQYRNHLWRQWKH FDOOHGRQWKHSUR[\7KLV 5HDO6XEMHFW REMHFWZDVSDVVHGWRXVLQ WKHLQYRNHFDOO

ZLWKWKHRULJLQDO DUJXPHQWV

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 53

WKHSUR[\SDWWHUQ

+ZMI\QVO1V^WKI\QWV0IVLTMZ[KWV\QV]ML ?PMVQV^WSMQ[KITTMLJa\PMXZW`aPW_LWaW]SVW__PI\\WLW_Q\P\PMKITT'
MDYDODQJUHIOHFW ,QYRFDWLRQ+DQGOHULVSDUWRIWKH LW SRUW RLP HGW HQH SDFNDJHVRZ

$OOLQYRFDWLRQ KDQGOHUVLPSOHPHQW WKH,QYRFDWLRQ+DQGOHU LQWHUIDFH :H

·UHSDVVHGWKH LPSRUWMDYDODQJUHÀHFW  5HDO6XEMHFWLQWKH  SXEOLFFODVV2ZQHU,QYRFDWLRQ+DQGOHULPSOHPHQWV,QYRFDWLRQ+DQGOHU^ FRQVWUXFWRUDQGZH NHHSDUHIHUHQFHWRLW 3HUVRQ%HDQSHUVRQ  SXEOLF2ZQHU,QYRFDWLRQ+DQGOHU 3HUVRQ%HDQSHUVRQ ^ +HUH·VWKHLQYRNH WKLVSHUVRQ SHUVRQ PHWKRGWKDWJHWV ` FDOOHGHYHU\WLPHD  PHWKRGLVLQYRNHG SXEOLF2EMHFWLQYRNH 2EMHFWSUR[\0HWKRGPHWKRG2EMHFW>@DUJV  RQWKHSUR[\ WKURZV,OOHJDO$FFHVV([FHSWLRQ^  ,IWKHPHWKRGLVD WU\^ JHWWHUZHJRDKHDG LI PHWKRGJHW1DPH VWDUWV:LWK ³JHW´ ^ UHWXUQPHWKRGLQYRNH SHUVRQDUJV  DQGLQYRNHLWRQWKH `HOVHLI PHWKRGJHW1DPH HTXDOV ³VHW+RW2U1RW5DWLQJ´ ^ UHDOVXEMHFW WKURZQHZ,OOHJDO$FFHVV([FHSWLRQ  `HOVHLI PHWKRGJHW1DPH VWDUWV:LWK ³VHW´ ^ 2WKHUZLVHLILWLVWKH UHWXUQPHWKRGLQYRNH SHUVRQDUJV  VHW+RW2U1RW5DWLQJ  ` PHWKRGZHGLVDOORZ `FDWFK ,QYRFDWLRQ7DUJHW([FHSWLRQH ^ LWE\WKURZLQJD HSULQW6WDFN7UDFH  ,OOHJDO$FFHVV([FHSWLRQ ` UHWXUQQXOO %HFDXVHZHDUH 7K LVZ LOO KDS SHQ LI  ` WKHRZQHUDQ\ WKHUHDOVXEMHFW ` RWK

,IDQ\RWKHUPHWKRGLVF DOOHG ZH·UHMXVWJRLQJWRUHW XUQQXOO UDWKHUWKDQWDNHDFKDQF H

WKURZVDQH[FHSWLRQ

HUVHWPHWKRG LVILQHDQGZHJR DKHDGDQGLQYRNH LWRQWKHUHDO VXEMHFW

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 54

FUHDWH\RXURZQLQYRFDWLRQKDQGOHU

([HUFLVH




&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 55

WKHSUR[\SDWWHUQ

;\MX\ _W"KZMI\QVO\PM8ZW`aKTI[[IVL QV[\IV\QI\QVO\PM8ZW`aWJRMK\ 6W_ITT_MPI^MTMN\Q[\WLaVIUQKITTaKZMI\M\PMXZW`aKTI[[IVLQV[\IV\QI\M\PMXZW`aWJRMK\4M\¼[[\IZ\Ja_ZQ\QVOI UM\PWL\PI\\ISM[I8MZ[WV*MIVIVLSVW_[PW_\WKZMI\MIVW_VMZXZW`aNWZQ\
7KLVPHWKRGWDNHVDSHUVRQREMHFW WKHUHDO VXEMHFW DQGUHWXUQVDSUR[\IRULW%HFDXVHWHKH SUR[\KDVWKHVDPHLQWHUIDFHDVWKHVXEMHFWZ UHWXUQD3HUVRQ%HDQ

7KLVFRGHFUHDWHVWKH SUR[\1RZWKLVLVVRPH PLJKW\XJO\FRGHVROHW·V VWHSWKURXJKLWFDUHIXOO\

3HUVRQ%HDQJHW2ZQHU3UR[\ 3HUVRQ%HDQSHUVRQ ^  UHWXUQ 3HUVRQ%HDQ 3UR[\QHZ3UR[\,QVWDQFH  SHUVRQJHW&ODVV JHW&ODVV/RDGHU  SHUVRQJHW&ODVV JHW,QWHUIDFHV  QHZ2ZQHU,QYRFDWLRQ+DQGOHU SHUVRQ  `

:HSDVVWKHUHDOVXEMHFWLQWRWKHFRQVWUXFWRU RIWKHLQYRFDWLRQKDQGOHU,I\RXORRNEDFN WZRSDJHV\RX·OOVHHWKLVLVKRZWKHKDQGOHUJHWV DFFHVVWRWKHUHDOVXEMHFW

6KDUSHQ \RXU SHQFLO

7RFUHDWHDSUR[\ZHXVH WKHVWDWLFQHZ3UR[\,QVWDQFH PHWKRGRQWKH3UR[\FODVV :HSDVVLWWKHFODVVORDGHU IRURXUVXEMHFW DQGWKHVHWRILQWHUIDFHVWKH SUR[\QHHGVWRLPSOHPHQW

DQGDQLQYRFDWLRQKDQGOHULQWKLV FDVHRXU2ZQHU,QYRFDWLRQ+DQGOHU

:KLOHLWLVDOLWWOHFRPSOLFDWHGWKHUHLVQ¶WPXFKWRFUHDWLQJDG\QDPLFSUR[\ :K\GRQ¶W\RXZULWHJHW1RQ2ZQHU3UR[\ ZKLFKUHWXUQVDSUR[\IRUWKH 1RQ2ZQHU,QYRFDWLRQ+DQGOHU

7DNHLWIXUWKHUFDQ\RXZULWHRQHPHWKRGJHW3UR[\ WKDWWDNHVD KDQGOHUDQGDSHUVRQDQGUHWXUQVDSUR[\WKDWXVHVWKDWKDQGOHU" \RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 56

¿QG\RXUPDWFK


0DLQMXVWFUHDWHVWKHWHVW

SXEOLFFODVV0DWFK0DNLQJ7HVW'ULYH^ GULYHDQGFDOOVLWVGULYH  LQVWDQFHYDULDEOHVKHUH PHWKRGWRJHWWKLQJVJRLQJ  SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 0DWFK0DNLQJ7HVW'ULYHWHVW QHZ0DWFK0DNLQJ7HVW'ULYH  WHVWGULYH  ` 7KHFRQVWUXFWRULQLWLDOL]HV  RXU'%RISHRSOHLQWKH SXEOLF0DWFK0DNLQJ7HVW'ULYH ^ PDWFKPDNLQJVHUYLFH LQLWLDOL]H'DWDEDVH  ` /HW·VUHWULHYHD SXEOLFYRLGGULYH ^ SHUVRQIURPWKH'% 3HUVRQ%HDQMRH JHW3HUVRQ)URP'DWDEDVH ³-RH-DYDEHDQ´  3HUVRQ%HDQRZQHU3UR[\ JHW2ZQHU3UR[\ MRH  DQGFUHDWHDQ 6\VWHPRXWSULQWOQ ³1DPHLV³RZQHU3UR[\JHW1DPH  RZQHUSUR[\ RZQHU3UR[\VHW,QWHUHVWV ³ERZOLQJ*R´  &DOODJHWWHU 6\VWHPRXWSULQWOQ ³,QWHUHVWVVHWIURPRZQHUSUR[\´  WU\^ DQGWKHQDVHWWHU RZQHU3UR[\VHW+RW2U1RW5DWLQJ   DQGWKHQWU\WR `FDWFK ([FHSWLRQH ^ FKDQJHWKHUDWLQJ 6\VWHPRXWSULQWOQ ³&DQ¶WVHWUDWLQJIURPRZQHUSUR[\´  ` 6\VWHPRXWSULQWOQ ³5DWLQJLV³RZQHU3UR[\JHW+RW2U1RW5DWLQJ  WKLVVKRXOGQ·WZRUN 3HUVRQ%HDQQRQ2ZQHU3UR[\ JHW1RQ2ZQHU3UR[\ MRH  1RZFUHDWHDQRQ 6\VWHPRXWSULQWOQ ³1DPHLV³QRQ2ZQHU3UR[\JHW1DPH  RZQHUSUR[\ WU\^ FDOODJHWWHU DQG QRQ2ZQHU3UR[\VHW,QWHUHVWV ³ERZOLQJ*R´  IROORZHGE\D `FDWFK ([FHSWLRQH ^ 6\VWHPRXWSULQWOQ ³&DQ¶WVHWLQWHUHVWVIURPQRQRZQHUSUR[\´  VHWWHU ` 7KLVVKRXOGQ·WZRUN QRQ2ZQHU3UR[\VHW+RW2U1RW5DWLQJ   6\VWHPRXWSULQWOQ ³5DWLQJVHWIURPQRQRZQHUSUR[\´  6\VWHPRXWSULQWOQ ³5DWLQJLV³QRQ2ZQHU3UR[\JHW+RW2U1RW5DWLQJ  7KHQWU\WR ` LQJ

VHWWKHUDW

RWKHUPHWKRGVOLNHJHW2ZQHU3UR[\DQGJHW1RQ2ZQHU3UR[\KHUH `



7KLVVKRXOGZRUN

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 57

WKHSUR[\SDWWHUQ

:]VVQVO\PMKWLM )LOH(GLW:LQGRZ+HOS%RUQ%'\QDPLF

MDYD0DWFK0DNLQJ7HVW'ULYH 1DPHLV-RH-DYDEHDQ ,QWHUHVWVVHWIURPRZQHUSUR[\ &DQ¶WVHWUDWLQJIURPRZQHUSUR[\

2XU2ZQHUSUR[\ DOORZVJHWWLQJDQG VHWWLQJH[FHSWIRUWKH +RW2U1RWUDWLQJ

5DWLQJLV

1DPHLV-RH-DYDEHDQ &DQ¶WVHWLQWHUHVWVIURPQRQRZQHUSUR[\ 5DWLQJVHWIURPQRQRZQHUSUR[\

2XU1RQ2ZQHUSUR[\ DOORZVJHWWLQJRQO\EXW DOVRDOORZVFDOOVWRVHWWKH +RW2U1RWUDWLQJ

5DWLQJLV 

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 58

T DDERXWSUR[\

there are no

Dumb Questions

Q:

3OWHATEXACTLYISTHE hDYNAMICvASPECTOFDYNAMIC PROXIES)SITTHAT)MINSTANTIATING THEPROXYANDSETTINGITTOAHANDLER ATRUNTIME

A:

.O THEPROXYISDYNAMIC BECAUSEITSCLASSISCREATEDATRUNTIME 4HINKABOUTITBEFOREYOURCODERUNS THEREISNOPROXYCLASSITISCREATEDON DEMANDFROMTHESETOFINTERFACESYOU PASSIT

A:

9ES4HE0ROXYCLASSHASASTATIC METHODCALLEDIS0ROXY#LASS #ALLING THISMETHODWITHACLASSWILLRETURN TRUEIFTHECLASSISADYNAMICPROXY CLASS/THERTHANTHAT THEPROXYCLASS WILLACTLIKEANYOTHERCLASSTHATIMPLE MENTSAPARTICULARSETOFINTERFACES

Q:

!RETHEREANYRESTRICTIONSON THETYPESOFINTERFACES)CANPASSINTO NEW0ROXY)NSTANCE 

A:

4HATISBECAUSETHE )NVOCATION(ANDLERISNTAPROXY´ITIS ACLASSTHATTHEPROXYDISPATCHESTO FORHANDLINGMETHODCALLS4HEPROXY ITSELFISCREATEDDYNAMICALLYATRUNTIME BYTHESTATIC0ROXYNEW0ROXY)NSTANCE METHOD

A:

9ES THEREAREAFEW&IRST ITIS WORTHPOINTINGOUTTHATWEALWAYS PASSNEW0ROXY)NSTANCE ANARRAYOF INTERFACESnONLYINTERFACESAREALLOWED NOCLASSES4HEMAJORRESTRICTIONSARE THATALLNON PUBLICINTERFACESNEEDTO BEFROMTHESAMEPACKAGE9OUALSO CANTHAVEINTERFACESWITHCLASHING METHODNAMESTHATIS TWOINTERFACES WITHAMETHODWITHTHESAME SIGNATURE 4HEREAREAFEWOTHERMINOR NUANCESASWELL SOATSOMEPOINTYOU SHOULDTAKEALOOKATTHElNEPRINTON DYNAMICPROXIESINTHEJAVADOC

Q:

Q:

Q:

-Y)NVOCATION(ANDLERSEEMS LIKEAVERYSTRANGEPROXY ITDOESNT IMPLEMENTANYOFTHEMETHODSOF THECLASSITSPROXYING

)STHEREANYWAYTOTELLIFA CLASSISA0ROXYCLASS



7HYAREYOUUSINGSKELETONS )THOUGHTWEGOTRIDOFTHOSEBACKIN *AVA

A:

9OURERIGHTWEDONTNEED TOACTUALLYGENERATESKELETONS!S OF*AVA THE2-)RUNTIMECAN DISPATCHTHECLIENTCALLSDIRECTLYTO THEREMOTESERVICEUSINGREmECTION "UTWELIKETOSHOWTHESKELETON BECAUSECONCEPTUALLYITHELPSYOUTO UNDERSTANDTHATTHEREISSOMETHING UNDERTHECOVERSTHATSMAKINGTHAT COMMUNICATIONBETWEENTHECLIENT STUBANDTHEREMOTESERVICEHAPPEN

Q:

)HEARDTHATIN*AVA ) DONTEVENNEEDTOGENERATESTUBS ANYMOREEITHER)STHATTRUE

A:

)TSUREIS)N*AVA 2-)AND $YNAMIC0ROXYGOTTOGETHERANDNOW STUBSAREGENERATEDDYNAMICALLYUSING $YNAMIC0ROXY4HEREMOTEOBJECTS STUBISAJAVALANGREmECT0ROXYINSTANCE WITHANINVOCATIONHANDLER THATIS AUTOMATICALLYGENERATEDTOHANDLEALL THEDETAILSOFGETTINGTHELOCALMETHOD CALLSBYTHECLIENTTOTHEREMOTEOBJECT 3O NOWYOUDONTHAVETOUSERMICAT ALLEVERYTHINGYOUNEEDTOGETACLIENT TALKINGTOAREMOTEOBJECTISHANDLED FORYOUBEHINDTHESCENES

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 59

WKHSUR[\SDWWHUQ

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"

3DWWHUQ

'HVFULSWLRQ

Decorator

Wraps another object and provides a different interface to it

Facade

Wraps another object and provides additional behavior for it

Proxy

Wraps another object to control access to it

Adapter

Wraps a bunch of objects to simplify their interface

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 60

WKHSUR[\]RR


)LUHZDOO3UR[\ FRQWUROVDFFHVVWRD VHWRIQHWZRUN UHVRXUFHVSURWHFWLQJ WKHVXEMHFWIURP´EDGµFOLHQWV

+DELWDWRIWHQVHHQLQWKHORFDWLRQ RIFRUSRUDWHILUHZDOOV\VWHPV

+HOSILQGDKDELWDW 6PDUW5HIHUHQFH3UR[\ SURYLGHVDGGLWLRQDODFWLRQV ZKHQHYHUDVXEMHFWLV UHIHUHQFHGVXFKDVFRXQWLQJ WKHQXPEHURIUHIHUHQFHVWR DQREMHFW

&DFKLQJ3UR[\SURYLGHV WHPSRUDU\VWRUDJHIRU UHVXOWVRIRSHUDWLRQV WKDWDUHH[SHQVLYH,W FDQDOVRDOORZPXOWLSOHFOLHQWVWRVKDUH WKHUHVXOWVWRUHGXFHFRPSXWDWLRQRU QHWZRUNODWHQF\



+DELWDWRIWHQVHHQLQZHEVHUYHUSUR[LHVDVZHOO DVFRQWHQWPDQDJHPHQWDQGSXEOLVKLQJV\VWHPV

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 61

WKHSUR[\SDWWHUQ

6\QFKURQL]DWLRQ3UR[\ SURYLGHVVDIHDFFHVVWR DVXEMHFWIURPPXOWLSOH WKUHDGV

+HOSILQGDKDELWDW

&RS\2Q:ULWH3UR[\ FRQWUROVWKHFRS\LQJRI DQREMHFWE\GHIHUULQJ WKHFRS\LQJRIDQ REMHFWXQWLOLWLVUHTXLUHGE\ DFOLHQW7KLVLVDYDULDQWRI WKH9LUWXDO3UR[\

6HHQKDQJLQJDURXQG-DYD 6SDFHVZKHUH LWFRQWUROVV\QFKURQL]HG DF FHVVWR DQXQGHUO\LQJVHWRI MHFWVLQD GLVWULEXWHGHQYLURQPRE HQW

&RPSOH[LW\+LGLQJ3UR[\ KLGHVWKHFRPSOH[LW\RI DQGFRQWUROVDFFHVVWRD FRPSOH[VHWRIFODVVHV 7KLVLVVRPHWLPHVFDOOHG WKH)DFDGH3UR[\IRUREYLRXVUHDVRQV 7KH&RPSOH[LW\+LGLQJ3UR[\GLIIHUV IURPWKH)DFDGH3DWWHUQLQWKDWWKH SUR[\FRQWUROVDFFHVVZKLOHWKH)DFDGH 3DWWHUQMXVWSURYLGHVDQDOWHUQDWLYH LQWHUIDFH

+DELWDWVHHQLQWKHYLFLQLW\RIWKH -DYD·V&RS\2Q:ULWH$UUD\/LVW

)LHOG1RWHVSOHDVHDGG\RXUREVHUYDWLRQVRIRWKHUSUR[LHVLQWKHZLOGKHUH

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 62

FURVVZRUGSX]]OH

1\¼[JMMVI476/KPIX\MZ?PaVW\]V_QVLJaLWQVOI KZW[[_WZLX]bbTMJMNWZMQ\MVL['





 



 



      













 3061 0' '*345  $07&3 %*41-":&% 580 803%4

 309: 5)"5 45"/%4 */ '03 &91&/4*7& 0#+&$54  & 500, 0/& 0' 5)&4& 50 -&"3/   &.05& !!!!!!!! 8"4 64&% 50 *.1-&.&/5 5)& (6.#"-- ."$)*/& .0/*503 580 803%4  0'58"3& %&7&-01&3 "(&/5 8"4 #&*/( 5)*4 ,*/% 0'1309: /5)&0#+&$55)"55",&45)&/&5803, 3&26&454 0/ 5)& 4&37*$& 4*%&   309: 5)"5 1305&$54 .&5)0% $"--4 '30. 6/"65)03*;&% $"--&34    !!!!!!! 1309: $-"44 *4 $3&"5&% "5 36/5*.&   -"$& 50 -&"3/ "#065 5)& ."/: 1309: 7"3*"/54  0..0/-: 64&% 1309: '03 8&# 4&37*$&4 580 803%4 /5)&1309:*4$"--&%5)*4  )&  7*&8&3 64&% 5)*4 ,*/% 0' 1309:

 "7"4 %:/".*$ 1309: '038"3%4 "-- 3&26&454 50 5)*4 580 803%4 30615)"5%*%5)&"-#6. 

 )*4 65*-*5: "$54 "4 " -00,61 4&37*$& '03  ):-30:$06-%/5(&5%"5&4  *.*-"3 50 1309: #65 8*5) " %*''&3&/5 163104&   #+&$57*--& "5$).",*/( (*..*$, 5)3&& 803%4   63 '*345 .*45",& 5)& (6.#"-- ."$)*/& 3&1035*/( 8"4 /05 !!!!!!!

&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 63

WKHSUR[\SDWWHUQ


:MDD=LHGAFLK

ƒ 7KH3UR[\3DWWHUQSURYLGHV

V 223ULQFLSLHOHV

DUHSUHVHQWDWLYHIRUDQRWKHU REMHFWLQRUGHUWRFRQWUROWKH FOLHQW·VDFFHVVWRLW7KHUH DUHDQXPEHURIZD\VLWFDQ PDQDJHWKDWDFFHVV

22%DVLFV

$EVWUDFWLRQ RQ (QFDSVXODWL ZKDWYDU (QFDSVXODWH P LV H SK QF KHULWD 3RO\PRU VLWLRQRYHULQ )DYRUFRPSR H QF  ,QKHULWD WHUIDFHVQRW RJUDPWRLQ 3U RQV LPSOHPHQWDWL GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW EHWZHHQRE RUH[WHQVLRQ OGEHRSHQI &ODVVHVVKRXIRUPRGLILFDWLRQ HG EXWFORV 'RQRW EVWUDFWLRQV 'HSHQGRQDFRQFUHWHFODVVHV Q R QG GHSH V \RXUIULHQG 2QO\WDONWR RX O\ DO F VZH·OO 'RQ·WFDOOX RQHUHDVRQ \ QO R GKDYH $FODVVVKRXO WRFKDQJH

ƒ $5HPRWH3UR[\PDQDJHV LQWHUDFWLRQEHWZHHQDFOLHQW DQGDUHPRWHREMHFW

ƒ $9LUWXDO3UR[\FRQWUROVDFFHVV WRDQREMHFWWKDWLVH[SHQVLYH WRLQVWDQWLDWH

FKDSWHU QFLSOHVWKLV 1RQHZSUL VHWKHERRNDQG FDQ\RXFOR KHPDOO" UHPHPEHUW

ƒ $3URWHFWLRQ3UR[\FRQWUROV DFFHVVWRWKHPHWKRGVRIDQ REMHFWEDVHGRQWKHFDOOHU

ƒ 0DQ\RWKHUYDULDQWVRI WKH3UR[\3DWWHUQH[LVW LQFOXGLQJFDFKLQJSUR[LHV V\QFKURQL]DWLRQSUR[LHV ILUHZDOOSUR[LHVFRS\RQZULWH SUR[LHVDQGVRRQ

ƒ 3UR[\LVVWUXFWXUDOO\VLPLODUWR

223DWWHUQV

 DOJR WRULWKPPVDQ\ LO\RRQIH RQ GHDILIQHDPVDDN GUHILQHV GLVR PWLW KDDOYLWGHDO\QDQ KH WDG K HV V DF UR 3 FW WW P 6WUD MH $   QG 2EWHVHJ\HFWHURYH \ RE  D U LFVLQDOIH UQHZ) HHQDFWRERW HI LWODP DFKWUERDRHWFW LWR HDF\  DOLOL' RU\Q RWDKHFWGIDWHGOJDP XODQG HVKP W OHHW SH D\FUQJQ HQFDGHSV' EHDHQV)UVW HVWVWLVKMHQJ HJ 0 WRU $ \ DW V U LH MH WU KD R  6 HD OLW RE F LW FW EL  KDV HVW GVKRFWRQXWO\EX Q H FW VH D VL OH EO D WH MH DV X LE RQ FO QJ DW IR RE GD H[ WLG WK UHKDQVSQJLQRQWHHUIDFHSU HFWDVZLWHQ HD DGVIO QW XUMHXS H OUHSRTXLQW OLH QV U LQWHZUFKH LGFRLI R (DQ IR LHFU RY GLORWVQJ RE RPW H D VV Q IU W DF V RW \ ED HQ [W F WO WH Q UI RU H HG OH OD HQ FK UH WH J DW J RU HS KL VX QG LQ D D RU Z LQ I G SH DS WV6GRU VVVXEHVFOG HFQG QJ QFYLFOGH 'SHGH LG VLQG (UR DVVHV UHTXHVW WH H SHW YDU\GHLQ ODDW H UHHQ FU EF HHQJ HWDS\KRVXOHGODWWOHWHLQWVVJD\RX\RTX &WRLQWODRVWPKHHDQPLUDFHDFS)DVMHQDHFWRQDFGFWHU OHLFW (HUQFHE DOLY\LVXO\ 0 U\ W  WR DWHF WK LIRQ  J  LQ D W DXDOWRWHPVSUQ KH L G V HUUHHQXWHVW OHODWW $HVQVREWR VWMHDQFWHWLFODW WH GLII WL\FFDW DODQLWDDV D VXWK HE LW DSZWR\ HQ IXQFWLLQRQVWRI HUW\R RXDOWHULWVHV QG LQFWJ U QDLQRE FDL]GH HLHWKFO(QWLRHUOQFLH$WKQVRJQWOOR D HU KOHRE WWMH VII D LW\ VWGL DVIH Z P)HW Q XH V HE D HT Z HU U DFODVVSDGHUD WKD JD U HQF RQJ QG HUWH WH II VWD RE DHXWL]MHHHFWRUHRUFOOQLHUDRJQW VWGLVDOVD UR XU UQ LWXHK DVWVPD6HWQWTXHU SD HVUD UVHT D LQZVWH VXEFODVVUHHVTX HURU HWTX YLDE UHXOHRL]ZR[H\KHSHLW3WLURVRQYLGHVXHWRVWFVUKDDREQJQGMHHFWLWVWR GR HVWVPKD

2XUQHZSDWWHUQ $3UR[\DFWVDVD UHSUHVHQWDWLYHIRU DQRWKHUREMHFW

XQ 3 OHH RQDQ TXSDWUDEH HTURWKH UHRU UHD RJ SSWLU SH OUDIR VXSS LOOUD DE HFHKHXWRORZGHRU EMDFTX RSOGR HVXQWV 7WKH VXSSUHRUTX LWV WWLRRQ OHDFRFHSHVVUD DE GR O XQ UR W V QW RU DV VXSSFO FR

'HFRUDWRUEXWWKHWZRGLIIHULQ WKHLUSXUSRVH

ƒ 7KH'HFRUDWRU3DWWHUQDGGV EHKDYLRUWRDQREMHFWZKLOHD 3UR[\FRQWUROVDFFHVV

ƒ -DYD·VEXLOWLQVXSSRUWIRU3UR[\ FDQEXLOGDG\QDPLFSUR[\ FODVVRQGHPDQGDQGGLVSDWFK DOOFDOOVRQLWWRDKDQGOHURI \RXUFKRRVLQJ

ƒ /LNHDQ\ZUDSSHUSUR[LHVZLOO LQFUHDVHWKHQXPEHURIFODVVHV DQGREMHFWVLQ\RXUGHVLJQV

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 64

H[HUFLVHVROXWLRQV

([HUFLVHVROXWLRQV

([HUFLVH


LPSRUWMDYDODQJUHÀHFW   SXEOLFFODVV1RQ2ZQHU,QYRFDWLRQ+DQGOHULPSOHPHQWV,QYRFDWLRQ+DQGOHU^ 3HUVRQ%HDQSHUVRQ  SXEOLF1RQ2ZQHU,QYRFDWLRQ+DQGOHU 3HUVRQ%HDQSHUVRQ ^ WKLVSHUVRQ SHUVRQ `  SXEOLF2EMHFWLQYRNH 2EMHFWSUR[\0HWKRGPHWKRG2EMHFW>@DUJV  WKURZV,OOHJDO$FFHVV([FHSWLRQ^  WU\^ LI PHWKRGJHW1DPH VWDUWV:LWK ³JHW´ ^ UHWXUQPHWKRGLQYRNH SHUVRQDUJV  `HOVHLI PHWKRGJHW1DPH HTXDOV ³VHW+RW2U1RW5DWLQJ´ ^ UHWXUQPHWKRGLQYRNH SHUVRQDUJV  `HOVHLI PHWKRGJHW1DPH VWDUWV:LWK ³VHW´ ^ WKURZQHZ,OOHJDO$FFHVV([FHSWLRQ  ` `FDWFK ,QYRFDWLRQ7DUJHW([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` UHWXUQQXOO ` `

'HVLJQ&ODVV

2XU,PDJH3UR[\FODVVDSSHDUVWRKDYHWZRVWDWHVWKDWDUHFRQWUROOHG E\FRQGLWLRQDOVWDWHPHQWV&DQ\RXWKLQNRIDQRWKHUSDWWHUQWKDW PLJKWFOHDQXSWKLVFRGH"+RZZRXOG\RXUHGHVLJQ,PDJH3UR[\"

=[M;\I\M8I\\MZV"QUXTMUMV\\_W[\I\M[1UIOM4WILMLIVL1UIOM6W\4WILML
&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 65

WKHSUR[\SDWWHUQ

([HUFLVHVROXWLRQV 6KDUSHQ \RXU SHQFLO

:KLOHLWLVDOLWWOHFRPSOLFDWHGWKHUHLVQ¶WPXFKWRFUHDWLQJDG\QDPLF SUR[\:K\GRQ¶W\RXZULWHJHW1RQ2ZQHU3UR[\ ZKLFKUHWXUQVD SUR[\IRUWKH1RQ2ZQHU,QYRFDWLRQ+DQGOHU

3HUVRQ%HDQJHW1RQ2ZQHU3UR[\ 3HUVRQ%HDQSHUVRQ ^  UHWXUQ 3HUVRQ%HDQ 3UR[\QHZ3UR[\,QVWDQFH SHUVRQJHW&ODVV JHW&ODVV/RDGHU  SHUVRQJHW&ODVV JHW,QWHUIDFHV  QHZ1RQ2ZQHU,QYRFDWLRQ+DQGOHU SHUVRQ  `









'

# &







 

%









#



$







  

! 



)





&





#













"

!



#



!

#

(



!



'

!











%







#

#

$











#



 

"

#















#









"













 

(













#

$















#





 

!

(

$





#



#













# 

!













!









$





%



!

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 66

UHDG\EDNHFRGHFGFRYHUYLHZHU

 HDG\EDNH 5 &RGH

QM_MZ

SDFNDJHKHDG¿UVWSUR[\YLUWXDOSUR[\ LPSRUWMDYDQHW  LPSRUWMDYDDZW  LPSRUWMDYDDZWHYHQW  LPSRUWMDYD[VZLQJ  LPSRUWMDYDXWLO  SXEOLFFODVV,PDJH3UR[\7HVW'ULYH^ ,PDJH&RPSRQHQWLPDJH&RPSRQHQW -)UDPHIUDPH QHZ-)UDPH ³&'&RYHU9LHZHU´  -0HQX%DUPHQX%DU -0HQXPHQX +DVKWDEOHFGV QHZ+DVKWDEOH   SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV WKURZV([FHSWLRQ^ ,PDJH3UR[\7HVW'ULYHWHVW'ULYH QHZ,PDJH3UR[\7HVW'ULYH  `  SXEOLF,PDJH3UR[\7HVW'ULYH WKURZV([FHSWLRQ^ FGVSXW ³$PELHQW0XVLFIRU$LUSRUWV´´KWWSLPDJHVDPD]RQFRPLPDJHV3 %6./=======MSJ´  FGVSXW ³%XGGKD%DU´´KWWSLPDJHVDPD]RQFRPLPDJHV3%;%<./======= MSJ´  FGVSXW ³,PD´´KWWSLPDJHVDPD]RQFRPLPDJHV3%,50/=======MSJ´  FGVSXW ³.DUPD´´KWWSLPDJHVDPD]RQFRPLPDJHV3%'&%/=======JLI´  FGVSXW ³0&0;&$'´´KWWSLPDJHVDPD]RQFRPLPDJHV3%859/======= MSJ´  FGVSXW ³1RUWKHUQ([SRVXUH´´KWWSLPDJHVDPD]RQFRPLPDJHV3%6)1 /=======MSJ´  FGVSXW ³6HOHFWHG$PELHQW:RUNV9RO´´KWWSLPDJHVDPD]RQFRPLPDJHV3 %01=/=======MSJ´  FGVSXW ³ROLYHU´´KWWSZZZFV\DOHHGXKRPHVIUHHPDQHOLVDEHWK2OLYHUB VPMSJ´  85/LQLWLDO85/ QHZ85/ 6WULQJ FGVJHW ³6HOHFWHG$PELHQW:RUNV9RO´  PHQX%DU QHZ-0HQX%DU  PHQX QHZ-0HQX ³)DYRULWH&'V´  PHQX%DUDGG PHQX  IUDPHVHW-0HQX%DU PHQX%DU 



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 67

WKHSUR[\SDWWHUQ

IRU (QXPHUDWLRQH FGVNH\V HKDV0RUH(OHPHQWV  ^ 6WULQJQDPH  6WULQJ HQH[W(OHPHQW  -0HQX,WHPPHQX,WHP QHZ-0HQX,WHP QDPH  PHQXDGG PHQX,WHP  PHQX,WHPDGG$FWLRQ/LVWHQHU QHZ$FWLRQ/LVWHQHU ^ SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ LPDJH&RPSRQHQWVHW,FRQ QHZ,PDJH3UR[\ JHW&'8UO HYHQWJHW$FWLRQ&RP PDQG  IUDPHUHSDLQW  ` `  `  VHWXSIUDPHDQGPHQXV  ,FRQLFRQ QHZ,PDJH3UR[\ LQLWLDO85/  LPDJH&RPSRQHQW QHZ,PDJH&RPSRQHQW LFRQ  IUDPHJHW&RQWHQW3DQH DGG LPDJH&RPSRQHQW  IUDPHVHW'HIDXOW&ORVH2SHUDWLRQ -)UDPH(;,7B21B&/26(  IUDPHVHW6L]H   IUDPHVHW9LVLEOH WUXH  ` 85/JHW&'8UO 6WULQJQDPH ^ WU\^ UHWXUQQHZ85/ 6WULQJ FGVJHW QDPH  `FDWFK 0DOIRUPHG85/([FHSWLRQH ^ HSULQW6WDFN7UDFH  UHWXUQQXOO ` ` `

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 68

UHDG\EDNHFRGHFGFRYHUYLHZHU

5HDG\EDNH &RGH

QM_MZ KWV\QV]ML

SDFNDJHKHDG¿UVWSUR[\YLUWXDOSUR[\ LPSRUWMDYDQHW  LPSRUWMDYDDZW  LPSRUWMDYDDZWHYHQW  LPSRUWMDYD[VZLQJ  FODVV,PDJH3UR[\LPSOHPHQWV,FRQ^ ,PDJH,FRQLPDJH,FRQ 85/LPDJH85/ 7KUHDGUHWULHYDO7KUHDG ERROHDQUHWULHYLQJ IDOVH  SXEOLF,PDJH3UR[\ 85/XUO ^LPDJH85/ XUO`  SXEOLFLQWJHW,FRQ:LGWK ^ LI LPDJH,FRQ QXOO ^ UHWXUQLPDJH,FRQJHW,FRQ:LGWK  `HOVH^ UHWXUQ ` `  SXEOLFLQWJHW,FRQ+HLJKW ^ LI LPDJH,FRQ QXOO ^ UHWXUQLPDJH,FRQJHW,FRQ+HLJKW  `HOVH^ UHWXUQ ` `  SXEOLFYRLGSDLQW,FRQ ¿QDO&RPSRQHQWF*UDSKLFVJLQW[LQW\ ^ LI LPDJH,FRQ QXOO ^ LPDJH,FRQSDLQW,FRQ FJ[\  `HOVH^ JGUDZ6WULQJ ³/RDGLQJ&'FRYHUSOHDVHZDLW´[\  LI UHWULHYLQJ ^ UHWULHYLQJ WUXH UHWULHYDO7KUHDG QHZ7KUHDG QHZ5XQQDEOH ^ SXEOLFYRLGUXQ ^ WU\^ LPDJH,FRQ QHZ,PDJH,FRQ LPDJH85/³&'&RYHU´  FUHSDLQW  `FDWFK ([FHSWLRQH ^



&KDSWHU

Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 11. Controlling Object Access

Return to Table of Contents

Page 69

WKHSUR[\SDWWHUQ

HSULQW6WDFN7UDFH  ` ` `  UHWULHYDO7KUHDGVWDUW  ` ` ` `

SDFNDJHKHDG¿UVWSUR[\YLUWXDOSUR[\ LPSRUWMDYDDZW  LPSRUWMDYD[VZLQJ  FODVV,PDJH&RPSRQHQWH[WHQGV-&RPSRQHQW^ SULYDWH,FRQLFRQ SXEOLF,PDJH&RPSRQHQW ,FRQLFRQ ^ WKLVLFRQ LFRQ ` SXEOLFYRLGVHW,FRQ ,FRQLFRQ ^ WKLVLFRQ LFRQ ` SXEOLFYRLGSDLQW&RPSRQHQW *UDSKLFVJ ^ VXSHUSDLQW&RPSRQHQW J  LQWZ LFRQJHW,FRQ:LGWK  LQWK LFRQJHW,FRQ+HLJKW  LQW[  Z  LQW\  K  LFRQSDLQW,FRQ WKLVJ[\  ` `

\RXDUHKHUH



Chapter 11. Controlling Object Access Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Table of Contents Chapter 12. Patterns of Patterns.................................................................. 1 Section 12.1. Working together....................................................................................................................................................... 2 Section 12.2. Duck reunion............................................................................................................................................................. 3 Section 12.3. There are no Dumb Questions................................................................................................................................ 24 Section 12.4. What did we do?...................................................................................................................................................... 25 Section 12.5. A bird's duck's eye view: the class diagram............................................................................................................. 26 Section 12.6. The King of Compound Patterns............................................................................................................................ 28 Section 12.7. Meet the Model-View-Controller............................................................................................................................. 31 Section 12.8. A closer look............................................................................................................................................................ 32 Section 12.9. There are no Dumb Questions................................................................................................................................ 33 Section 12.10. Looking at MVC through patterns-colored glasses............................................................................................... 34 Section 12.11. Using MVC to control the beat............................................................................................................................... 36 Section 12.12. Meet the Java DJ View.......................................................................................................................................... 36 Section 12.13. Putting the pieces together.................................................................................................................................... 38 Section 12.14. Building the pieces................................................................................................................................................. 39 Section 12.15. Now let's have a look at the concrete BeatModel class:........................................................................................ 40 Section 12.16. The View................................................................................................................................................................. 41 Section 12.17. BRAIN POWER...................................................................................................................................................... 41 Section 12.18. Implementing the View......................................................................................................................................... 42 Section 12.19. Implementing the View, continued....................................................................................................................... 43 Section 12.20. Now for the Controller.......................................................................................................................................... 44 Section 12.21. And here's the implementation of the controller:................................................................................................. 45 Section 12.22. Putting it all together............................................................................................................................................ 46 Section 12.23. And now for a test run........................................................................................................................................... 46 Section 12.24. Exploring Strategy................................................................................................................................................. 47 Section 12.25. Adapting the Model............................................................................................................................................... 48 Section 12.26. Now we're ready for a HeartController................................................................................................................. 49 Section 12.27. And now for a test run........................................................................................................................................... 50 Section 12.28. MVC and the Web.................................................................................................................................................. 51 Section 12.29. Model 2 is more than just a clean design.............................................................................................................. 52 Section 12.30. Model 2: DJ'ing from a cell phone........................................................................................................................ 53 Section 12.31. Now we need a view............................................................................................................................................... 56 Section 12.32. Putting Model 2 to the test.................................................................................................................................... 57 Section 12.33. Design Patterns and Model 2................................................................................................................................ 59 Section 12.34. Observer................................................................................................................................................................. 59 Section 12.35. Strategy.................................................................................................................................................................. 60 Section 12.36. There are no Dumb Questions............................................................................................................................... 61 Section 12.37. Tools for your Design Toolbox.............................................................................................................................. 62 Section 12.38. Exercise solutions.................................................................................................................................................. 63 Section 12.39. Ready-bake Code................................................................................................................................................... 66 Section 12.40. Ready-bake Code: The View................................................................................................................................. 70 Section 12.41. The Controller........................................................................................................................................................ 73 Section 12.42. The Heart Model.................................................................................................................................................... 75 Section 12.43. The Heart Adapter................................................................................................................................................. 77 Section 12.44. The Controller....................................................................................................................................................... 78

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 1

Compound Patterns

5 3DWWHUQV

4

RI3DWWHUQV

4

:KRZRXOGKDYHHYHUJXHVVHGWKDW3DWWHUQVFRXOGZRUNWRJHWKHU"
VHQGXVHPDLOIRUDFRS\ WKLVLVDQHZFKDSWHU



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 2

SDWWHUQVFDQZRUNWRJHWKHU

?WZSQVO\WOM\PMZ 7VMWN \PMJM[\_Ia[\W][MXI\\MZV[Q[\WOM\\PMUW]\WN \PMPW][M[W\PMa KIVQV\MZIK\_Q\PW\PMZXI\\MZV[QM_+WV\ZWTTMZPQU[MTN1N aW]PI^MV¼\PMIZLWN  PQUaW]_QTTIVLaW]¼TTÅVL\PQ[KWUXW]VLXI\\MZVQ[WVMWN \PMUW[\ XW_MZN]TXI\\MZV[QVaW]ZLM[QOV\WWTJW`

3DWWHUQVDUHRIWHQXVHGWRJHWKHUDQG FRPELQHGZLWKLQWKHVDPHGHVLJQVROXWLRQ $FRPSRXQGSDWWHUQFRPELQHVWZRRU PRUHSDWWHUQVLQWRDVROXWLRQWKDWVROYHVD UHFXUULQJRUJHQHUDOSUREOHP



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 3

FRPSRXQGSDWWHUQV

,]KSZM]VQWV )[aW]¼^MITZMILaPMIZL_M¼ZMOWQVO\WOM\\W_WZS_Q\P\PML]KS[IOIQV


)LUVWZH·OOFUHDWHD4XDFNDEOHLQWHUIDFH /LNHZHVDLGZH·UHVWDUWLQJIURPVFUDWFK7KLVWLPHDURXQGWKH'XFNVDUH JRLQJWRLPSOHPHQWD4XDFNDEOHLQWHUIDFH7KDWZD\ZH·OONQRZZKDWWKLQJV LQWKHVLPXODWRUFDQTXDFN ²OLNH0DOODUG'XFNV5HGKHDG'XFNV'XFN &DOOVDQGZHPLJKWHYHQVHHWKH5XEEHU'XFNVQHDNEDFNLQ

SXEOLFLQWHUIDFH4XDFNDEOH^ SXEOLFYRLGTXDFN  `



R O\QHHGWRG 4XDFNDEOHVRQHOO4XDFN Z J RQHWKLQ

1RZVRPH'XFNVWKDWLPSOHPHQW4XDFNDEOH :KDWJRRGLVDQLQWHUIDFHZLWKRXWVRPHFODVVHVWRLPSOHPHQWLW"7LPHWR FUHDWHVRPHFRQFUHWHGXFNV EXWQRWWKH´ODZQDUWµNLQGLI\RXNQRZZKDW ZHPHDQ 

SXEOLFFODVV0DOODUG'XFNLPSOHPHQWV4XDFNDEOH^ SXEOLFYRLGTXDFN ^ 6\VWHPRXWSULQWOQ ³4XDFN´  ` `

UG
SXEOLFFODVV5HGKHDG'XFNLPSOHPHQWV4XDFNDEOH^ SXEOLFYRLGTXDFN ^ 6\VWHPRXWSULQWOQ ³4XDFN´  ` `

:H·YHJRWWRKDYHVRPHYDULDWLRQ RIVSHFLHVLIZHZDQWWKLVWREHDQ LQWHUHVWLQJVLPXODWRU

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 4

DGGLQJPRUHGXFNV

7KLVZRXOGQ·WEHPXFKIXQLIZHGLGQ·WDGGRWKHUNLQGVRI'XFNVWRR 5HPHPEHUODVWWLPH":HKDGGXFNFDOOV WKRVHWKLQJVKXQWHUVXVHWKH\ DUHGHÀQLWHO\TXDFNDEOH DQGUXEEHUGXFNV SXEOLFFODVV'XFN&DOOLPSOHPHQWV4XDFNDEOH^ SXEOLFYRLGTXDFN ^ 6\VWHPRXWSULQWOQ ³.ZDN´  ` ` SXEOLFFODVV5XEEHU'XFNLPSOHPHQWV4XDFNDEOH^ SXEOLFYRLGTXDFN ^ 6\VWHPRXWSULQWOQ ³6TXHDN´  ` `



$'XFN&DOOWKDWTXDFNVEXWGRHVQ·W VRXQGTXLWHOLNHWKHUHDOWKLQJ

$5XEEHU'XFNWKDWPDNHVD VTXHDNZKHQLWTXDFNV

2ND\ZH·YHJRWRXUGXFNVQRZDOOZHQHHGLVDVLPXODWRU /HW·VFRRNXSDVLPXODWRUWKDWFUHDWHVDIHZGXFNVDQGPDNHVVXUHWKHLU TXDFNHUVDUHZRUNLQJ

WR

+HUH·VRXUPDLQPHWKRG JHWHYHU\WKLQJJRLQJ

SXEOLFFODVV'XFN6LPXODWRU^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ :HFUHDWHDVLPXODWRU 'XFN6LPXODWRUVLPXODWRU QHZ'XFN6LPXODWRU  DQGWKHQFDOOLWV VLPXODWRUVLPXODWH  ` VLPXODWH PHWKRG  YRLGVLPXODWH ^ 4XDFNDEOHPDOODUG'XFN QHZ0DOODUG'XFN  :HQHHGVRPHGXFNVVR 4XDFNDEOHUHGKHDG'XFN QHZ5HGKHDG'XFN  4XDFNDEOHGXFN&DOO QHZ'XFN&DOO  KHUHZHFUHDWHRQHRI 4XDFNDEOHUXEEHU'XFN QHZ5XEEHU'XFN  HDFK4XDFNDEOH  6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU´   VLPXODWH PDOODUG'XFN  VLPXODWH UHGKHDG'XFN  WKHQZHVLPXODWH VLPXODWH GXFN&DOO  HDFKRQH VLPXODWH UXEEHU'XFN  ` +HUHZHRYHUORDGWKHVLPXODWH  PHWKRGWRVLPXODWHMXVWRQHGXFN YRLGVLPXODWH 4XDFNDEOHGXFN ^ GXFNTXDFN  ` ` +HUHZHOHWSRO\PRUSKLVPGRLWVPDJLFQR

PDWWHUZKDWNLQGRI4XDFNDEOHJHWVSDVVHGLQ WKHVLPXODWH PHWKRGDVNVLWWRTXDFN



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 5

FRPSRXQGSDWWHUQV

1RWWRRH[FLW KDYHQ·WDGGHGLQJ\HWEXWZH SDWWHUQV

)LOH(GLW:LQGRZ+HOS,W%HWWHU*HW%HWWHU7KDQ7KLV

MDYD'XFN6LPXODWRU 'XFN6LPXODWRU 4XDFN 4XDFN .ZDN 6TXHDN



XDFNDEOH 7KH\DOOLPSOHPHQWWKHVDPH4 WLRQV HQWD SOHP ULP WKHL LQWHUIDFHEXW ZD\ DOORZWKHPWRTXDFNLQWKHLURZQ ,WORRNVOLNHHYHU\WKLQJLVZRUNLQJVRIDUVRJRRG



:KHQGXFNVDUHDURXQGJHHVHFDQ·WEHIDU :KHUHWKHUHLVRQHZDWHUIRZOWKHUHDUHSUREDEO\WZR+HUH·VD*RRVH FODVVWKDWKDVEHHQKDQJLQJDURXQGWKHVLPXODWRU

SXEOLFFODVV*RRVH^ SXEOLFYRLGKRQN ^ 6\VWHPRXWSULQWOQ ³+RQN´  ` `

$*RRVHLVDKRQNHU QRWDTXDFNHU

YiX`e gfn\i /HW¶VVD\ZHZDQWHGWREHDEOHWRXVHD*RRVHDQ\ZKHUHZH¶GZDQWWRXVHD'XFN$IWHUDOOJHHVH PDNHQRLVHJHHVHÀ\JHHVHVZLP:K\FDQ¶WZHKDYH*HHVHLQWKHVLPXODWRU" :KDWSDWWHUQZRXOGDOORZ*HHVHWRHDVLO\LQWHUPLQJOHZLWK'XFNV"

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 6

JRRVHDGDSWHU



:HQHHGDJRRVHDGDSWHU 2XUVLPXODWRUH[SHFWVWRVHH4XDFNDEOHLQWHUIDFHV6LQFHJHHVH DUHQ·WTXDFNHUV WKH\·UHKRQNHUV ZHFDQXVHDQDGDSWHUWRDGDSW DJRRVHWRDGXFN

5HPHPEHUDQ$GDSWHU

HUIDFH SXEOLFFODVV*RRVH$GDSWHULPSOHPHQWV4XDFNDEOH^ LPSOHPHQWVWKHWDUJHWLQW DEOH DFN *RRVHJRRVH 4X LV DVH VF ZKLFKLQWKL  SXEOLF*RRVH$GDSWHU *RRVHJRRVH ^ 7KHFRQVWUXFWRUWDNHVWKH WKLVJRRVH JRRVH JRRVHZHDUHJRLQJWRDGDSW `  SXEOLFYRLGTXDFN ^ :KHQTXDFNLVFDOOHGWKHFDOOLVGHOHJDWHG JRRVHKRQN  WRWKHJRRVH·VKRQN PHWKRG ` ` 

1RZJHHVHVKRXOGEHDEOHWRSOD\LQWKHVLPXODWRUWRR $OOZHQHHGWRGRLVFUHDWHD*RRVHZUDSLWLQDQDGDSWHUWKDW LPSOHPHQWV4XDFNDEOHDQGZHVKRXOGEHJRRGWRJR SXEOLFFODVV'XFN6LPXODWRU^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 'XFN6LPXODWRUVLPXODWRU QHZ'XFN6LPXODWRU  VLPXODWRUVLPXODWH  ` YRLGVLPXODWH ^ DFWVOLNH 4XDFNDEOHPDOODUG'XFN QHZ0DOODUG'XFN  :HPDNHD*RRVHWKDW H*RRVH 4XDFNDEOHUHGKHDG'XFN QHZ5HGKHDG'XFN  E\ZUDSSLQJWK XFN D' 4XDFNDEOHGXFN&DOO QHZ'XFN&DOO  LQWKH*RRVH$GDSWHU 4XDFNDEOHUXEEHU'XFN QHZ5XEEHU'XFN  4XDFNDEOHJRRVH'XFN QHZ*RRVH$GDSWHU QHZ*RRVH   6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU:LWK*RRVH$GDSWHU´   VLPXODWH PDOODUG'XFN  VLPXODWH UHGKHDG'XFN  VLPXODWH GXFN&DOO  2QFHWKH*RRVHLVZUDSSHGZHFDQWUHDW VLPXODWH UXEEHU'XFN  LWMXVWOLNHRWKHUGXFN4XDFNDEOHV VLPXODWH JRRVH'XFN  `  YRLGVLPXODWH 4XDFNDEOHGXFN ^ GXFNTXDFN  ` `



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 7

FRPSRXQGSDWWHUQV



1RZOHW·VJLYHWKLVDTXLFNUXQ 7KLVWLPHZKHQZHUXQWKHVLPXODWRUWKHOLVWRIREMHFWVSDVVHG WRWKHVLPXODWH PHWKRGLQFOXGHVD*RRVHZUDSSHGLQDGXFN DGDSWHU7KHUHVXOW":HVKRXOGVHHVRPHKRQNLQJ

)LOH(GLW:LQGRZ+HOS*ROGHQ(JJV

MDYD'XFN6LPXODWRU

7KHUH·VWKHJRRVH1RZWKH *RRVHFDQTXDFNZLWKWKH UHVWRIWKH'XFNV

'XFN6LPXODWRU:LWK*RRVH$GDSWHU 4XDFN 4XDFN .ZDN 6TXHDN +RQN



4XDFNRORJ\ 4XDFNRORJLVWVDUHIDVFLQDWHGE\DOODVSHFWVRI4XDFNDEOHEHKDYLRU2QH WKLQJ4XDFNRORJLVWVKDYHDOZD\VZDQWHGWRVWXG\LVWKHWRWDOQXPEHURI TXDFNVPDGHE\DÀRFNRIGXFNV +RZFDQZHDGGWKHDELOLW\WRFRXQWGXFNTXDFNVZLWKRXWKDYLQJWR FKDQJHWKHGXFNFODVVHV" &DQ\RXWKLQNRIDSDWWHUQWKDWZRXOGKHOS"

-%UHZHU 3DUN5DQJHUDQG 4XDFNRORJLVW

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 8

GXFNGHFRUDWRU



:H·UHJRLQJWRPDNHWKRVH4XDFNRORJLVWVKDSS\DQGJLYH WKHPVRPHTXDFNFRXQWV +RZ"/HW·VFUHDWHDGHFRUDWRUWKDWJLYHVWKHGXFNVVRPHQHZ EHKDYLRU WKHEHKDYLRURIFRXQWLQJ E\ZUDSSLQJWKHPZLWKD GHFRUDWRUREMHFW:HZRQ·WKDYHWRFKDQJHWKH'XFNFRGHDWDOO

/LNHZLWK$GDSWHUZHQHHGWR LPSOHPHQWWKHWDUJHWLQWHUIDFH :H·YHJRWDQLQVWDQFHYDULDEOH WRKROGRQWRWKHTXDFNHU ZH·UHGHFRUDWLQJ SXEOLFFODVV4XDFN&RXQWHULPSOHPHQWV4XDFNDEOH^

4XDFN&RXQWHULVDGHFRUDWRU

4XDFNDEOHGXFN $QGZH·UHFRXQWLQJ$// VWDWLFLQWQXPEHU2I4XDFNV TXDFNVVRZH·OOXVHDVWDWLF  YDULDEOHWRNHHSWUDFN SXEOLF4XDFN&RXQWHU 4XDFNDEOHGXFN ^ WKLVGXFN GXFN ` :HJHWWKHUHIHUHQFHWRWKH  4XDFNDEOHZH·UHGHFRUDWLQJLQ SXEOLFYRLGTXDFN ^ WKHFRQVWUXFWRU GXFNTXDFN  :K HQ TX DF N QXPEHU2I4XDFNV LVFD WKH4XDFNDEOHZH·UHOOHGZHGHOHJDWHWKHFDOOWR ` GHFRUDWLQJ   WK SXEOLFVWDWLFLQWJHW4XDFNV ^ HQZHLQFUHDVHWKHQ XPEHURITXDFNV UHWXUQQXPEHU2I4XDFNV ` `

:H·UHDGGLQJRQHRWKHUPHWKRG WRWKHGHFRUDWRU7KLVVWDWLF PHWKRGMXVWUHWXUQVWKHQXPEHU RITXDFNVWKDWKDYHRFFXUUHG LQDOO4XDFNDEOHV



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 9

FRPSRXQGSDWWHUQV 

:HQHHGWRXSGDWHWKHVLPXODWRUWRFUHDWHGHFRUDWHGGXFNV 1RZZHPXVWZUDSHDFK4XDFNDEOHREMHFWZHLQVWDQWLDWHLQD 4XDFN&RXQWHUGHFRUDWRU,IZHGRQ·WZH·OOKDYHGXFNVUXQQLQJ DURXQGPDNLQJXQFRXQWHGTXDFNV SXEOLFFODVV'XFN6LPXODWRU^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ (DFKWLPHZHFUHDWHD 'XFN6LPXODWRUVLPXODWRU QHZ'XFN6LPXODWRU  4XDFNDEOHZHZUDSLW VLPXODWRUVLPXODWH  ZLWKDQHZGHFRUDWRU ` YRLGVLPXODWH ^ 4XDFNDEOHPDOODUG'XFN QHZ4XDFN&RXQWHU QHZ0DOODUG'XFN  4XDFNDEOHUHGKHDG'XFN QHZ4XDFN&RXQWHU QHZ5HGKHDG'XFN  4XDFNDEOHGXFN&DOO QHZ4XDFN&RXQWHU QHZ'XFN&DOO  4XDFNDEOHUXEEHU'XFN QHZ4XDFN&RXQWHU QHZ5XEEHU'XFN  4XDFNDEOHJRRVH'XFN QHZ*RRVH$GDSWHU QHZ*RRVH  6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU:LWK'HFRUDWRU´ 

7KHSDUNUDQJHUWROGXVKHGLGQ·W ZDQWWRFRXQWJHHVHKRQNVVRZH GRQ·WGHFRUDWHLW

VLPXODWH PDOODUG'XFN  VLPXODWH UHGKHDG'XFN  VLPXODWH GXFN&DOO  VLPXODWH UXEEHU'XFN  VLPXODWH JRRVH'XFN 

+HUH·VZKHUHZH

6\VWHPRXWSULQWOQ ³7KHGXFNVTXDFNHG³ JDWKHUWKHTXDFNLQJ 4XDFN&RXQWHUJHW4XDFNV ³WLPHV´  EHKDYLRUIRUWKH ` 4XDFNRORJLVWV YRLGVLPXODWH 4XDFNDEOHGXFN ^ GXFNTXDFN  ` `

HGHFRUDWHG 1RWKLQJFKDQJHVKHUHWK OHV NDE XDF LOO4 REMHFWVDUHVW

)LOH(GLW:LQGRZ+HOS'HFRUDWHG(JJV

+HUH·VWKH RXWSXW H·UH 5HPHPEHUZ JHHVH QJ WL QRWFRXQ

MDYD'XFN6LPXODWRU 'XFN6LPXODWRU:LWK'HFRUDWRU 4XDFN 4XDFN .ZDN 6TXHDN +RQN TXDFNVZHUHFRXQWHG 

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 10

GXFNIDFWRU\

7KLVTXDFN FRXQWLQJLV JUHDW:H·UHOHDUQLQJWKLQJVZH QHYHUNQHZDERXWWKHOLWWOHTXDFNHUV %XWZH·UHÀQGLQJWKDWWRRPDQ\ TXDFNVDUHQ·WEHLQJFRXQWHG&DQ \RXKHOS"




:HQHHGDIDFWRU\WRSURGXFHGXFNV 2ND\ZHQHHGVRPHTXDOLW\FRQWUROWRPDNHVXUHRXUGXFNVJHWZUDSSHG :H·UHJRLQJWREXLOGDQHQWLUHIDFWRU\MXVWWRSURGXFHWKHP7KHIDFWRU\ VKRXOGSURGXFHDIDPLO\RISURGXFWVWKDWFRQVLVWVRIGLIIHUHQWW\SHVRI GXFNVVRZH·UHJRLQJWRXVHWKH$EVWUDFW)DFWRU\3DWWHUQ /HW·VVWDUWZLWKWKHGHÀQLWLRQRIWKH$EVWUDFW'XFN)DFWRU\

SXEOLFDEVWUDFWFODVV$EVWUDFW'XFN)DFWRU\^  SXEOLFDEVWUDFW4XDFNDEOHFUHDWH0DOODUG'XFN  SXEOLFDEVWUDFW4XDFNDEOHFUHDWH5HGKHDG'XFN  SXEOLFDEVWUDFW4XDFNDEOHFUHDWH'XFN&DOO  SXEOLFDEVWUDFW4XDFNDEOHFUHDWH5XEEHU'XFN  `

WIDFWRU\ :H·UHGHILQLQJDQDEVWUDF QWWR WKDWVXEFODVVHVZLOOLPSOHPH FUHDWHGLIIHUHQWIDPLOLHV

(DFKPHWKRGFUHDWHVRQHNLQGRIGXFN



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 11

FRPSRXQGSDWWHUQV /HW·VVWDUWE\FUHDWLQJDIDFWRU\WKDWFUHDWHVGXFNVZLWKRXWGHFRUDWRUV MXVWWRJHWWKHKDQJRIWKHIDFWRU\ SXEOLFFODVV'XFN)DFWRU\H[WHQGV$EVWUDFW'XFN)DFWRU\^  SXEOLF4XDFNDEOHFUHDWH0DOODUG'XFN ^ 'XFN)DFWRU\H[WHQGVWKH UHWXUQQHZ0DOODUG'XFN  DEVWUDFWIDFWRU\ `  SXEOLF4XDFNDEOHFUHDWH5HGKHDG'XFN ^ RGXFW (DFKPHWKRGFUHDWHVDSU DEOH UHWXUQQHZ5HGKHDG'XFN  4XDFN RI NLQG DU LFXO DUW DS ` QRZQ 7KHDFWXDOSURGXFWLVXQN NQRZV  XVW WM L RU XODW SXEOLF4XDFNDEOHFUHDWH'XFN&DOO ^ WRWKHVLP UHWXUQQHZ'XFN&DOO  LW·VJHWWLQJD4XDFNDEOH `  SXEOLF4XDFNDEOHFUHDWH5XEEHU'XFN ^ UHWXUQQHZ5XEEHU'XFN  ` `

1RZOHW·VFUHDWHWKHIDFWRU\ZHUHDOO\ZDQWWKH&RXQWLQJ'XFN)DFWRU\

&RXQWLQJ'XFN)DFWRU\ DOVRH[WHQGVWKH DEVWUDFWIDFWRU\

SXEOLFFODVV&RXQWLQJ'XFN)DFWRU\H[WHQGV$EVWUDFW'XFN)DFWRU\^  SXEOLF4XDFNDEOHFUHDWH0DOODUG'XFN ^ UHWXUQQHZ4XDFN&RXQWHU QHZ0DOODUG'XFN  (DFKPHWKRGZUDSVWKH ` 4XDFNDEOHZLWKWKHTXDFN  FRXQWLQJGHFRUDWRU7KH SXEOLF4XDFNDEOHFUHDWH5HGKHDG'XFN ^ VLPXODWRUZLOOQHYHUNQRZ UHWXUQQHZ4XDFN&RXQWHU QHZ5HGKHDG'XFN  WKHGLIIHUHQFHLWMXVW ` JHWVEDFND4XDFNDEOH  %XWQRZRXUUDQJHUVFDQ SXEOLF4XDFNDEOHFUHDWH'XFN&DOO ^ EHVXUHWKDWDOOTXDFNVDUH UHWXUQQHZ4XDFN&RXQWHU QHZ'XFN&DOO  ` EHLQJFRXQWHG  SXEOLF4XDFNDEOHFUHDWH5XEEHU'XFN ^ UHWXUQQHZ4XDFN&RXQWHU QHZ5XEEHU'XFN  ` `

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 12

IDPLOLHVRIGXFNV

/HW·VVHWXSWKHVLPXODWRUWRXVHWKHIDFWRU\



5HPHPEHUKRZ$EVWUDFW)DFWRU\ZRUNV":HFUHDWHDSRO\PRUSKLFPHWKRG WKDWWDNHVDIDFWRU\DQGXVHVLWWRFUHDWHREMHFWV%\SDVVLQJLQGLIIHUHQW IDFWRULHVZHJHWWRXVHGLIIHUHQWSURGXFWIDPLOLHVLQWKHPHWKRG :H·UHJRLQJWRDOWHUWKHVLPXODWH PHWKRGVRWKDWLWWDNHVDIDFWRU\DQG XVHVLWWRFUHDWHGXFNV

WH )LUVWZHFUHD \ RU FW ID H WK RLQJ WKDWZH·UHJ  WR LQ V WRSDV  WKHVLPXODWH PHWKRG

SXEOLFFODVV'XFN6LPXODWRU^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 'XFN6LPXODWRUVLPXODWRU QHZ'XFN6LPXODWRU  $EVWUDFW'XFN)DFWRU\GXFN)DFWRU\ QHZ&RXQWLQJ'XFN)DFWRU\   VLPXODWRUVLPXODWH GXFN)DFWRU\  `  YRLGVLPXODWH $EVWUDFW'XFN)DFWRU\GXFN)DFWRU\ ^ 7KHVLPXODWH  4XDFNDEOHPDOODUG'XFN GXFN)DFWRU\FUHDWH0DOODUG'XFN  PHWKRGWDNHVDQ 4XDFNDEOHUHGKHDG'XFN GXFN)DFWRU\FUHDWH5HGKHDG'XFN  $EVWUDFW'XFN)DFWRU\ 4XDFNDEOHGXFN&DOO GXFN)DFWRU\FUHDWH'XFN&DOO  DQGXVHVLWWRFUHDWH 4XDFNDEOHUXEEHU'XFN GXFN)DFWRU\FUHDWH5XEEHU'XFN  GXFNVUDWKHUWKDQ 4XDFNDEOHJRRVH'XFN QHZ*RRVH$GDSWHU QHZ*RRVH  LQVWDQWLDWLQJWKHP  6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU:LWK$EVWUDFW)DFWRU\´  GLUHFWO\  VLPXODWH PDOODUG'XFN  VLPXODWH UHGKHDG'XFN  VLPXODWH GXFN&DOO  VLPXODWH UXEEHU'XFN  VLPXODWH JRRVH'XFN   1RWKLQJFKDQJHVKHUH 6\VWHPRXWSULQWOQ ³7KHGXFNVTXDFNHG³ 6DPHRO·FRGH 4XDFN&RXQWHUJHW4XDFNV  ³WLPHV´  `  YRLGVLPXODWH 4XDFNDEOHGXFN ^ GXFNTXDFN  ` `



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 13

FRPSRXQGSDWWHUQV

+HUH·VWKHRXWSXWXVLQJWKHIDFWRU\

)LOH(GLW:LQGRZ+HOS(JJ)DFWRU\

MDYD'XFN6LPXODWRU 'XFN6LPXODWRU:LWK$EVWUDFW)DFWRU\ 4XDFN 4XDFN .ZDN 6TXHDN +RQN TXDFNVZHUHFRXQWHG 

WLPHEXW 6DPHDVODVWUHHQVXULQJ H· Z H WKLVWLP NVDUH WKDWWKHGXF EHFDXVH DOOGHFRUDWHGWKH ZHDUHXVLQJ N)DFWRU\ &RXQWLQJ'XF

6KDUSHQ \RXU SHQFLO 7ERESTILLDIRECTLYINSTANTIATING'EESEBYRELYINGONCONCRETECLASSES#ANYOUWRITE AN!BSTRACT&ACTORYFOR'EESE(OWSHOULDITHANDLECREATINGhGOOSEDUCKSv

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 14

ÀRFNRIGXFNV

,W·VJHWWLQJDOLWWOHGLIÀFXOW WRPDQDJHDOOWKHVHGLIIHUHQWGXFNV VHSDUDWHO\,VWKHUHDQ\ZD\\RXFDQ KHOSXVPDQDJHGXFNVDVDZKROHDQG SHUKDSVHYHQDOORZXVWRPDQDJHDIHZ GXFN´IDPLOLHVµWKDWZH·GOLNHWRNHHS WUDFNRI"

$KKHZDQWVWRPDQDJHD ÁRFNRIGXFNV 0MZM¼[IVW\PMZOWWLY]M[\QWVNZWU:IVOMZ*ZM_MZ" ?PaIZM_MUIVIOQVOL]KS[QVLQ^QL]ITTa'

7KLVLVQ·WYHU\ PDQDJHDEOH

4XDFNDEOHPDOODUG'XFN GXFN)DFWRU\FUHDWH0DOODUG'XFN  4XDFNDEOHUHGKHDG'XFN GXFN)DFWRU\FUHDWH5HGKHDG'XFN  4XDFNDEOHGXFN&DOO GXFN)DFWRU\FUHDWH'XFN&DOO  4XDFNDEOHUXEEHU'XFN GXFN)DFWRU\FUHDWH5XEEHU'XFN  4XDFNDEOHJRRVH'XFN QHZ*RRVH$GDSWHU QHZ*RRVH   VLPXODWH PDOODUG'XFN  VLPXODWH UHGKHDG'XFN  VLPXODWH GXFN&DOO  VLPXODWH UXEEHU'XFN  VLPXODWH JRRVH'XFN 

?PI\_MVMMLQ[I_Ia\W\ITSIJW]\KWTTMK\QWV[WN  L]KS[IVLM^MV[]JKWTTMK\QWV[WN L]KS[\WLMIT_Q\P \PMNIUQTaZMY]M[\NZWU:IVOMZ*ZM_MZ1\_W]TL IT[WJMVQKMQN _MKW]TLIXXTaWXMZI\QWV[IKZW[[\PM _PWTM[M\WN L]KS[ ?PI\XI\\MZVKIVPMTX]['



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 15

FRPSRXQGSDWWHUQV



/HW·VFUHDWHDÁRFNRIGXFNV ZHOODFWXDOO\DÁRFNRI4XDFNDEOHV  5HPHPEHUWKH&RPSRVLWH3DWWHUQWKDWDOORZVXVWRWUHDWDFROOHFWLRQRI REMHFWVLQWKHVDPHZD\DVLQGLYLGXDOREMHFWV":KDWEHWWHUFRPSRVLWH WKDQDÁRFNRI4XDFNDEOHV /HW·VVWHSWKURXJKKRZWKLVLVJRLQJWRZRUN

VWRLPSOHPHQW 5HPHPEHUWKHFRPSRVLWHQHHGDIHOHPHQWV2XU HOH WK HDV WKHVDPHLQWHUIDF OHDIHOHPHQWVDUH4XDFNDEOHV :H·UHXVLQJDQ$UUD\/LVWLQVLGH SXEOLFFODVV)ORFNLPSOHPHQWV4XDFNDEOH^ HDFK)ORFNWRKROGWKH4XDFNDEOHV $UUD\/LVWTXDFNHUV QHZ$UUD\/LVW  WKDWEHORQJWRWKH)ORFN  SXEOLFYRLGDGG 4XDFNDEOHTXDFNHU ^ TXDFNHUVDGG TXDFNHU  7KHDGG PHWKRGDGGVD ` 4XDFNDEOHWRWKH)ORFN  SXEOLFYRLGTXDFN ^ ,WHUDWRULWHUDWRU TXDFNHUVLWHUDWRU  ZKLOH LWHUDWRUKDV1H[W ^ 4XDFNDEOHTXDFNHU  4XDFNDEOH LWHUDWRUQH[W  TXDFNHUTXDFN  ` ` ` NDEOHWRR

WKH)ORFNLVD4XDF 1RZIRUWKHTXDFN PHWKRGDIWHUDOORUNRYHUWKHHQWLUH)ORFN+HUH WRZ QHHGV ORFN LQ) WKRG PH 7KHTXDFN OOTXDFN RQHDFKHOHPHQW ZHLWHUDWHWKURXJKWKH$UUD\/LVWDQGFD

&RGH8S&ORVH

$IDYOUNOTICETHATWETRIEDTOSNEAKA$ESIGN0ATTERNBY YOUWITHOUTMENTIONINGIT

SXEOLFYRLGTXDFN ^ ,WHUDWRULWHUDWRU TXDFNHUVLWHUDWRU  ZKLOH LWHUDWRUKDV1H[W ^ 4XDFNDEOHTXDFNHU  4XDFNDEOH LWHUDWRUQH[W  TXDFNHUTXDFN  ` `

7KHUHLWLV7KH,WHUDWRU 3DWWHUQDWZRUN

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 16

GXFNFRPSRVLWH



1RZZHQHHGWRDOWHUWKHVLPXODWRU 2XUFRPSRVLWHLVUHDG\ZHMXVWQHHGVRPHFRGHWRURXQGXSWKH GXFNVLQWRWKHFRPSRVLWHVWUXFWXUH

SXEOLFFODVV'XFN6LPXODWRU^ PDLQPHWKRGKHUH &UHDWHDOOWKH  4XDFNDEOHVMXVW YRLGVLPXODWH $EVWUDFW'XFN)DFWRU\GXFN)DFWRU\ ^ OLNHEHIRUH 4XDFNDEOHUHGKHDG'XFN GXFN)DFWRU\FUHDWH5HGKHDG'XFN  4XDFNDEOHGXFN&DOO GXFN)DFWRU\FUHDWH'XFN&DOO  4XDFNDEOHUXEEHU'XFN GXFN)DFWRU\FUHDWH5XEEHU'XFN  4XDFNDEOHJRRVH'XFN QHZ*RRVH$GDSWHU QHZ*RRVH  6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU:LWK&RPSRVLWH)ORFNV´  )ORFNÀRFN2I'XFNV QHZ)ORFN 

)LUVWZHFUHDWHD)ORFNDQG ORDGLWXSZLWK4XDFNDEOHV

ÀRFN2I'XFNVDGG UHGKHDG'XFN  ÀRFN2I'XFNVDGG GXFN&DOO  ÀRFN2I'XFNVDGG UXEEHU'XFN  ÀRFN2I'XFNVDGG JRRVH'XFN 

7KHQZHFUHDWHDQHZ )ORFNRI0DOODUGV

)ORFNÀRFN2I0DOODUGV QHZ)ORFN 

+HUHZH·UH FUHDWLQJD OLWWOHIDPLO\RI PDOODUGV

4XDFNDEOHPDOODUG2QH GXFN)DFWRU\FUHDWH0DOODUG'XFN  4XDFNDEOHPDOODUG7ZR GXFN)DFWRU\FUHDWH0DOODUG'XFN  4XDFNDEOHPDOODUG7KUHH GXFN)DFWRU\FUHDWH0DOODUG'XFN  4XDFNDEOHPDOODUG)RXU GXFN)DFWRU\FUHDWH0DOODUG'XFN  ÀRFN2I0DOODUGVDGG PDOODUG2QH  ÀRFN2I0DOODUGVDGG PDOODUG7ZR  ÀRFN2I0DOODUGVDGG PDOODUG7KUHH  ÀRFN2I0DOODUGVDGG PDOODUG)RXU 

DQGDGGLQJWKHPWRWKH )ORFNRIPDOODUGV 7KHQZHDGGWKH)ORFNRI PDOODUGVWRWKHPDLQIORFN

ÀRFN2I'XFNVDGG ÀRFN2I0DOODUGV 

6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU:KROH)ORFN6LPXODWLRQ´  VLPXODWH ÀRFN2I'XFNV 

/HW·VWHVWRXWWKHHQWLUH)ORFN

6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU0DOODUG)ORFN6LPXODWLRQ´  VLPXODWH ÀRFN2I0DOODUGV 

7KHQOHW·VMXVWWHVWRXWWKHPDOODUG·V)ORFN

6\VWHPRXWSULQWOQ ³?Q7KHGXFNVTXDFNHG³ 4XDFN&RXQWHUJHW4XDFNV  ³WLPHV´  ` YRLGVLPXODWH 4XDFNDEOHGXFN ^ GXFNTXDFN  ` `



)LQDOO\OHW·VJLYHWKH 4XDFNRORJLVWWKHGDWD

1RWKLQJQHHGVWRFKDQJHKHUHD)ORFNLVD4XDFNDEOH

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 17

FRPSRXQGSDWWHUQV /HW·VJLYHLWDVSLQ )LOH(GLW:LQGRZ+HOS)ORFN$'XFN

MDYD'XFN6LPXODWRU 'XFN6LPXODWRU:LWK&RPSRVLWH)ORFNV

'XFN6LPXODWRU:KROH)ORFN6LPXODWLRQ 4XDFN .ZDN +HUH·VWKHILUVWIORFN 6TXHDN +RQN 4XDFN 4XDFN 4XDFN 4XDFN 'XFN6LPXODWRU0DOODUG)ORFN6LPXODWLRQ 4XDFN $QGQRZWKHPDOODUGV 4XDFN 7KHGDWDORRNV 4XDFN JRRG UHPHPEHU 4XDFN 7KHGXFNVTXDFNHGWLPHV

WKHJRRVHGRHVQ·W JHWFRXQWHG 

;INM\a^MZ[][\ZIV[XIZMVKa
\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 18

GXFNREVHUYHU

7KH&RPSRVLWHLVZRUNLQJ JUHDW7KDQNV1RZZHKDYHWKH RSSRVLWHUHTXHVWZHDOVRQHHGWR WUDFNLQGLYLGXDOGXFNV&DQ\RXJLYH XVDZD\WRNHHSWUDFNRILQGLYLGXDO GXFNTXDFNLQJLQUHDOWLPH"

&DQ\RXVD\´REVHUYHU"· 1\[W]VL[TQSM\PM9]IKSWTWOQ[\_W]TLTQSM\WWJ[MZ^MQVLQ^QL]IT L]KSJMPI^QWZ


)LUVWZHQHHGDQ2EVHUYDEOHLQWHUIDFH 5HPHPEHUWKDWDQ2EVHUYDEOHLVWKHREMHFWEHLQJREVHUYHG$Q2EVHUYDEOH QHHGVPHWKRGVIRUUHJLVWHULQJDQGQRWLI\LQJREVHUYHUV:HFRXOGDOVRKDYH DPHWKRGIRUUHPRYLQJREVHUYHUVEXWZH·OONHHSWKHLPSOHPHQWDWLRQVLPSOH KHUHDQGOHDYHWKDWRXW

UIDFH 4XDFN2EVHUYDEOHLVWKHLQWHOHPHQW WKDW4XDFNDEOHVVKRXOGLPSHG LIWKH\ZDQWWREHREVHUY SXEOLFLQWHUIDFH4XDFN2EVHUYDEOH^ SXEOLFYRLGUHJLVWHU2EVHUYHU 2EVHUYHUREVHUYHU  SXEOLFYRLGQRWLI\2EVHUYHUV  `

,WDOVRKDVDPHWKRGIRU QRWLI\LQJWKHREVHUYHUV

,WKDVDPHWKRGIRUUHJLVWHULQJ 2EVHUYHUV$Q\REMHFWLPSOHPHQWLQJ WKH2EVHUYHULQWHUIDFHFDQOLVWHQ WRTXDFNV:H·OOGHILQHWKH2EVHUYHU LQWHUIDFHLQDVHF

1RZZHQHHGWRPDNHVXUHDOO4XDFNDEOHVLPSOHPHQWWKLVLQWHUIDFH

SXEOLFLQWHUIDFH4XDFNDEOHH[WHQGV4XDFN2EVHUYDEOH^ SXEOLFYRLGTXDFN  `

6RZHH[WHQGWKH4XDFNDEOH LQWHUIDFHZLWK4XDFN2EVHUYHU 

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 19

FRPSRXQGSDWWHUQV



1RZZHQHHGWRPDNHVXUHDOOWKHFRQFUHWH FODVVHVWKDWLPSOHPHQW4XDFNDEOHFDQKDQGOH EHLQJD4XDFN2EVHUYDEOH

6WRSORRNLQJDW PH
:HFRXOGDSSURDFKWKLVE\LPSOHPHQWLQJUHJLVWUDWLRQDQG QRWLÀFDWLRQLQHDFKDQGHYHU\FODVV OLNHZHGLGLQ&KDSWHU  %XWZH·UHJRLQJWRGRLWDOLWWOHGLIIHUHQWO\WKLVWLPH ZH·UHJRLQJWRHQFDSVXODWHWKHUHJLVWUDWLRQDQGQRWLÀFDWLRQ FRGHLQDQRWKHUFODVVFDOOLW2EVHUYDEOHDQGFRPSRVHLW ZLWKD4XDFN2EVHUYDEOH7KDWZD\ZHRQO\ZULWHWKHUHDO FRGHRQFHDQGWKH4XDFN2EVHUYDEOHMXVWQHHGVHQRXJK FRGHWRGHOHJDWHWRWKHKHOSHUFODVV2EVHUYDEOH /HW·VVWDUWZLWKWKH2EVHUYDEOHKHOSHUFODVV

4XDFN2EVHUYHUDEOH

HIXQFWLRQDOLW\ 2EVHUYDEOHLPSOHPHQWVDOOWKREVHUYDEOH DQ EH VWR HHG OHQ NDE D4XDF DFODVVDQG :HMXVWQHHGWRSOXJLWLQWR2EVHUYDEOH WR DWH HOHJ KDYHWKDWFODVVG

2EVHUYDEOHPXVWLPSOHPHQW4XDFN2EVHUYDEOH EHFDXVHWKHVHDUHWKHVDPHPHWKRGFDOOV WKDWDUHJRLQJWREHGHOHJDWHGWRLW  ,QWKHFRQVWUXFWRUZHJHW  WKH4XDFN2EVHUYDEOH VHG SDV SXEOLFFODVV2EVHUYDEOHLPSOHPHQWV4XDFN2EVHUYDEOH^  WKDWLVXVLQJWKLVREMHFWWR LRU $UUD\/LVWREVHUYHUV QHZ$UUD\/LVW  KDY EH DEOH VHUY RE PDQDJHLWV 4XDFN2EVHUYDEOHGXFN KRG &KHFNRXWWKHQRWLI\ PHW   EHORZ\RX·OOVHHWKDWZKHQDVVHV SXEOLF2EVHUYDEOH 4XDFN2EVHUYDEOHGXFN ^ WKLVGXFN GXFN QRWLI\RFFXUV2EVHUYDEOHSD H ` WKLVREMHFWDORQJVRWKDWWKLV  REVHUYHUNQRZVZKLFKREMHFW SXEOLFYRLGUHJLVWHU2EVHUYHU 2EVHUYHUREVHUYHU ^ TXDFNLQJ

REVHUYHUVDGG REVHUYHU  `  SXEOLFYRLGQRWLI\2EVHUYHUV ^ ,WHUDWRULWHUDWRU REVHUYHUVLWHUDWRU  ZKLOH LWHUDWRUKDV1H[W ^ 2EVHUYHUREVHUYHU  2EVHUYHU LWHUDWRUQH[W  REVHUYHUXSGDWH GXFN  ` ` `

+HUH·VWKHFRGHIRU UHJLVWHULQJDQREVHUYHU

$QGWKHFRGHIRUGRLQJ WKHQRWLILFDWLRQV

1RZOHW·VVHHKRZD4XDFNDEOHFODVVXVHVWKLVKHOSHU

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 20

TXDFNGHFRUDWRUVDUHREVHUYDEOHVWRR



,QWHJUDWHWKHKHOSHU2EVHUYDEOHZLWKWKH4XDFNDEOHFODVVHV 7KLVVKRXOGQ·WEHWRREDG$OOZHQHHGWRGRLVPDNHVXUHWKH4XDFNDEOHFODVVHV DUHFRPSRVHGZLWKDQ2EVHUYDEOHDQGWKDWWKH\NQRZKRZWRGHOHJDWHWRLW$IWHU WKDWWKH\·UHUHDG\WREH2EVHUYDEOHV+HUH·VWKHLPSOHPHQWDWLRQRI0DOODUG'XFN WKHRWKHUGXFNVDUHWKHVDPH SXEOLFFODVV0DOODUG'XFNLPSOHPHQWV4XDFNDEOH^ (DFK4XDFNDEOHKDVDQ 2EVHUYDEOHREVHUYDEOH 2EVHUYDEOHLQVWDQFHYDULDEOH  SXEOLF0DOODUG'XFN ^ ,QWKHFRQVWUXFWRUZHFUHDWHDQ REVHUYDEOH QHZ2EVHUYDEOH WKLV  2EVHUYDEOHDQGSDVVLWDUHIHUHQFH ` WRWKH0DOODUG'XFNREMHFW  SXEOLFYRLGTXDFN ^ 6\VWHPRXWSULQWOQ ³4XDFN´  :KHQZHTXDFNZH QRWLI\2EVHUYHUV  QHHGWROHWWKH ` REVHUYHUVNQRZDERXWLW  SXEOLFYRLGUHJLVWHU2EVHUYHU 2EVHUYHUREVHUYHU ^ REVHUYDEOHUHJLVWHU2EVHUYHU REVHUYHU  `  SXEOLFYRLGQRWLI\2EVHUYHUV ^ REVHUYDEOHQRWLI\2EVHUYHUV  +HUH·VRXUWZR4XDFN2EVHUYDEOH ` PHWKRGV1RWLFHWKDWZHMXVW `

GHOHJDWHWRWKHKHOSHU

6KDUSHQ \RXU SHQFLO 7EHAVENTCHANGEDTHEIMPLEMENTATIONOFONE1UACKABLE THE1UACK#OUNTER DECORATOR7ENEEDTOMAKEITAN/BSERVABLETOO7HYDONTYOUWRITETHATONE



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 21

FRPSRXQGSDWWHUQV



:H·UHDOPRVWWKHUH:HMXVWQHHGWRZRUNRQWKH2EVHUYHUVLGH RIWKHSDWWHUQ :H·YHLPSOHPHQWHGHYHU\WKLQJZHQHHGIRUWKH2EVHUYDEOHVQRZZH QHHGVRPH2EVHUYHUV:H·OOVWDUWZLWKWKH2EVHUYHULQWHUIDFH

7KH2EVHUYHULQWHUIDF KDVRQHPHWKRGXSGDW HMXVW LVSDVVHGWKH4XDFN2EVHH ZKLFK UYDEOH WKDWLVTXDFNLQJ SXEOLFLQWHUIDFH2EVHUYHU^ SXEOLFYRLGXSGDWH 4XDFN2EVHUYDEOHGXFN  `

1RZZHQHHGDQ2EVHUYHUZKHUHDUH WKRVH4XDFNRORJLVWV"

:HQHHGWRLPSOHPHQWWKH2EVHUYDEOHLQWHUIDFHRUHOVH ZHZRQ·WEHDEOHWRUHJLVWHUZLWKD4XDFN2EVHUYDEOH SXEOLFFODVV4XDFNRORJLVWLPSOHPHQWV2EVHUYHU^  SXEOLFYRLGXSGDWH 4XDFN2EVHUYDEOHGXFN ^ 6\VWHPRXWSULQWOQ ³4XDFNRORJLVW³GXFN³MXVWTXDFNHG´  ` `

7KH4XDFNRORJLVWLVVLPS PHWKRGXSGDWH ZKLFK OHLWMXVWKDVRQH 4XDFNDEOHWKDWMXVWTXD SULQWVRXWWKH FNHG

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 22

ÀRFNFRPSRVLWHVDUHREVHUYDEOHVWRR

6KDUSHQ \RXU SHQFLO :KDWLID4XDFNRORJLVWZDQWVWRREVHUYHDQHQWLUHÀRFN":KDWGRHVWKDWPHDQ DQ\ZD\"7KLQNDERXWLWOLNHWKLVLIZHREVHUYHDFRPSRVLWHWKHQZH¶UHREVHUYLQJ HYHU\WKLQJLQWKHFRPSRVLWH6RZKHQ\RXUHJLVWHUZLWKDÀRFNWKHÀRFN FRPSRVLWHPDNHVVXUH\RXJHWUHJLVWHUHGZLWKDOOLWVFKLOGUHQ VRUU\DOOLWVOLWWOH TXDFNHUV ZKLFKPD\LQFOXGHRWKHUÀRFNV *RDKHDGDQGZULWHWKH)ORFNREVHUYHUFRGHEHIRUHZHJRDQ\IXUWKHU



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 23

FRPSRXQGSDWWHUQV



:H·UHUHDG\WRREVHUYH/HW·VXSGDWHWKH VLPXODWRUDQGJLYHLWWU\

SXEOLFFODVV'XFN6LPXODWRU^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ 'XFN6LPXODWRUVLPXODWRU QHZ'XFN6LPXODWRU  $EVWUDFW'XFN)DFWRU\GXFN)DFWRU\ QHZ&RXQWLQJ'XFN)DFWRU\   VLPXODWRUVLPXODWH GXFN)DFWRU\  `  YRLGVLPXODWH $EVWUDFW'XFN)DFWRU\GXFN)DFWRU\ ^  FUHDWHGXFNIDFWRULHVDQGGXFNVKHUH  FUHDWHÀRFNVKHUH  6\VWHPRXWSULQWOQ ³?Q'XFN6LPXODWRU:LWK2EVHUYHU´  4XDFNRORJLVWTXDFNRORJLVW QHZ4XDFNRORJLVW  $OOZHGRKHUHLVFUHDWHD ÀRFN2I'XFNVUHJLVWHU2EVHUYHU TXDFNRORJLVW  FNRORJLVWDQGVHWKLPDV

4XD DQREVHUYHURIWKHIORFN

VLPXODWH ÀRFN2I'XFNV 

6\VWHPRXWSULQWOQ ³?Q7KHGXFNVTXDFNHG³ 7KLVWLPHZH·OOZH 4XDFN&RXQWHUJHW4XDFNV  MXVWVLPXODWHWKH ³WLPHV´  ` HQWLUHIORFN  YRLGVLPXODWH 4XDFNDEOHGXFN ^ GXFNTXDFN  /HW·VJLYHLWDWU\DQG ` VHHKRZLWZRUNV `

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 24

WKHGXFN¿QDOH

7KLVLVWKHELJÀQDOH)LYHQRVL[SDWWHUQVKDYHFRPHWRJHWKHUWRFUHDWH WKLVDPD]LQJ'XFN6LPXODWRU:LWKRXWIXUWKHUDGRZHSUHVHQWWKH 'XFN6LPXODWRU )LOH(GLW:LQGRZ+HOS'XFNV$UH(YHU\ZKHUH

MDYD'XFN6LPXODWRU 'XFN6LPXODWRU:LWK2EVHUYHU $IWHUHDFK 4XDFN TXDFNQRPDWWHU 4XDFNRORJLVW5HGKHDG'XFNMXVWTXDFNHG ZKDWNLQGRI .ZDN TXDFNLWZDVWKH 4XDFNRORJLVW'XFN&DOOMXVWTXDFNHG REVHUYHUJHWVD 6TXHDN QRWLILFDWLRQ 4XDFNRORJLVW5XEEHU'XFNMXVWTXDFNHG +RQN 4XDFNRORJLVW*RRVHSUHWHQGLQJWREHD'XFNMXVWTXDFNHG 4XDFN 4XDFNRORJLVW0DOODUG'XFNMXVWTXDFNHG 4XDFN 4XDFNRORJLVW0DOODUG'XFNMXVWTXDFNHG 4XDFN 4XDFNRORJLVW0DOODUG'XFNMXVWTXDFNHG 4XDFN 4XDFNRORJLVW0DOODUG'XFNMXVWTXDFNHG $QGWKH 7KH'XFNVTXDFNHGWLPHV TXDFNRORJLVWVWLOO

JHWVKLVFRXQWV



there are no

Dumb Questions

Q: A:

6RWKLVZDVDFRPSRXQGSDWWHUQ"

1RWKLVZDVMXVWDVHWRISDWWHUQV ZRUNLQJWRJHWKHU$FRPSRXQGSDWWHUQLVD VHWRIDIHZSDWWHUQVWKDWDUHFRPELQHGWR VROYHDJHQHUDOSUREOHP:H·UHMXVWDERXW WRWDNHDORRNDWWKH0RGHO9LHZ&RQWUROOHU FRPSRXQGSDWWHUQLW·VDFROOHFWLRQRIDIHZ SDWWHUQVWKDWKDVEHHQXVHGRYHUDQGRYHULQ PDQ\GHVLJQVROXWLRQV 



Q:

6RWKHUHDOEHDXW\RI'HVLJQ 3DWWHUQVLVWKDW,FDQWDNHDSUREOHPDQG VWDUWDSSO\LQJSDWWHUQVWRLWXQWLO,KDYHD VROXWLRQ5LJKW"

A:

:URQJ:HZHQWWKURXJKWKLV H[HUFLVHZLWK'XFNVWRVKRZ\RXKRZ SDWWHUQVFDQZRUNWRJHWKHU
6RPHWLPHVMXVWXVLQJJRRG22GHVLJQ SULQFLSOHVFDQVROYHDSUREOHPZHOOHQRXJK RQLWVRZQ :H·UHJRLQJWRWDONPRUHDERXWWKLVLQWKH QH[WFKDSWHUEXW\RXRQO\ZDQWWRDSSO\ SDWWHUQVZKHQDQGZKHUHWKH\PDNH VHQVH
&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 25

FRPSRXQGSDWWHUQV

?PI\LQL_MLW' :HVWDUWHGZLWKDEXQFKRI4XDFNDEOHV $JRRVHFDPHDORQJDQGZDQWHGWRDFWOLNHD4XDFNDEOHWRR3OWE USEDTHE!DAPTER0ATTERNTOADAPTTHEGOOSETOA1UACKABLE.OW YOUCANCALLQUACK ONA GOOSEWRAPPEDINTHEADAPTERANDITWILLHONK 7KHQWKH4XDFNRORJLVWVGHFLGHGWKH\ZDQWHGWRFRXQWTXDFNV3OWE USEDTHE$ECORATOR0ATTERNTOADDA1UACK#OUNTERDECORATORTHATKEEPSTRACKOFTHENUMBER OFTIMESQUACK ISCALLED ANDTHENDELEGATESTHEQUACKTOTHE1UACKABLEITSWRAPPING %XWWKH4XDFNRORJLVWVZHUHZRUULHGWKH\·GIRUJHWWRDGGWKH 4XDFN&RXQWHUGHFRUDWRU3OWEUSEDTHE!BSTRACT&ACTORY0ATTERNTOCREATEDUCKS FORTHEM.OW WHENEVERTHEYWANTADUCK THEYASKTHEFACTORYFORONE ANDITHANDSBACK ADECORATEDDUCK!NDDONTFORGET THEYCANALSOUSEANOTHERDUCKFACTORYIFTHEYWANTAN UN DECORATEDDUCK :HKDGPDQDJHPHQWSUREOHPVNHHSLQJWUDFNRIDOOWKRVHGXFNVDQG JHHVHDQGTXDFNDEOHV3OWEUSEDTHE#OMPOSITE0ATTERNTOGROUPQUACKABLES INTO&LOCKS4HEPATTERNALSOALLOWSTHEQUACKOLOGISTTOCREATESUB &LOCKSTOMANAGEDUCK FAMILIES7EUSEDTHE)TERATOR0ATTERNINOURIMPLEMENTATIONBYUSINGJAVAUTILSITERATORIN !RRAY,IST 7KH4XDFNRORJLVWVDOVRZDQWHGWREHQRWLÀHGZKHQDQ\TXDFNDEOH TXDFNHG3OWEUSEDTHE/BSERVER0ATTERNTOLETTHE1UACKOLOGISTSREGISTERAS1UACKABLE /BSERVERS.OWTHEYRENOTIlEDEVERYTIMEANY1UACKABLEQUACKS7EUSEDITERATORAGAIN INTHISIMPLEMENTATION4HE1UACKOLOGISTSCANEVENUSETHE/BSERVER0ATTERNWITHTHEIR COMPOSITES

7KDWZDVTXLWHD'HVLJQ3DWWHUQ ZRUNRXW
\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 26

GXFN¶VH\HYLHZ

)JQZL¼[L]KS¼[MaM^QM_"\ PMKTI[[LQIOZIU ?M¼^MXIKSMLITW\WN XI\\MZV[QV\WWVM[UITTL]KS[QU]TI\WZ 0MZM¼[\PMJQOXQK\]ZMWN _PI\_MLQL"

'XFN6LPXODWRU

FWRU\WRFUHDWH'XFNV

7KH'XFN6LPXODWRUXVHVDID

$EVWUDFW'XFN)DFWRU\ FUHDWH0DOODUG'XFN FUHDWH5HGKHDG'XFN FUHDWH'XFN&DOO FUHDWH5XEEHU'XFN

'XFN)DFWRU\

&RXQWLQJ'XFN)DFWRU\

FUHDWH0DOODUG'XFN

FUHDWH0DOODUG'XFN

FUHDWH5HGKHDG'XFN

FUHDWH5HGKHDG'XFN

FUHDWH'XFN&DOO

FUHDWH'XFN&DOO

FUHDWH5XEEHU'XFN

FUHDWH5XEEHU'XFN

,IDFODVVLPSOHPHQW 2EVHUYHUWKDW V PHDQVLWFDQREVHUYH 4XDFNDEOHVDQGZLO EHQRWLILHGZKHQHYHO D4XDFNDEOHTXDFNV U

+HUHDUHWZRGLIIHUHQW IDFWRULHVWKDWSURGXFH WKHVDPHIDPLO\RI SURGXFWV7KH'XFN)DFWRU\ FUHDWHVGXFNVDQGWKH &RXQWLQJ'XFN)DFWRU\ FUHDWHV'XFNVZUDSSHGLQ 4XDFN&RXQWHUGHFRUDWRUV

LQWHUIDFH!! 2EVHUYHU XSGDWH 4XDFN2EVHUYDEOH

4XDFNRORJLVW XSGDWH 4XDFN2EVHUYDEOH

:HRQO\LPSOHP IRUWKH4XDFN HQWHGRQHNLQGRI2EVHUYHU DQ\FODVVWKDW DEOHVWKH4XDFNRORJLVW%X LQWHUIDFHFDQLPSOHPHQWVWKH2EVHUYHU W LPSOHPHQWLQJD REVHUYHGXFNVKRZDERXW %LUG:DWFKHUR EVHUYHU" 

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 27

FRPSRXQGSDWWHUQV

FH 7KH4XDFN2EVHUYDEOHLQWHUID W JLYHVXVDVHWRIPHWKRGVWKDW DQ\2EVHUYDEOHPXVWLPSOHPHQ

4XDFNDEOHLVWKHLQW WKDWDOOFODVVHVWKDWHUIDFH TXDFNLQJEHKDYLRULPSKDYH OHPHQW

(DFK4XDFNDEOHKDVDQ LQVWDQFHRI2EVHUYDEOH WRNHHSWUDFNRIWKHLU REVHUYHUVDQGQRWLI\WKHP ZKHQWKH4XDFNDEOHTXDFNV

LQWHUIDFH!! 4XDFN2EVHUYDEOH UHJLVWHU2EVHUYHU 2EVHUYHU QRWLI\2EVHUYHUV

2EVHUYDEOH

LQWHUIDFH!! 4XDFNDEOH

$UUD\/LVWREVHUYHUV 4XDFN2EVHUYDEOHGXFN

TXDFN

UHJLVWHU2EVHUYHU 2EVHUYHU QRWLI\2EVHUYHUV

0DOODUG'XFN TXDFN

*RRVH$GDSWHU *RRVHJRRVH

5HGKHDG'XFN

UHJLVWHU2EVHUYHU 2EVHUYHU TXDFN 'XFN&DOO QRWLI\2EVHUYHUV

TXDFN

UHJLVWHU2EVHUYHU 2EVHUYHU TXDFN 5XEEHU'XFN QRWLI\2EVHUYHUV UHJLVWHU2EVHUYHU 2EVHUYHU TXDFN QRWLI\2EVHUYHUV UHJLVWHU2EVHUYHU 2EVHUYHU QRWLI\2EVHUYHUV

UHJLVWHU2EVHUYHU 2EVHUYHU

7KLV$GDSWHU

QRWLI\2EVHUYHUV

)ORFN $UUD\/LVWGXFNV DGG 4XDFNDEOH

:HKDYHWZRNLQGVRI 4XDFNDEOHVGXFNVDQG RWKHUWKLQJVWKDWZDQW 4XDFNDEOHEHKDYLRUOLNHWKH  *RRVH$GDSWHUZKLFKZUDSVD *RRVHDQGPDNHVLWORRNOLNH D4XDFNDEOH)ORFNZKLFKLV D4XDFNDEOH&RPSRVLWHDQG 4XDFN&RXQWHUZKLFKDGGV EHKDYLRUWR4XDFNDEOHV

TXDFN UHJLVWHU2EVHUYHU 2EVHUYHU QRWLI\2EVHUYHUV

DQGWKLV &RPSRVLWH

4XDFN&RXQWHU 4XDFNDEOHGXFN JHW4XDFNV TXDFN UHJLVWHU2EVHUYHU 2EVHUYHU QRWLI\2EVHUYHUV

DQGWKLV 'HFRUDWRU DOODFWOLNH 4XDFNDEOHV

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 28

WKHPRGHOYLHZFRQWUROOHUVRQJ

QM_+WV\ZWTTMZ IVLPM¼LJM[QVOQVOITQ\\TM[WVOTQSM\PQ[ 0RGHO9LHZ&RQWUROOHU /\ULFVDQGPXVLFE\-DPHV'HPSVH\ 09&·VDSDUDGLJPIRUIDFWRULQJ\RXUFRGH LQWRIXQFWLRQDOVHJPHQWVVR\RXUEUDLQGRHVQRWH[SORGH 7RDFKLHYHUHXVDELOLW\\RXJRWWDNHHSWKRVHERXQGDULHV FOHDQ 0RGHORQWKHRQHVLGH9LHZRQWKHRWKHUWKH &RQWUROOHU·VLQEHWZHHQ


6RGRHV

9LHZ &UHDP\ &RQWUROOHU

0RGHO

0RGHO9LHZLW·VJRWWKUHHOD\HUVOLNH2UHRVGR 0RGHO9LHZ&RQWUROOHU 0RGHO9LHZ0RGHO9LHZ0RGHO9LHZ&RQWUROOHU

0RGHO9LHZDOOUHQGHUHGYHU\QLFHO\LQ$TXDEOXH 0RGHO9LHZ&RQWUROOHU

0RGHOREMHFWVUHSUHVHQW\RXUDSSOLFDWLRQVUDLVRQG·rWUH &XVWRPREMHFWVWKDWFRQWDLQGDWDORJLFDQGHWFHWHUD


9LHZREMHFWVWHQGWREHFRQWUROVXVHGWRGLVSOD\DQGHGLW &RFRD·VJRWDORWRIWKRVHZHOOZULWWHQWRLWVFUHGLW 7DNHDQ167H[W9LHZKDQGLWDQ\ROG8QLFRGHVWULQJ 7KHXVHUFDQLQWHUDFWZLWKLWLWFDQKROGPRVWDQ\WKLQJ %XWWKHYLHZGRQ·WNQRZDERXWWKH0RGHO 7KDWVWULQJFRXOGEHDSKRQHQXPEHURUWKHZRUNVRI $ULVWRWOH .HHSWKHFRXSOLQJORRVH DQGVRDFKLHYHDPDVVLYHOHYHORIUHXVH


&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 29

FRPSRXQGSDWWHUQV

,WSXOOVDQGSXVKHVHYHU\FKDQJHGYDOXH

,VHQWD7H[W)LHOG6WULQJ9DOXH

0RGHO9LHZPDGSURSVWRWKHVPDOOWDONFUHZ 0RGHO9LHZ&RQWUROOHU

0RGHO9LHZ +RZZHJRQQDGHHSVL[DOOWKDWJOXH 0RGHO9LHZ&RQWUROOHU

0RGHO9LHZLW·VSURQRXQFHG2K2KQRW2RR2RR 0RGHO9LHZ&RQWUROOHU

&RQWUROOHUVNQRZWKH0RGHODQG9LHZYHU\LQWLPDWHO\ 7KH\RIWHQXVHKDUGFRGLQJZKLFKFDQEHIRUHERGLQJIRU UHXVDELOLW\ %XWQRZ\RXFDQFRQQHFWHDFKPRGHONH\WKDW\RXVHOHFW WRDQ\YLHZSURSHUW\

7KHUH·VDOLWWOHOHIWWRWKLVVWRU\ $IHZPRUHPLOHVXSRQWKLVURDG 1RERG\VHHPVWRJHWPXFKJORU\ )URPZULWLQJWKHFRQWUROOHUFRGH

$QGRQFH\RXVWDUWELQGLQJ ,WKLQN\RX·OOEHILQGLQJOHVVFRGHLQ\RXUVRXUFHWUHH

:HOOWKHPRGHO·VPLVVLRQFULWLFDO $QGJRUJHRXVLVWKHYLHZ ,PLJKWEHOD]\EXWVRPHWLPHVLW·VMXVWFUD]\ +RZPXFKFRGH,ZULWHLVMXVWJOXH $QGLWZRXOGQ·WEHVRWUDJLF %XWWKHFRGHDLQ·WGRLQJPDJLF ,W·VMXVWPRYLQJYDOXHVWKURXJK


$QG,GRQ·WPHDQWREHYLFLRXV %XWLWJHWVUHSLWLWLRXV 'RLQJDOOWKHWKLQJVFRQWUROOHUVGR

LQJ

8VLQJ6Z

0RGHO9LHZHYHQKDQGOHVPXOWLSOHVHOHFWLRQVWRR 0RGHO9LHZ&RQWUROOHU 0RGHO9LHZEHW,VKLSP\DSSOLFDWLRQEHIRUH\RX 0RGHO9LHZ&RQWUROOHU

$QG,ZLVK,KDGDGLPH )RUHYHU\VLQJOHWLPH


\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 30

PYFLVSDWWHUQVSXWWRJHWKHU

&XWHVRQJEXWLVWKDWUHDOO\ VXSSRVHGWRWHDFKPHZKDW0RGHO 9LHZ&RQWUROOHULV",·YHWULHG OHDUQLQJ09&EHIRUHDQGLWPDGHP\ EUDLQKXUW

1R'HVLJQ3DWWHUQVDUH \RXUNH\WRWKH09& ?M_MZMR][\\ZaQVO\W_PM\aW]ZIXXM\Q\M +JMNWZM'5W[\WN ][PI^MAW]¼^M XZWJIJTaPILW\PMZLM^MTWXMZ[\MTTaW]Q\¼[ KPIVOML\PMQZTQ^M[IVLKW]TLXW[[QJTaKZMI\M _WZTLXMIKM1\¼[IXW_MZN]TKWUXW]VL XI\\MZVNWZ[]ZMIVL_PQTM_MKIV¼\KTIQUQ\ _QTTKZMI\M_WZTLXMIKMQ\_QTT[I^MaW]PW]Z[ WN _ZQ\QVOKWLMWVKMaW]SVW_Q\ *]\ÅZ[\aW]PI^M\WTMIZVQ\ZQOP\'?MTT \PMZM¼[OWQVO\WJMIJQOLQNNMZMVKM\PQ[\QUM IZW]VLJMKI][MVW_aW]SVW_XI\\MZV[ + 4MIZVQVO5>+NZWU\PM\WXLW_VQ[LQNÅK]T\# VW\UIVaLM^MTWXMZ[[]KKMML0MZM¼[\PM [MKZM\\WTMIZVQVO5>+"Q\¼[R][\INM_XI\\MZV[ X]\\WOM\PMZ?PMVaW]IXXZWIKPTMIZVQVO 5>+JaTWWSQVOI\\PMXI\\MZV[ITTWN \PM []LLMVQ\[\IZ\[\WUISM[MV[M 4M\¼[OM\[\IZ\ML+



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 31

FRPSRXQGSDWWHUQV

5MM\\PM5WLMT>QM_+WV\ZWTTMZ 1UIOQVMaW]¼ZM][QVOaW]ZNI^WZQ\M58XTIaMZTQSMQ<]VM[AW]KIV][MQ\[QV\MZNIKM\WILL VM_[WVO[UIVIOMXTIaTQ[\[IVLZMVIUM\ZIKS[QM_+WV\ZWTTMZ

E SETH YOUU ACEAND F R E T S IN C TION YOURA HE T O GOT OLLER CO N T R

THE VIE D U P D I S P L AY W I A TE D FO S R YO U
´3OD\QHZVRQJµ

SOD\LQJ

&RQWUROOHU

9LHZ 0RGHOWHOOVWKH YLHZWKHVWDWHKDV FKDQJHG

THEM THEV ODELNOT IF IE INSTA WOFAC IES HANG TE E

 7KHPRGHOFRQWDLQVDOOWKHVWDWHHG QHHG JLF QOR DWLR SSOLF QGD GDWDD WRPDLQWDLQDQGSOD\PSV

FODVV3OD\HU^ SOD\ ^`

ULS ^` EXUQ ^` `

&RQWUROOHUDVNV 3OD\HUPRGHOWR EHJLQSOD\LQJ VRQJ



CONTROLLER MANIPULATES THEMODEL

0RGHO

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 32

6W_TM\¼[bWWUQV\W\PM

PYFXSFORVH

)KTW[MZTWWS +J]\Q\ZMITTaLWM[V¼\PMTXaW] ]VLMZ[\IVL\PMVQ\\aOZQ\\aWN PW_\PMKWUXW]VLXI\\MZV_WZS[PW_aW]¼LJ]QTLWVMaW]Z[MTNWZ _PaQ\¼[[]KPIOWWL\PQVO4M\¼[[\IZ\Ja[\MXXQVO\PZW]OP\PMZMTI\QWV[PQX[IUWVO\PMUWLMT^QM_ IVLKWV\ZWTTMZIVL\PMV_M¼TT\ISM[MKWVLTWWSNZWU\PMXMZ[XMK\Q^MWN ,M[QOV8I\\MZV[

&21752//(5 7DNHVXVHULQSXWDQGÀJXUHVRXW ZKDWLWPHDQVWRWKHPRGHO

9,(: *LYHV\RXDSUHVHQWDWLRQ RIWKHPRGHO7KHYLHZ XVXDOO\JHWVWKHVWDWH DQGGDWDLWQHHGVWR GLVSOD\GLUHFWO\IURP WKHPRGHO

02'(/

+HUH·VWKHFUHDP\ FRQWUROOHULWOLYHVLQ WKHPLGGOH



 7KHXVHUGLG

&RQWUROOHU

&KDQJH\RXU VWDWH

7KHPRGHOKROGVDOO WKHGDWDVWDWHDQG DSSOLFDWLRQORJLF7KH PRGHOLVREOLYLRXVWR WKHYLHZDQGFRQWUROOHU DOWKRXJKLWSURYLGHVDQ LQWHUIDFHWRPDQLSXODWH DQGUHWULHYHLWV VWDWHDQGLWFDQVHQG QRWLÀFDWLRQVRIVWDWH FKDQJHVWRREVHUYHUV

VRPHWKLQJ

 &KDQJH\RXU GLVSOD\

FODVV3OD\HU^ SOD\ ^`

 ,·YHFKDQJHG

ULS ^` EXUQ ^` ` 

0RGHO

9LHZ 7KLVLVWKHXVHU LQWHUIDFH



 ,QHHG\RXUVWDWH LQIRUPDWLRQ

+HUH·VWKHPRGHO LWKDQGOHVDOO DSSOLFDWLRQGDWD DQGORJLF

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 33

FRPSRXQGSDWWHUQV






7KHFRQWUROOHUDVNVWKHPRGHOWRFKDQJHLWVVWDWH 7KHFRQWUROOHUWDNHV\RXUDFWLRQVDQGLQWHUSUHWVWKHP,I\RXFOLFNRQDEXWWRQLW·V WKHFRQWUROOHU·VMREWRÀJXUHRXWZKDWWKDWPHDQVDQGKRZWKHPRGHOVKRXOGEH PDQLSXODWHGEDVHGRQWKDWDFWLRQ



7KHFRQWUROOHUPD\DOVRDVNWKHYLHZWRFKDQJH :KHQWKHFRQWUROOHUUHFHLYHVDQDFWLRQIURPWKHYLHZLWPD\QHHGWRWHOOWKHYLHZ WRFKDQJHDVDUHVXOW)RUH[DPSOHWKHFRQWUROOHUFRXOGHQDEOHRUGLVDEOHFHUWDLQ EXWWRQVRUPHQXLWHPVLQWKHLQWHUIDFH



7KHPRGHOQRWLÀHVWKHYLHZZKHQLWVVWDWHKDVFKDQJHG :KHQVRPHWKLQJFKDQJHVLQWKHPRGHOEDVHGHLWKHURQVRPHDFWLRQ\RXWRRN OLNH FOLFNLQJDEXWWRQ RUVRPHRWKHULQWHUQDOFKDQJH OLNHWKHQH[WVRQJLQWKHSOD\OLVW KDVVWDUWHG WKHPRGHOQRWLÀHVWKHYLHZWKDWLWVVWDWHKDVFKDQJHG



7KHYLHZDVNVWKHPRGHOIRUVWDWH 7KHYLHZJHWVWKHVWDWHLWGLVSOD\VGLUHFWO\IURPWKHPRGHO)RULQVWDQFHZKHQWKH PRGHOQRWLÀHVWKHYLHZWKDWDQHZVRQJKDVVWDUWHGSOD\LQJWKHYLHZUHTXHVWVWKH VRQJQDPHIURPWKHPRGHODQGGLVSOD\VLW7KHYLHZPLJKWDOVRDVNWKHPRGHOIRU VWDWHDVWKHUHVXOWRIWKHFRQWUROOHUUHTXHVWLQJVRPHFKDQJHLQWKHYLHZ

there are no

Q:

'RHVWKHFRQWUROOHUHYHUEHFRPH DQREVHUYHURIWKHPRGHO"

A:

6XUH,QVRPHGHVLJQVWKHFRQWUROOHU UHJLVWHUVZLWKWKHPRGHODQGLVQRWLILHG RIFKDQJHV7KLVFDQEHWKHFDVHZKHQ VRPHWKLQJLQWKHPRGHOGLUHFWO\DIIHFWVWKH XVHULQWHUIDFHFRQWUROV)RULQVWDQFHFHUWDLQ VWDWHVLQWKHPRGHOPD\GLFWDWHWKDWVRPH LQWHUIDFHLWHPVEHHQDEOHGRUGLVDEOHG,I VRLWLVUHDOO\FRQWUROOHU·VMREWRDVNWKHYLHZ WRXSGDWHLWVGLVSOD\DFFRUGLQJO\ 

Dumb Questions

Q:

$OOWKHFRQWUROOHUGRHVLVWDNHXVHU LQSXWIURPWKHYLHZDQGVHQGLWWRWKH PRGHOFRUUHFW":K\KDYHLWDWDOOLIWKDW LVDOOLWGRHV":K\QRWMXVWKDYHWKHFRGH LQWKHYLHZLWVHOI",QPRVWFDVHVLVQ·WWKH FRQWUROOHUMXVWFDOOLQJDPHWKRGRQWKH PRGHO"

A:

7KHFRQWUROOHUGRHVPRUHWKDQ MXVW´VHQGLWWRWKHPRGHOµWKHFRQWUROOHULV UHVSRQVLEOHIRULQWHUSUHWLQJWKHLQSXWDQG PDQLSXODWLQJWKHPRGHOEDVHGRQWKDWLQSXW %XW\RXUUHDOTXHVWLRQLVSUREDEO\´ZK\FDQ·W ,MXVWGRWKDWLQWKHYLHZFRGH"µ


\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 34

WKHSDWWHUQVLQPYF

4WWSQVOI\5>+\PZW]OP XI\\MZV[KWTWZMLOTI[[M[ ?M¼^MITZMILa\WTLaW]\PMJM[\XI\P\WTMIZVQVO\PM5>+Q[\W[MMQ\NWZ_PI\Q\ Q["I[M\WN XI\\MZV[_WZSQVO\WOM\PMZQV\PM[IUMLM[QOV 4M\¼[[\IZ\_Q\P\PMUWLMT)[aW]UQOP\PI^MO]M[[ML\PMUWLMT][M[ 7J[MZ^MZ\WSMMX\PM^QM_[IVLKWV\ZWTTMZ[]XLI\MLWV\PMTI\M[\[\I\MKPIVOM[
;\ZI\MOa 7KHYLHZDQGFRQWUROOHULPSOHPHQWWKHFODVVLF6WUDWHJ\3DWWHUQWKH YLHZLVDQREMHFWWKDWLVFRQILJXUHGZLWKDVWUDWHJ\7KHFRQWUROOHU SURYLGHVWKHVWUDWHJ\7KHYLHZLVFRQFHUQHGRQO\ZLWKWKHYLVXDO DVSHFWVRIWKHDSSOLFDWLRQDQGGHOHJDWHVWRWKHFRQWUROOHUIRUDQ\ GHFLVLRQVDERXWWKHLQWHUIDFHEHKDYLRU8VLQJWKH6WUDWHJ\3DWWHUQDOVR NHHSVWKHYLHZGHFRXSOHGIURPWKHPRGHOEHFDXVHLWLVWKHFRQWUROOHU WKDWLVUHVSRQVLEOHIRULQWHUDFWLQJZLWKWKHPRGHOWRFDUU\RXWXVHU UHTXHVWV7KHYLHZNQRZVQRWKLQJDERXWKRZWKLVJHWVGRQH

7KHXVHUGLG VRPHWKLQJ

+ WU

M XW[Q \

&RQWUROOHU

&KDQJH\RXU VWDWH

&KDQJH\RXU GLVSOD\

7J [ M Z ^M

Z

FODVV3OD\HU^ SOD\ ^`

ULS ^` EXUQ ^` `

,·YHFKDQJHG



0RGHO 9LHZ 7KHGLVSOD\FRQVLVWVRIDQHVWHGVHWRIZLQ GRZVSDQHOVEXWWRQVWH[WODEHOVDQGVRRQ (DFKGLVSOD\FRPSRQHQWLVDFRPSRVLWH OLNH DZLQGRZ RUDOHDI OLNHDEXWWRQ :KHQWKH FRQWUROOHUWHOOVWKHYLHZWRXSGDWHLWRQO\KDV WRWHOOWKHWRSYLHZFRPSRQHQWDQG&RPSRVLWH WDNHVFDUHRIWKHUHVW



,QHHG\RXUVWDWH LQIRUPDWLRQ

7KHPRGHOLPSOHPHQWVWKH2EVHUYHU3DWWHUQ WRNHHSLQWHUHVWHGREMHFWVXSGDWHGZKHQVWDWH FKDQJHVRFFXU8VLQJWKH2EVHUYHU3DWWHUQ NHHSVWKHPRGHOFRPSOHWHO\LQGHSHQGHQWRI WKHYLHZVDQGFRQWUROOHUV,WDOORZVXVWRXVH GLIIHUHQWYLHZVZLWKWKHVDPHPRGHORUHYHQ XVHPXOWLSOHYLHZVDWRQFH

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 35

FRPSRXQGSDWWHUQV

7J[MZ ^MZ

$OOWKHVHREVHUYHUVZLOOEH QRWLILHGZKHQHYHUVWDWH FKDQJHVLQWKHPRGHO

2EVHUYHUV

2EVHUYDEOH

0\VWDWHKDV FKDQJHG

FODVV)RR^ YRLGEDU  ^ GR%DU  ` `

9LHZ



9LHZ

0RGHO &RQWUROOHU

,·GOLNHWRUHJLVWHU DVDQREVHUYHU

;\ZI\MOa 7KHYLHZ GHOHJDWHVWR WKHFRQWUROOHU WRKDQGOHWKH XVHUDFWLRQV

9LHZ

$Q\REMHFWWKDW·V LQWHUHVWHGLQVWDWH FKDQJHVLQWKHPRGHO UHJLVWHUVZLWKWKH PRGHODVDQREVHUYHU

7KHPRGHOKDVQRGHSHQGHQFLHVRQ YLHZHUVRUFRQWUROOHUV

7KHXVHUGLG VRPHWKLQJ

&RQWUROOHU

9LHZ

7KHYLHZRQO\ZRUULHVDERXWSUHVHQWDWLRQWKHFRQWUROOHUZRUULHV DERXWWUDQVODWLQJXVHULQSXWWRDFWLRQVRQWKHPRGHO

+WUXW[Q\M

&RQWUROOHU

WKH 7KHFRQWUROOHULV YLHZ VWUDWHJ\IRUWKHWKDW LW·VWKHREMHFWQGOH NQRZVKRZWRKD WKHXVHUDFWLRQV :HFDQVZDSLQ DQRWKHUEHKDYLRUIRU WKHYLHZE\FKDQJLQJ  WKHFRQWUROOHU

SDLQW

RI 7KHYLHZLVDFRPSRVLWH  HOV ODE V HQW SRQ *8,FRP EXWWRQVWH[WHQWU\ HWF 7KHWRSOHYHO HU FRPSRQHQWFRQWDLQVRWKDLQ FRPSRQHQWVZKLFKFRQWVR RWKHUFRPSRQHQWVDQG RQXQWLO\RXJHWWRWKH OHDIQRGHV

9LHZ

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 36

PYFDQGWKHGMYLHZ

=[QVO5>+\WKWV\ZWT\PMJMI\ 1\¼[aW]Z\QUM\WJM\PM,2?PMVaW]¼ZMI,2Q\¼[ITTIJW]\\PMJMI\AW]UQOP\[\IZ\ aW]ZUQ`_Q\PI[TW_MLLW_V\MUXWOZWW^MI\!JMI\[XMZUQV]\M*85IVL\PMV JZQVO\PMKZW_L]X\WINZMVbQML*85WN \ZIVKM\MKPVWAW]¼TTÅVQ[PWNN aW]Z[M\ _Q\PIUMTTW_ *85IUJQMV\UQ` 0W_IZMaW]OWQVO\WLW\PI\'AW]PI^M\WKWV\ZWT\PMJMI\IVLaW]¼ZMOWQVO\WJ]QTL \PM\WWT\WOM\aW]\PMZM

5MM\\PM2I^I,2>QM_ 4M\¼[[\IZ\_Q\P\PM^QM_WN \PM\WWT
$SXOVLQJEDUVKRZVWKHEHDWLQUHDOWLPH

$GLVSOD\VKRZVWKHFXUUHQW%30VDQGLV DXWRPDWLFDOO\VHWZKHQHYHUWKH%30FKDQJHV

 7KHYLHZKDVWZRSDUWV  LQJ LHZ UY IR UW WKHSD HO WKHVWDWHRIWKHPRG DQGWKHSDUWIRU FRQWUROOLQJWKLQJV
'HFUHDVHV WKH%30E\ RQHEHDWSHU PLQXWH



,QFUHDVHV WKH%30E\ RQHEHDWSHU PLQXWH

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 37

FRPSRXQGSDWWHUQV

+HUH·VDIHZPRUHZD\VWRFRQWUROWKH'-9LHZ
HEHDW
1RWLFH6WDUWLV GLVDEOHGDIWHUWKH EHDWKDVVWDUWHG

1RWLFH6WRSLV GLVDEOHGXQWLO\RX VWDUWWKHEHDW

$OOXVHUDFWLRQVDUH VHQWWRWKHFRQWUROOHU


7KHFRQWUROOHUWDNHVLQSXW IURPWKHXVHUDQGILJXUHVRXW KRZWRWUDQVODWHWKDWLQWR UHTXHVWVRQWKHPRGHO

&RQWUROOHU

4M\¼[VW\NWZOM\IJW]\\PMUWLMT]VLMZVMI\PQ\ITT AW]KIV¼\[MM\PMUWLMTJ]\aW]KIVPMIZQ\
DW0RG %H ON HO 7KH%HDW0RGHOLVWKHKHDUWRIWKH DSSOLFDWLRQ,WLPSOHPHQWVWKHORJLF WRVWDUWDQGVWRSWKHEHDWVHW WKHEHDWVSHUPLQXWH %30 DQG JHQHUDWHWKHVRXQG

SET"0-

OFF

- GET"0

7KHPRGHODOVRDOORZVXVWR REWDLQLWVFXUUHQWVWDWHWKURXJK WKHJHW%30 PHWKRG \RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 38

WKHGMPRGHOYLHZDQGFRQWUROOHU

8]\\QVO\PMXQMKM[\WOM\PMZ

7KHEHDWLVVHWDW%30DQG\RX ZRXOGOLNHWRLQFUHDVHLWWR

&OLFNRQWKH LQFUHDVHEHDW EXWWRQ 9LHZ

ZKLFKUHVXOWVLQWKH FRQWUROOHUEHLQJLQYRNHG

&RQWUROOHU


%HFDXVHWKH%30LVWKHYLHZ DEHDWQRWLILFDWLRQHYHU\VHF JHWV RQG

9LHZ

7KHFRQWUROOHUDVNV WKHPRGHOWRXSGDWH LWV%30E\RQH

DW0RG %H ON HO SET"0- OFF

GET"0

7KHYLHZLVXSGDWHG WR%30



-

 9LHZLVQRWLILHGWKDWWKH%30Q FKDQJHG,WFDOOVJHW%30 R WKHPRGHOVWDWH

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 39

FRPSRXQGSDWWHUQV

*]QTLQVO\PMXQMKM[ 7SIaaW]SVW_\PMUWLMTQ[ZM[XWV[QJTMNWZUIQV\IQVQVOITT\PMLI\I[\I\MIVLIVa IXXTQKI\QWVTWOQK;W_PI\¼[\PM*MI\5WLMTOW\QVQ\'1\[UIQVRWJQ[UIVIOQVO\PMJMI\ [WQ\PI[[\I\M\PI\UIQV\IQV[\PMK]ZZMV\JMI\[XMZUQV]\MIVLTW\[WN KWLM\PI\OMVMZI\M[ 51,1M^MV\[\WKZMI\M\PMJMI\\PI\_MPMIZ1\IT[WM`XW[M[IVQV\MZNIKM\PI\TM\[\PM KWV\ZWTTMZUIVQX]TI\M\PMJMI\IVLTM\[\PM^QM_IVLKWV\ZWTTMZWJ\IQV\PMUWLMT¼[[\I\M )T[WLWV¼\NWZOM\\PI\\PMUWLMT][M[\PM7J[MZ^MZ8I\\MZV[W_MIT[WVMML[WUMUM\PWL[ \WTM\WJRMK\[ZMOQ[\MZI[WJ[MZ^MZ[IVL[MVLW]\VW\QÅKI\QWV[

4M\¼[KPMKSW]\\PM*MI\5WLMT1V\MZNIKMJMNWZMTWWSQVOI\\PM QUXTMUMV\I\QWV" WHUWKH

VFDOOHGDI

7KHVHDUHWKHPHWKRGV WKHFRQWUROOHUZLOOXVHWR GLUHFWWKHPRGHOEDVHGRQ XVHULQWHUDFWLRQ

7KHVHPHWKRGVDOORZ WKHYLHZDQGWKH FRQWUROOHUWRJHW VWDWHDQGWREHFRPH REVHUYHUV

SXEOLFLQWHUIDFH%HDW0RGHO,QWHUIDFH^ 7KLVJHW LVLQVWDQWLDWHG YRLGLQLWLDOL]H  %HDW0RGHO  7KHVHPHWKRGVWXUQWKHEHDW YRLGRQ  JHQHUDWRURQDQGRII  YRLGRII  7KLVPHWKRGVHWVWKHEHDWVSHU  PLQXWH$IWHULWLVFDOOHGWKHEHDW YRLGVHW%30 LQWESP  IUHTXHQF\FKDQJHVLPPHGLDWHO\  LQWJHW%30  7KHJHW%30 PHWKRGUHWXUQV  WKHFXUUHQW%30VRULI YRLGUHJLVWHU2EVHUYHU %HDW2EVHUYHUR  WKHJHQHUDWRULVRII  YRLGUHPRYH2EVHUYHU %HDW2EVHUYHUR   YRLGUHJLVWHU2EVHUYHU %302EVHUYHUR   YRLGUHPRYH2EVHUYHU %302EVHUYHUR  `

7KLVVKRXOGORRN IDPLOLDUWKHVH PHWKRGVDOORZ REMHFWVWRUHJLVWHU DVREVHUYHUVIRU VWDWHFKDQJHV

:H·YHVSOLWWKLVLQWRWZRNLQGVRI REVHUYHUVREVHUYHUVWKDWZDQWWREH QRWLILHGRQHYHU\EHDWDQGREVHUYHUV WKDWMXVWZDQWWREHQRWLILHGZLWK WKHEHDWVSHUPLQXWHFKDQJH

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 40

WKHEHDWPRGHO

6W_TM\¼[PI^MITWWSI\\PMKWVKZM\M*MI\5WLMTKTI[[" :HLPSOHPHQWWKH%HDW0RGH,,QWHUIDFH

7KLVLVQHHGHGIRU WKH0,',FRGH

SXEOLFFODVV%HDW0RGHOLPSOHPHQWV%HDW0RGHO,QWHUIDFH0HWD(YHQW/LVWHQHU^ 6HTXHQFHUVHTXHQFHU 7KHVHTXHQFHULVWKHREMHFWWKDWNQRZVKRZWR $UUD\/LVWEHDW2EVHUYHUV QHZ$UUD\/LVW  JHQHUDWHUHDOEHDWV WKDW\RXFDQKHDU  $UUD\/LVWESP2EVHUYHUV QHZ$UUD\/LVW  LQWESP  7KHVH$UUD\/LVWVKROGWKHWZRNLQGVRI RWKHULQVWDQFHYDULDEOHVKHUH REVHUYHUV %HDWDQG%30REVHUYHUV   SXEOLFYRLGLQLWLDOL]H ^ 7KLVPHWKRGGRHV 7KHESPLQVWDQFHYDULDEOHKROGVWKHIUHTXHQF\ VHW8S0LGL  VHWXSRQWKHVHTXHQFHU RIEHDWVE\GHIDXOW%30 EXLOG7UDFN$QG6WDUW  DQGVHWVXSWKHEHDW `  WUDFNVIRUXV SXEOLFYRLGRQ ^ VHTXHQFHUVWDUW  7KHRQ PHWKRGVWDUWVWKHVHTXHQFHUDQG VHW%30   VHWVWKH%30VWRWKHGHIDXOW%30 `  SXEOLFYRLGRII ^ $QGRII VKXWVLWGRZQE\VHWWLQJ%30VWR VHW%30   DQGVWRSSLQJWKHVHTXHQFHU VHTXHQFHUVWRS  ` 7KHVHW%30 PHWKRGLVWKHZD\WKHFRQWUROOHU  PDQLSXODWHVWKHEHDW,WGRHVWKUHHWKLQJV SXEOLFYRLGVHW%30 LQWESP ^ WKLVESP ESP  6HWVWKHESPLQVWDQFHYDULDEOH VHTXHQFHUVHW7HPSR,Q%30 JHW%30  QRWLI\%302EVHUYHUV   $VNVWKHVHTXHQFHUWRFKDQJHLWV%30V `  1RWLILHVDOO%302EVHUYHUVWKDWWKH%30  KDVFKDQJHG SXEOLFLQWJHW%30 ^ UHWXUQESP FHYDULDEOHZKLFK ` 7KHJHW%30 PHWKRGMXVWUHWXUQVWKHESPLQVWDQ  LQGLFDWHVWKHFXUUHQWEHDWVSHUPLQXWH YRLGEHDW(YHQW ^ O,QWHUIDFHLV QRWLI\%HDW2EVHUYHUV  7KHEHDW(YHQW PHWKRGZKLFKLVQRWLQWKH%HDW0RGH LVPHWKRG WV7K WVWDU HZEHD HUDQ ` FDOOHGE\WKH0,',FRGHZKHQHY XUUHG  QRWLILHVDOO%HDW2EVHUYHUVWKDWDQHZEHDWKDVMXVWRFF  &RGHWRUHJLVWHUDQGQRWLI\REVHUYHUV  /RWVRI0,',FRGHWRKDQGOHWKHEHDW `

5HDG\EDNH&RGH 4HISMODELUSES*AVAS-)$)SUPPORTTOGENERATEBEATS9OUCANCHECKOUTTHE COMPLETEIMPLEMENTATIONOFALLTHE$*CLASSESINTHE*AVASOURCEFILESAVAILABLE ONTHEWICKEDLYSMARTCOMSITE ORLOOKATTHECODEATTHEENDOFTHECHAPTER



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 41

FRPSRXQGSDWWHUQV

QM_ 6W_\PMN]V[\IZ\[#_MOM\\WPWWS]XI^QM_IVL^Q[]ITQbM\PM*MI\5WLMT
:H·YHVHSDUDWHG WKHYLHZRIWKH PRGHOIURPWKH YLHZZLWKWKH FRQWUROV 7KH'-YLHZ GLVSOD\VWZR DVSHFWVRIWKH %HDW0RGHO WKHFXUUHQWEHDWV SHUPLQXWHIURP WKH%302EVHUYHU QRWLILFDWLRQV

DQGDSXOVLQJ´EHDW EDUµSXOVHVLQV\QFK ZLWKWKHEHDWGULYHQ E\WKH%HDW2EVHUYHU QRWLILFDWLRQV

7KLVLVWKHSD WKDW\RXXVHWUWRIWKHYLHZ 7KLVYLHZSDV RFKDQJHWKHEHDW GRRQWRWKH VHVHYHU\WKLQJ\RX FRQWUROOHU

YiX`e gfn\i 2XU%HDW0RGHOPDNHVQRDVVXPSWLRQVDERXWWKHYLHZ7KHPRGHOLVLPSOHPHQWHGXVLQJWKH 2EVHUYHU3DWWHUQVRLWMXVWQRWL¿HVDQ\YLHZUHJLVWHUHGDVDQREVHUYHUZKHQLWVVWDWHFKDQJHV7KH YLHZXVHVWKHPRGHO¶V$3,WRJHWDFFHVVWRWKHVWDWH:H¶YHLPSOHPHQWHGRQHW\SHRIYLHZFDQ\RX WKLQNRIRWKHUYLHZVWKDWFRXOGPDNHXVHRIWKHQRWL¿FDWLRQVDQGVWDWHLQWKH%HDW0RGHO"

$OLJKWVKRZWKDWLVEDVHGRQWKHUHDOWLPHEHDW $WH[WXDOYLHZWKDWGLVSOD\VDPXVLFJHQUHEDVHGRQWKH%30 DPELHQWGRZQEHDWWHFKQRHWF 

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 42

WKHGMYLHZ

1UXTMUMV\QVO\PM>QM_
:DWFKLW

ZR 7KHFRGHRQWKHVHW QH SDJHVLVMXVWDQRXWOL

VSOLW21( :KDWZH¶YHGRQHKHUHLV RXRQHSDUW FODVVLQWR7:2VKRZLQJ\ QGWKHRWKHU RIWKHYLHZRQWKLVSDJHD VFRGHLV SDUWRQWKHQH[WSDJH$OOWKL ZMDYD,W¶V UHDOO\LQ21(FODVV'-9LH FKDSWHU DOOOLVWHGDWWKHEDFNRIWKH

V '-9LHZLVDQREVHUYHUIRUERWKUHDOWLPHEHDWVDQG%30FKDQJH SXEOLFFODVV'-9LHZLPSOHPHQWV$FWLRQ/LVWHQHU%HDW2EVHUYHU%302EVHUYHU^ %HDW0RGHO,QWHUIDFHPRGHO 7KHYLHZKROGVDUHIHUHQFHWRERWKWKHPRGHODQG &RQWUROOHU,QWHUIDFHFRQWUROOHU WKHFRQWUROOHU7KHFRQWUROOHULVRQO\XVHGE\WKH -)UDPHYLHZ)UDPH -3DQHOYLHZ3DQHO FRQWUROLQWHUIDFHZKLFKZH·OOJRRYHULQDVHF +HU HZ HFUHDWHDIHZ %HDW%DUEHDW%DU FRPSRQHQWVIRUWKHGLVSOD\ -/DEHOESP2XWSXW/DEHO   SXEOLF'-9LHZ &RQWUROOHU,QWHUIDFHFRQWUROOHU%HDW0RGHO,QWHUIDFHPRGHO ^ WKLVFRQWUROOHU FRQWUROOHU 7KHFRQVWUXFWRUJHWVDUHIHUHQFH WKLVPRGHO PRGHO WRWKHFRQWUROOHUDQGWKHPRGHO PRGHOUHJLVWHU2EVHUYHU %HDW2EVHUYHU WKLV  DQGZHVWRUHUHIHUHQFHVWRWKRVHLQ PRGHOUHJLVWHU2EVHUYHU %302EVHUYHU WKLV  ` WKHLQVWDQFHYDULDEOHV  :HDOVRUHJLVWHUDVD%HDW2EVHUYHUDQGD SXEOLFYRLGFUHDWH9LHZ ^ &UHDWHDOO6ZLQJFRPSRQHQWVKHUH %302EVHUYHURIWKHPRGHO `  7KHXSGDWH%30 PHWKRGLVFDOOHGZKHQDVWDWHFKDQJH SXEOLFYRLGXSGDWH%30 ^ RFFXUVLQWKHPRGHO:KHQWKDWKDSSHQVZHXSGDWHWKH LQWESP PRGHOJHW%30  GLVSOD\ZLWKWKHFXUUHQW%30:HFDQJHWWKLVYDOXH LI ESP  ^ E\UHTXHVWLQJLWGLUHFWO\IURPWKHPRGHO ESP2XWSXW/DEHOVHW7H[W ³RIÀLQH´  `HOVH^ ESP2XWSXW/DEHOVHW7H[W ³&XUUHQW%30³PRGHOJHW%30  ` `  /LNHZLVHWKHXSGDWH%HDW PHWKRGLVFDOOHG SXEOLFYRLGXSGDWH%HDW ^ ZKHQWKHPRGHOVWDUWVDQHZEHDW:KHQWKDW EHDW%DUVHW9DOXH   KDSSHQVZHQHHGWRSXOVHRXU´EHDWEDUµ:H ` GRWKLVE\VHWWLQJLWWRLWVPD[LPXPYDOXH   `

DQGOHWWLQJLWKDQGOHWKHDQLPDWLRQRIWKHSXOVH



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 43

FRPSRXQGSDWWHUQV

1UXTMUMV\QVO\PM>QM_KWV\QV]ML 6W__M¼TTTWWSI\\PMKWLMNWZ\PM][MZQV\MZNIKMKWV\ZWT[XIZ\WN \PM^QM_
$OOWKHVHPHWKRGVDOORZWKHVWDUWDQG VWRSLWHPVLQWKHPHQXWREHHQDEOHGDQ GLVDEOHG:H·OOVHHWKDWWKHFRQWUROOHU G XVHV WKHVHWRFKDQJHWKHLQWHUIDFH

SXEOLFYRLGHQDEOH6WDUW0HQX,WHP ^ VWDUW0HQX,WHPVHW(QDEOHG WUXH  ` SXEOLFYRLGGLVDEOH6WDUW0HQX,WHP ^ VWDUW0HQX,WHPVHW(QDEOHG IDOVH  `

7KLVPHWKRGLVFDOOHGZKHQDEXWWRQLVFOLFNHG

SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ LI HYHQWJHW6RXUFH  VHW%30%XWWRQ ^ LQWESP ,QWHJHUSDUVH,QW ESP7H[W)LHOGJHW7H[W  FRQWUROOHUVHW%30 ESP  `HOVHLI HYHQWJHW6RXUFH  LQFUHDVH%30%XWWRQ ^ FRQWUROOHULQFUHDVH%30  `HOVHLI HYHQWJHW6RXUFH  GHFUHDVH%30%XWWRQ ^ FRQWUROOHUGHFUHDVH%30  ` ` `

,IWKH6HWEXWWRQLV FOLFNHGWKHQLWLVSDVVHG RQWRWKHFRQWUROOHUDORQJ ZLWKWKHQHZESP /LNHZLVHLIWKHLQFUHDVH RUGHFUHDVHEXWWRQVDUH FOLFNHGWKLVLQIRUPDWLRQLV SDVVHGRQWRWKHFRQWUROOHU

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 44

WKHGMFRQWUROOHU

6W_NWZ\PM+WV\ZWTTMZ 1\¼[\QUM\W_ZQ\M\PMUQ[[QVOXQMKM"\PMKWV\ZWTTMZ:MUMUJMZ\PMKWV\ZWTTMZQ[ \PM[\ZI\MOa\PI\_MXT]OQV\W\PM^QM_\WOQ^MQ\[WUM[UIZ\[ *MKI][M_MIZMQUXTMUMV\QVO\PM;\ZI\MOa8I\\MZV_MVMML\W[\IZ\_Q\PIV QV\MZNIKMNWZIVa;\ZI\MOa\PI\UQOP\JMXT]OOMLQV\W\PM,2>QM_?M¼ZMOWQVO \WKITTQ\+WV\ZWTTMZ1V\MZNIKM

SXEOLFLQWHUIDFH&RQWUROOHU,QWHUIDFH^ YRLGVWDUW  YRLGVWRS  YRLGLQFUHDVH%30  YRLGGHFUHDVH%30  YRLGVHW%30 LQWESP  `

+HUHDUHDOOWKH PHWKRGVWKHYLHZFDQ FDOORQWKHFRQWUROOHU 7KHVHVKRXOGORRNIDPLOLDUDIWHUVHHLQJWKHPRGHO·V LQWHUIDFH
'HVLJQ3X]]OH


&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 45

FRPSRXQGSDWWHUQV

)VLPMZM¼[\PMQUXTMUMV\I\QWVWN\PMKWV\ZWTTMZ" 7KHFRQWUROOHULPSOHPHQWV WKH&RQWUROOHU,QWHUIDFH SXEOLFFODVV%HDW&RQWUROOHULPSOHPHQWV&RQWUROOHU,QWHUIDFH^ %HDW0RGHO,QWHUIDFHPRGHO 7KHFRQWUROOHULVWKHFUHDP\VWXII '-9LHZYLHZ LQWKHPLGGOHRIWKH09&RUHR  FRRNLHVRLWLVWKHREMHFWWKDW SXEOLF%HDW&RQWUROOHU %HDW0RGHO,QWHUIDFHPRGHO ^ JHWVWRKROGRQWRWKHYLHZDQGWKH WKLVPRGHO PRGHO PRGHODQGJOXHVLWDOOWRJHWKHU YLHZ QHZ'-9LHZ WKLVPRGHO  YLHZFUHDWH9LHZ  7KHFRQWUROOHULVSDVVHGWKH YLHZFUHDWH&RQWUROV  PRGHOLQWKHFRQVWUXFWRUDQG YLHZGLVDEOH6WRS0HQX,WHP  WKHQFUHDWHVWKHYLHZ YLHZHQDEOH6WDUW0HQX,WHP  PRGHOLQLWLDOL]H  ` XVHU  :KHQ\RXFKRRVH6WDUWIURPWKH QVWKH SXEOLFYRLGVWDUW ^ LQWHUIDFHPHQXWKHFRQWUROOHUWXULQWHUIDFH PRGHORQ  PRGHORQDQGWKHQDOWHUVWKHXVHU DEOHGDQG YLHZGLVDEOH6WDUW0HQX,WHP  VRWKDWWKHVWDUWPHQXLWHPLVGLV YLHZHQDEOH6WRS0HQX,WHP  WKHVWRSPHQXLWHPLVHQDEOHG `  SXEOLFYRLGVWRS ^ /LNHZLVHZKHQ\RXFKRRVH6WRSIURPWKH PRGHORII  PHQXWKHFRQWUROOHUWXUQVWKHPRGHORII YLHZGLVDEOH6WRS0HQX,WHP  DQGDOWHUVWKHXVHULQWHUIDFHVRWKDW YLHZHQDEOH6WDUW0HQX,WHP  WKHVWRSPHQXLWHPLVGLVDEOHGDQGWKH ` VWDUWPHQXLWHPLVHQDEOHG  SXEOLFYRLGLQFUHDVH%30 ^ LQWESP PRGHOJHW%30  PRGHOVHW%30 ESP  ,IWKHLQFUHDVHEXWWRQLVFOLFNHGWKH 127(WKHFRQWUROOHULV ` FRQWUROOHUJHWVWKHFXUUHQW%30  PDNLQJWKHLQWHOOLJHQW IURPWKHPRGHODGGVRQHDQGWKHQ SXEOLFYRLGGHFUHDVH%30 ^ GHFLVLRQVIRUWKHYLHZ %30 VHWVDQHZ LQWESP PRGHOJHW%30  7KHYLHZMXVWNQRZVKRZ PRGHOVHW%30 ESP  WRWXUQPHQXLWHPVRQ ` 6DPHWKLQJKHUHRQO\ZHVXEWUDFW DQGRIILWGRHVQ·WNQRZ  RQHIURPWKHFXUUHQW%30 WKHVLWXDWLRQVLQZKLFKLW SXEOLFYRLGVHW%30 LQWESP ^ VKRXOGGLVDEOHWKHP PRGHOVHW%30 ESP  ` )LQDOO\LIWKHXVHULQWHUIDFHLVXVHGWR `

VHWDQDUELWUDU\%30WKHFRQWUROOHU LQVWUXFWVWKHPRGHOWRVHWLWV%30

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 46

SXWWLQJLWDOOWRJHWKHU

8]\\QVOQ\ITT\WOM\PMZ ?M¼^MOW\M^MZa\PQVO_MVMML"IUWLMTI^QM_IVLIKWV\ZWTTMZ 6W_Q\¼[\QUM\WX]\\PMUITT\WOM\PMZQV\WI5>+ ?M¼ZMOWQVO\W [MMIVLPMIZPW__MTT\PMa_WZS\WOM\PMZ )TT_MVMMLQ[ITQ\\TMKWLM\WOM\\PQVO[[\IZ\ML#Q\_WV¼\\ISMU]KP"

SXEOLFFODVV'-7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ )LUVWFUHDWHDPRGHO %HDW0RGHO,QWHUIDFHPRGHO QHZ%HDW0RGHO   &RQWUROOHU,QWHUIDFHFRQWUROOHU QHZ%HDW&RQWUROOHU PRGHO  ` `

WKHQFUHDWHDFRQWUROOHUDQG SDVVLWWKHPRGHO5HPHPEHUWKH FRQWUROOHUFUHDWHVWKHYLHZVRZH GRQ·WKDYHWRGRWKDW

)VLVW_NWZI\M[\Z]V )LOH(GLW:LQGRZ+HOS/HW7KH%DVV.LFN

MDYD'-7HVW'ULYH 

5XQWKLV

DQG\RX·OOVHHWKLV


6WDUWWKHEHDWJHQHUDWLRQZLWKWKH6WDUWPHQXLWHP QRWLFHWKHFRQWUROOHUGLVDEOHVWKHLWHPDIWHUZDUGV



8VHWKHWH[WHQWU\DORQJZLWKWKHLQFUHDVHDQGGHFUHDVH EXWWRQVWRFKDQJHWKH%301RWLFHKRZWKHYLHZ GLVSOD\UHÁHFWVWKHFKDQJHVGHVSLWHWKHIDFWWKDWLWKDV QRORJLFDOOLQNWRWKHFRQWUROV



1RWLFHKRZWKHEHDWEDUDOZD\VNHHSVXSZLWKWKHEHDW VLQFHLW·VDQREVHUYHURIWKHPRGHO



3XWRQ\RXUIDYRULWHVRQJDQGVHHLI\RXFDQEHDWPDWFK WKHEHDWE\XVLQJWKHLQFUHDVHDQGGHFUHDVHFRQWUROV



6WRSWKHJHQHUDWRU1RWLFHKRZWKHFRQWUROOHUGLVDEOHV WKH6WRSPHQXLWHPDQGHQDEOHVWKH6WDUWPHQXLWHP



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 47

FRPSRXQGSDWWHUQV

-`XTWZQVO;\ZI\MOa 4M\¼[\ISM\PM;\ZI\MOa8I\\MZVR][\ITQ\\TMN]Z\PMZ\WOM\IJM\\MZ NMMTNWZPW_Q\Q[][MLQV5>+?M¼ZMOWQVO\W[MMIVW\PMZ NZQMVLTaXI\\MZVXWX]X\WW·IXI\\MZVaW]¼TTWN\MV[MMPIVOQVO IZW]VL\PM5>+\ZQW"\PM)LIX\MZ8I\\MZV QM_LWM["Q\LQ[XTIa[ IJMI\ZI\MIVLIX]T[M,WM[\PI\[W]VLTQSM[WUM\PQVOMT[M' 0W_IJW]\IPMIZ\JMI\'1\R][\[WPIXXMV[_MPIXXMV\WPI^MI PMIZ\UWVQ\WZKTI[[#PMZM¼[\PMKTI[[LQIOZIU"

+HDUW0RGHO JHW+HDUW5DWH

WLQJ

RUJHW :H·YHJRWDPHWKRGI H WKHFXUUHQWKHDUWUDW

UHJLVWHU%HDW2EVHUYHU UHJLVWHU%302EVHUYHU RWKHUKHDUWPHWKRGV

$QGOXFNLO\LWVGHYHORSHUVNQHZDERXW WKH%HDWDQG%302EVHUYHULQWHUIDFHV

YiX`e gfn\i ,WFHUWDLQO\ZRXOGEHQLFHWRUHXVHRXUFXUUHQWYLHZZLWKWKH+HDUW0RGHOEXWZHQHHGDFRQWUROOHUWKDW ZRUNVZLWKWKLVPRGHO$OVRWKHLQWHUIDFHRIWKH+HDW0RGHOGRHVQ¶WPDWFKZKDWWKHYLHZH[SHFWV EHFDXVHLWKDVDJHW+HDUW5DWH PHWKRGUDWKHUWKDQDJHW%30 +RZZRXOG\RXGHVLJQDVHWRI FODVVHVWRDOORZWKHYLHZWREHUHXVHGZLWKWKHQHZPRGHO"

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 48

PYFDQGDGDSWHU

)LIX\QVO\PM5WLMT .WZ[\IZ\MZ[_M¼ZMOWQVO\WVMML\WILIX\\PM0MIZ\5WLMT\WI*MI\5WLMT1N _MLWV¼\\PM^QM_ _WV¼\JMIJTM\W_WZS_Q\P\PMUWLMTJMKI][M\PM^QM_WVTaSVW_[PW_\WOM\*85IVL\PM MY]Q^ITMV\PMIZ\UWLMTUM\PWLQ[OM\0MIZ\:I\M0W_IZM_MOWQVO\WLW\PQ['?M¼ZMOWQVO\W ][M\PM)LIX\MZ8I\\MZVWN KW]Z[M 1\\]ZV[W]\\PI\\PQ[Q[IKWUUWV\MKPVQY]M_PMV_WZSQVO _Q\P\PM5>+"][MIVILIX\MZ\WILIX\IUWLMT\W_WZS_Q\PM`Q[\QVOKWV\ZWTTMZ[IVL^QM_[ 0MZM¼[\PMKWLM\WILIX\I0MIZ\5WLMT\WI*MI\5WLMT"

:HQHHGWRLPSOHPHQWWKH WDUJHWLQWHUIDFHLQWKLV FDVH%HDW0RGHO,QWHUIDFH SXEOLFFODVV+HDUW$GDSWHULPSOHPHQWV%HDW0RGHO,QWHUIDFH^ +HDUW0RGHO,QWHUIDFHKHDUW  SXEOLF+HDUW$GDSWHU +HDUW0RGHO,QWHUIDFHKHDUW ^ +HUHZHVWRUHDUHIHUHQFH WKLVKHDUW KHDUW WRWKHKHDUWPRGHO ` SXEOLFYRLGLQLWLDOL]H ^`  :HGRQ·WNQRZZKDWWKHVHZRXOGGR SXEOLFYRLGRQ ^` WRDKHDUWEXWLWVRXQGVVFDU\6R  SXEOLFYRLGRII ^` ZH·OOMXVWOHDYHWKHPDV´QRRSVµ  SXEOLFLQWJHW%30 ^ :KHQJHW%30 LVFDOOHGZH·OOMXVW UHWXUQKHDUWJHW+HDUW5DWH  WUDQVODWHLWWRDJHW+HDUW5DWH FDOO ` RQWKHKHDUWPRGHO  SXEOLFYRLGVHW%30 LQWESP ^`  :HGRQ·WZDQWWRGRWKLVRQDKHDUW SXEOLFYRLGUHJLVWHU2EVHUYHU %HDW2EVHUYHUR ^ $JDLQOHW·VOHDYHLWDVD´QRRSµ KHDUWUHJLVWHU2EVHUYHU R  `  SXEOLFYRLGUHPRYH2EVHUYHU %HDW2EVHUYHUR ^ +HUHDUHRXUREVHUYHUPHWKRGV KHDUWUHPRYH2EVHUYHU R  :HMXVWGHOHJDWHWKHPWRWKH ` KHDUWPRGHO ZUDSSHG  SXEOLFYRLGUHJLVWHU2EVHUYHU %302EVHUYHUR ^ KHDUWUHJLVWHU2EVHUYHU R  `  SXEOLFYRLGUHPRYH2EVHUYHU %302EVHUYHUR ^ KHDUWUHPRYH2EVHUYHU R  ` `



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 49

FRPSRXQGSDWWHUQV

6W__M¼ZMZMILaNWZI0MIZ\+WV\ZWTTMZ ?Q\PW]Z0MIZ\)LIX\MZQVPIVL_M[PW]TLJMZMILa\WKZMI\MIKWV\ZWTTMZIVLOM\\PM ^QM_Z]VVQVO_Q\P\PM0MIZ\5WLMT
7KH+HDUW&RQWUROOHULPSOHPHQWV WKH&RQWUROOHU,QWHUIDFHMXVW OLNHWKH%HDW&RQWUROOHUGLG

SXEOLFFODVV+HDUW&RQWUROOHULPSOHPHQWV&RQWUROOHU,QWHUIDFH^ +HDUW0RGHO,QWHUIDFHPRGHO '-9LHZYLHZ  /LNHEHIRUHWKHFRQWUROOHU SXEOLF+HDUW&RQWUROOHU +HDUW0RGHO,QWHUIDFHPRGHO ^ FUHDWHVWKHYLHZDQGJHWV WKLVPRGHO PRGHO HYHU\WKLQJJOXHGWRJHWKHU YLHZ QHZ'-9LHZ WKLVQHZ+HDUW$GDSWHU PRGHO  YLHZFUHDWH9LHZ  YLHZFUHDWH&RQWUROV  YLHZGLVDEOH6WRS0HQX,WHP  7KHUHLVRQHFKDQJHZHDUHSDVVHGD YLHZGLVDEOH6WDUW0HQX,WHP  +HDUW0RGHOQRWD%HDW0RGHO `  DQGZHQHHGWRZUDSWKDW SXEOLFYRLGVWDUW ^` PRGHOZLWKDQDGDSWHUEHIRUH  ZHKDQGLWWRWKHYLHZ SXEOLFYRLGVWRS ^`  )LQDOO\WKH+HDUW&RQWUROOHUGLVDEOHVWKH SXEOLFYRLGLQFUHDVH%30 ^` PHQXLWHPVDVWKH\DUHQ·WQHHGHG  SXEOLFYRLGGHFUHDVH%30 ^` 7KHUH·VQRWDORWWRGRKHUH  DIWHUDOOZHFDQ·WUHDOO\FRQWURO SXEOLFYRLGVHW%30 LQWESP ^` KHDUWVOLNHZHFDQEHDWPDFKLQHV `

)VL\PI\¼[Q\ 6W_Q\¼[\QUMNWZ[WUM\M[\KWLM SXEOLFFODVV+HDUW7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ +HDUW0RGHOKHDUW0RGHO QHZ+HDUW0RGHO  &RQWUROOHU,QWHUIDFHPRGHO QHZ+HDUW&RQWUROOHU KHDUW0RGHO  ` `

$OOZHQHHGWRGRLVFUHDWH WKHFRQWUROOHUDQGSDVVLWD KHDUWPRQLWRU \RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 50

WHVWWKHKHDUWPRGHO

)VLVW_NWZI\M[\Z]V

)LOH(GLW:LQGRZ+HOS&KHFN0\3XOVH

MDYD+HDUW7HVW'ULYH 

5XQWKLV

DQG\RX·OOVHHWKLV


1RWLFHWKDWWKHGLVSOD\ZRUNVJUHDWZLWKDKHDUW 7KHEHDWEDUORRNVMXVWOLNHDSXOVH%HFDXVHWKH +HDUW0RGHODOVRVXSSRUWV%30DQG%HDW2EVHUYHUVZH FDQJHWEHDWXSGDWHVMXVWOLNHZLWKWKH'-EHDWV



$VWKHKHDUWEHDWKDVQDWXUDOYDULDWLRQQRWLFHWKH GLVSOD\LVXSGDWHGZLWKWKHQHZEHDWVSHUPLQXWH



(DFKWLPHZHJHWD%30XSGDWHWKHDGDSWHULVGRLQJ LWVMRERIWUDQVODWLQJJHW%30 FDOOVWRJHW+HDUW5DWH  FDOOV



7KH6WDUWDQG6WRSPHQXLWHPVDUHQRWHQDEOHG EHFDXVHWKHFRQWUROOHUGLVDEOHGWKHP



7KHRWKHUEXWWRQVVWLOOZRUNEXWKDYHQRHIIHFW EHFDXVHWKHFRQWUROOHULPSOHPHQWVQRRSVIRUWKHP 7KHYLHZFRXOGEHFKDQJHGWRVXSSRUWWKHGLVDEOLQJRI WKHVHLWHPV



1LFHKHDOWK\ KHDUWUDWH

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 51

FRPSRXQGSDWWHUQV

5>+I VL\PM?MJ 1\_I[V¼\TWVOIN\MZ\PM?MJ_I[[X]V\PI\LM^MTWXMZ[[\IZ\MLILIX\QVO\PM5>+\WÅ\\PM JZW_[MZ[MZ^MZUWLMT


W



HV

DW WL

VHUYOHWFRQWUROOHU

DQ

VW

LQ

TXHV

3UH +77



'%



:HE EURZVHU

+773UHVS RQ

VH



KWPO! ERG\! 5HIDFWRU  QHZ)RR ! PRUHKHUH! PRUHKHUH ERG\! KWPO!



EHDQ

MVSYLHZ

&OLHQW

PRGHO'% EXVLQHVVORJLF






7KHVHUYOHWDFWVDVWKHFRQWUROOHU 7KHVHUYOHWSOD\VWKHUROHRIWKHFRQWUROOHUDQGSURFHVVHV\RXUUHTXHVW PRVWOLNHO\PDNLQJUHTXHVWVRQWKHPRGHO XVXDOO\DGDWDEDVH 7KHUHVXOW RISURFHVVLQJWKHUHTXHVWLVXVXDOO\EXQGOHGXSLQWKHIRUPRID-DYD%HDQ



7KHFRQWUROOHUIRUZDUGVFRQWUROWRWKHYLHZ 7KH9LHZLVUHSUHVHQWHGE\D-637KH-63·VRQO\MRELVWRJHQHUDWH WKHSDJHUHSUHVHQWLQJWKHYLHZRIPRGHO ZKLFKLWREWDLQVYLDWKH  -DYD%HDQ DORQJZLWKDQ\FRQWUROVQHHGHGIRUIXUWKHUDFWLRQV



7KHYLHZUHWXUQVDSDJHWRWKHEURZVHUYLD+773 $SDJHLVUHWXUQHGWRWKHEURZVHUZKHUHLWLVGLVSOD\HGDVWKHYLHZ7KH XVHUVXEPLWVIXUWKHUUHTXHVWVZKLFKDUHSURFHVVHGLQWKHVDPHIDVKLRQ

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 52

PRGHO


0RGHOLVPRUHWKDQMXVW DFOHDQGHVLJQ
IRUPHU'27&20·HU

4]KSQTa5WLMTKIUM\W\PMZM[K]M ?Q\P5WLMT_MKIVTMI^M\PMLM^MTWXMZ RWJ[\W\PMO]a[OQZT[_PWSVW_\PMQZ ;MZ^TM\[IVLTM\\PM_MJXZWL]KMZ[TWW[M WV[QUXTM5WLMT[\aTM2;8[_PMZMITT \PMXZWL]KMZ[PI^MIKKM[[\WQ[0<54 IVL[QUXTM2I^I*MIV[



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 53

FRPSRXQGSDWWHUQV

5WLMT",2¼QVONZWUIKMTTXPWVM AW]LQLV¼\\PQVS_M¼L\Za\W[SQXW]\_Q\PW]\UW^QVO\PI\ OZMI\*MI\5WLMTW^MZ\W\PM?MJLQLaW]'2][\\PQVSaW]KIV KWV\ZWTaW]ZMV\QZM,2[M[[QWV\PZW]OPI_MJXIOMWVaW]Z KMTT]TIZXPWVM;WVW_aW]KIVOM\W]\WN \PI\,2JWW\PIVL OM\LW_VQV\PMKZW_L?PI\IZMaW]_IQ\QVONWZ'4M\¼[_ZQ\M \PI\KWLM


)L[XSWKHPRGHO :HOODFWXDOO\ZHGRQ·WKDYHWRÀ[WKHPRGHOLW·VÀQHMXVW OLNHLWLV



&UHDWHDVHUYOHWFRQWUROOHU :HQHHGDVLPSOHVHUYOHWWKDWFDQUHFHLYHRXU+773 UHTXHVWVDQGSHUIRUPDIHZRSHUDWLRQVRQWKHPRGHO$OOLW QHHGVWRGRLVVWRSVWDUWDQGFKDQJHWKHEHDWVSHUPLQXWH



&UHDWHD+70/YLHZ :H·OOFUHDWHDVLPSOHYLHZZLWKD-63,W·VJRLQJWRUHFHLYH D-DYD%HDQIURPWKHFRQWUROOHUWKDWZLOOWHOOLWHYHU\WKLQJ LWQHHGVWRGLVSOD\7KH-63ZLOOWKHQJHQHUDWHDQ+70/ LQWHUIDFH

*HHN%LWV ;M\\QVO]XaW]Z;MZ ^TM\MV^QZWVUMV\ 6KRZLQJ\RXKRZWRVHWXS\RXUVHUYOHWHQYLURQPHQWLVDOLWWOHELWRII WRSLFIRUDERRNRQ'HVLJQ3DWWHUQVDWOHDVWLI\RXGRQ·WZDQWWKHERRN WRZHLJKPRUHWKDQ\RXGR )LUHXS\RXUZHEEURZVHUDQGKHDGVWUDLJKWWR KWWSMDNDUWDDSDFKHRUJWRPFDWIRUWKH$SDFKH-DNDUWD3URMHFW·V 7RPFDW6HUYOHW&RQWDLQHU
\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 54

PRGHOFRQWUROOHUVHUYOHW

;\MXWVM"\PMUWLMT :MUMUJMZ\PI\QV5>+\PMUWLMTLWM[V¼\SVW_IVa\PQVOIJW]\\PM^QM_[WZ KWV\ZWTTMZ[1VW\PMZ_WZL[Q\Q[\W\ITTaLMKW]XTML)TTQ\SVW_[Q[\PI\Q\UIaPI^M WJ[MZ^MZ[Q\VMML[\WVW\QNa
;\MX\ _W"\PMKWV\ZWTTMZ[MZ ^TM\ :MUMUJMZ\PM[MZ^TM\Q[OWQVO\WIK\I[W]ZKWV\ZWTTMZ#Q\_QTTZMKMQ^M?MJJZW_[MZ QVX]\QVI0<<8ZMY]M[\IVL\ZIV[TI\MQ\QV\WIK\QWV[\PI\KIVJMIXXTQML\W\PM UWLMT
:HH[WHQGWKH+WWS6HUYOHWFODVV VRWKDWZHFDQGRVHUYOHWNLQGVRI WKLQJVOLNHUHFHLYH+773UHTXHVWV +HUH·VWKHLQLWPHWKRG WKLVLVFDOOHGZKHQWKH VHUYOHWLVILUVWFUHDWHG

SXEOLFFODVV'-9LHZH[WHQGV+WWS6HUYOHW^  SXEOLFYRLGLQLW WKURZV6HUYOHW([FHSWLRQ^ %HDW0RGHOEHDW0RGHO QHZ%HDW0RGHO  EHDW0RGHOLQLWLDOL]H  JHW6HUYOHW&RQWH[W VHW$WWULEXWH ³EHDW0RGHO´EHDW0RGHO  :HILUVWFUHDWHD ` %HDW0RGHOREMHFW  GR3RVWPHWKRGKHUH DQGSODFHDUHIHUHQFHWR  LWLQWKHVHUYOHW·VFRQWH[W SXEOLFYRLGGR*HW +WWS6HUYOHW5HTXHVWUHTXHVW VRWKDWLW·VHDVLO\DFFHVVHG +WWS6HUYOHW5HVSRQVHUHVSRQVH WKURZV,2([FHSWLRQ6HUYOHW([FHSWLRQ ^ LPSOHPHQWDWLRQKHUH ` +HUH·VWKHGR*HW PHWKRG7KLVLVZKHUHWKHUHDOZRUN ` KDSSHQV:H·YHJRWLWVLPSOHPHQWDWLRQRQWK

HQH[WSDJH



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 55

FRPSRXQGSDWWHUQV

0MZM¼[\PMQUXTMUMV\I\QWVWN \PMLW/M\UM\PWLNZWU\PMXIOMJMNWZM"

)LUVWZHJUDEWKHPRGHOIURP

SXEOLFYRLGGR*HW +WWS6HUYOHW5HTXHVWUHTXHVW WKHVHUYOHWFRQWH[W:HFDQ·W +WWS6HUYOHW5HVSRQVHUHVSRQVH PDQLSXODWHWKHPRGHOZLWKRXWD WKURZV,2([FHSWLRQ6HUYOHW([FHSWLRQ UHIHUHQFHWRLW ^ %HDW0RGHOEHDW0RGHO   %HDW0RGHO JHW6HUYOHW&RQWH[W JHW$WWULEXWH ³EHDW0RGHO´  6WULQJESP UHTXHVWJHW3DUDPHWHU ³ESP´  LI ESP QXOO ^ 1H[WZHJUDEDOOWKH+773 ESP EHDW0RGHOJHW%30 ³´ FRPPDQGVSDUDPHWHUV `  ,IZHJHWDVHWFRPPDQGWKHQ 6WULQJVHW UHTXHVWJHW3DUDPHWHU ³VHW´  ZHJHWWKHYDOXHRIWKHVHW LI VHW QXOO ^ LQWESP1XPEHU  DQGWHOOWKHPRGHO ESP1XPEHU ,QWHJHUSDUVH,QW ESP  EHDW0RGHOVHW%30 ESP1XPEHU  `  6WULQJGHFUHDVH UHTXHVWJHW3DUDPHWHU ³GHFUHDVH´  LI GHFUHDVH QXOO ^ DVHZHJHWWKH EHDW0RGHOVHW%30 EHDW0RGHOJHW%30   7RLQFUHDVHRUGHFUHWKHPRGHODQG URP VI ` FXUUHQW%30 \RQH 6WULQJLQFUHDVH UHTXHVWJHW3DUDPHWHU ³LQFUHDVH´  DGMXVWXSRUGRZQE LI LQFUHDVH QXOO ^ EHDW0RGHOVHW%30 EHDW0RGHOJHW%30   ` 6WULQJRQ UHTXHVWJHW3DUDPHWHU ³RQ´  ,IZHJHWDQRQRURIIFRPPDQGZH LI RQ QXOO ^ EHDW0RGHOVWDUW  WHOOWKHPRGHOWRVWDUWRUVWRS ` 6WULQJRII UHTXHVWJHW3DUDPHWHU ³RII´  )LQDOO\RXUMREDVDFRQWUROOHU LI RII QXOO ^ EHDW0RGHOVWRS  LVGRQH$OOZHQHHGWRGRLV ` DVNWKHYLHZWRWDNHRYHUDQG  FUHDWHDQ+70/YLHZ UHTXHVWVHW$WWULEXWH ³EHDW0RGHO´EHDW0RGHO   )ROORZLQJWKH0RGHOGHILQLWLRQ 5HTXHVW'LVSDWFKHUGLVSDWFKHU  UHTXHVWJHW5HTXHVW'LVSDWFKHU ³MVS'-9LHZMVS´  ZHSDVVWKH-63DEHDQZLWKWKH GLVSDWFKHUIRUZDUG UHTXHVWUHVSRQVH  PRGHOVWDWHLQLW,QWKLVFDVHZH ` SDVVLWWKHDFWXDOPRGHOVLQFHLW

KDSSHQVWREHDEHDQ

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 56

PRGHOYLHZ

6W__MVMMLI^QM_ )TT_MVMMLQ[I^QM_IVL_M¼^MOW\W]ZJZW_[MZJI[MLJMI\OMVMZI\WZZMILa\WOW  1V5WLMT\PM^QM_Q[R][\I2;8)TT\PM2;8SVW_[IJW]\Q[\PMJMIVQ\ZMKMQ^M[ NZWU\PMKWV\ZWTTMZ1VW]ZKI[M\PI\JMIVQ[R][\\PMUWLMTIVL\PM2;8Q[WVTa OWQVO\W][MQ\[*85XZWXMZ\a\WM`\ZIK\\PMK]ZZMV\JMI\[XMZUQV]\M?Q\P\PI\ LI\IQVPIVLQ\KZMI\M[\PM^QM_IVLIT[W\PM][MZQV\MZNIKMKWV\ZWT[

+HUH·VRXUEHDQZKLFK WKHVHUYOHWSDVVHGXV

MVSXVH%HDQLG ´EHDW0RGHO´VFRSH ´UHTXHVW´FODVV ´KHDG¿UVWFRPELQHGGMYLHZ%HDW0RGHO´! KWPO! KHDG! WLWOH!'-9LHZWLWOH! KHDG! ERG\!

%HJLQQLQJRIWKH+70/

+HUHZHXVHWKHPRGHOEHDQWR H[WUDFWWKH%30SURSHUW\

K!'-9LHZK! %HDWVSHUPLQXWHV MVSJHW3URSHUW\QDPH ´EHDW0RGHO´SURSHUW\ ´%30´! EU! KU! EU! IRUPPHWKRG ´SRVW´DFWLRQ ´GMYLHZVHUYOHW'-9LHZ´! %30LQSXWW\SH WH[WQDPH ´ESP´ YDOXH ´MVSJHW3URSHUW\QDPH ´EHDW0RGHO´ SURSHUW\ ´%30´!´! QEVS LQSXWW\SH LQSXWW\SH LQSXWW\SH LQSXWW\SH LQSXWW\SH IRUP!

´VXEPLW´QDPH ´VXEPLW´QDPH ´VXEPLW´QDPH ´VXEPLW´QDPH ´VXEPLW´QDPH

´VHW´YDOXH ´VHW´!EU! ´GHFUHDVH´YDOXH ´´! ´LQFUHDVH´YDOXH ´!!´!EU! ´RQ´YDOXH ´RQ´! ´RII´YDOXH ´RII´!EU!

1RZZH JHQHUDWHWKH YLHZZKLFK SULQWVRXW WKHFXUUHQW EHDWVSHU PLQXWH

$QGKHUH·VWKHFRQWUROSDUW RIWKHYLHZ:HKDYHDWH[W HQWU\IRUHQWHULQJD%30 DORQJZLWKLQFUHDVHGHFUHDVH DQGRQRIIEXWWRQV

ERG\! KWPO!

$QGKHUH·VWKHHQG RIWKH+70/

127,&(WKDWMXVWOLNH09&LQ0RGHO WKHYLHZGRHVQ·WDOWHUWKHPRGHO WKDW·VWKH FRQWUROOHU·VMRE DOOLWGRHVLVXVHLWVVWDWH 

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 57

FRPSRXQGSDWWHUQV

8]\\QVO5WLMT\W\PM\M[\ 1\¼[\QUM\W[\IZ\aW]Z_MJJZW_[MZPQ\\PM,2>QM_;MZ^TM\IVLOQ^M \PM[a[\MUI[XQV



7KLVLVWKHYLHZ RIWKHPRGHO

 8VHUFOLFNVWKH RQEXWWRQ  5HTXHVWLVVHQWWR FRQWUROOHUYLD+773

+HUH·VWKHVHW HQ RIFRQWUROVZK \RXXVHWKHVH YLD WKH\JHWVHQW +773WRWKH OOHU VHUYOHWFRQWUR IRUSURFHVVLQJ

 %HDWLVWXUQHG RQDQGVHWDW GHIDXOW%30  9LHZLVUHWXUQHG YLD+773DQG GLVSOD\HG

 8VHUHQWHUVQHZ %30LQWH[WILHOG

 8VHUFOLFNV 6HWEXWWRQ

 +773UHTXHVW LVPDGH \RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 58

WKLQJVGRZLWKPRGHO

 &RQWUROOHU FKDQJHVPRGHOWR %30V

 9LHZUHWXUQV +70/UHIOHFWLQJ WKHFXUUHQWPRGHO






)LUVWKLWWKHZHESDJH\RX·OOVHHWKHEHDWVSHUPLQXWHDW*RDKHDGDQG FOLFNWKH´RQµEXWWRQ



1RZ\RXVKRXOGVHHWKHEHDWVSHUPLQXWHDWWKHGHIDXOWVHWWLQJ%30


(QWHUDVSHFLÀFEHDWVD\DQGFOLFNWKH´VHWµEXWWRQ7KHSDJHVKRXOG UHIUHVKZLWKDEHDWVSHUPLQXWHRI DQG\RXVKRXOGKHDUWKHEHDW LQFUHDVH 



1RZSOD\ZLWKWKHLQFUHDVHGHFUHDVHEXWWRQVWRDGMXVWWKHEHDWXSDQGGRZQ



7KLQNDERXWKRZHDFKVWHSRIWKHV\VWHPZRUNV7KH+70/LQWHUIDFHPDNHV DUHTXHVWWRWKHVHUYOHW WKHFRQWUROOHU WKHVHUYOHWSDUVHVWKHXVHULQSXWDQG WKHQPDNHVUHTXHVWVWRWKHPRGHO7KHVHUYOHWWKHQSDVVHVFRQWUROWRWKH -63 WKHYLHZ ZKLFKFUHDWHVWKH+70/YLHZWKDWLVUHWXUQHGDQGGLVSOD\HG

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 59

FRPSRXQGSDWWHUQV

,M[QOV8I\\MZV[IVL5WLMT )N\MZQUXTMUMV\QVO\PM,2+WV\ZWTNWZ\PM?MJ][QVO5WLMTaW]UQOP\JM_WVLMZQVO_PMZM\PMXI\\MZV[ _MV\?MPI^MI^QM_KZMI\MLQV0<54NZWUI2;8J]\\PM^QM_Q[VWTWVOMZITQ[\MVMZWN \PMUWLMT?MPI^M IKWV\ZWTTMZ\PI\¼[I[MZ^TM\\PI\ZMKMQ^M[0<<8ZMY]M[\[J]\IZM_M[\QTT][QVO\PM;\ZI\MOa8I\\MZV')VL_PI\ IJW]\+WUXW[Q\M'?MPI^MI^QM_\PI\Q[UILMNZWU0<54IVLLQ[XTIaMLQVI[MJJZW_[MZ1[\PI\[\QTT\PM +WUXW[Q\M8I\\MZV' 0RGHOLVDQDGDSWDWLRQRI09&WRWKH:HE

-^MV\PW]OP5WLMTLWM[V¼\TWWSM`IK\TaTQSM¹\M`\JWWSº5>+ITT\PMXIZ\[IZM[\QTT\PMZM#\PMa¼^MR][\JMMV ILIX\ML\WZMÆMK\\PMQLQW[aVKZI[QM[WN \PM_MJJZW_[MZUWLMT4M\¼[\ISMIVW\PMZTWWS

:HE EURZVHU

7J[MZ ^MZ 7KHYLHZLVQRORQJHUDQREVHUYHU RIWKHPRGHOLQWKHFODVVLF VHQVHWKDWLVLWGRHVQ·WUHJLVWHU ZLWKWKHPRGHOWRUHFHLYHVWDWH FKDQJHQRWLÀFDWLRQV +RZHYHUWKHYLHZGRHVUHFHLYH WKHHTXLYDOHQWRIQRWLÀFDWLRQV LQGLUHFWO\IURPWKHFRQWUROOHU ZKHQWKHPRGHOKDVEHHQ FKDQJHG7KHFRQWUROOHUHYHQ SDVVHVWKHYLHZDEHDQWKDW DOORZVWKHYLHZWRUHWULHYHWKH PRGHO·VVWDWH ,I\RXWKLQNDERXWWKHEURZVHU PRGHOWKHYLHZRQO\QHHGVDQ XSGDWHRIVWDWHLQIRUPDWLRQ ZKHQDQ+773UHVSRQVHLV UHWXUQHGWRWKHEURZVHU QRWLÀFDWLRQVDWDQ\RWKHUWLPH ZRXOGEHSRLQWOHVV2QO\ZKHQ DSDJHLVEHLQJFUHDWHGDQG UHWXUQHGGRHVLWPDNHVHQVHWR FUHDWHWKHYLHZDQGLQFRUSRUDWH WKHPRGHO·VVWDWH

+HUH·VDQHZSDJH WRGLVSOD\

8VHUKDVGRQH VRPHWKLQJ

EHDQ KWPO! ERG\! %30 MVSJHW3URSHUW\! PRUHKHUH ERG\! KWPO!

-63+70/ 9LHZ

HFHLYHV 7KHYLHZQRZU RPWKH IU V RQ WL FD QRWLIL DSDJH FRQWUROOHUZKHQ UWKDQ KH DW LVQHHGHGU FKDQJH RQHYHU\VWDWH LQWKHPRGHO

8SGDWH\RXUGLVSOD\ KHUH·VWKHQHZPRGHO VWDWH

&RQWUROOHU 2ND\,FKDQJHG P\VWDWH

DW0RG %H ON HO

&KDQJH\RXU VWDWH

SET"0- OFF

GET"0

-

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 60

PRGHOSDWWHUQV

;\ZI\MOa ,Q0RGHOWKH6WUDWHJ\ REMHFWLVVWLOOWKHFRQWUROOHU VHUYOHWKRZHYHULW·VQRW GLUHFWO\FRPSRVHGZLWKWKH YLHZLQWKHFODVVLFPDQQHU 7KDWVDLGLWLVDQREMHFWWKDW LPSOHPHQWVEHKDYLRUIRUWKH YLHZDQGZHFDQVZDSLWRXW IRUDQRWKHUFRQWUROOHULIZH ZDQWGLIIHUHQWEHKDYLRU

+WUXW[Q\M

:HE EURZVHU

/LNHRXU6ZLQJ*8,WKH YLHZLVXOWLPDWHO\PDGHXS RIDQHVWHGVHWRIJUDSKLFDO FRPSRQHQWV,QWKLVFDVH WKH\DUHUHQGHUHGE\D ZHEEURZVHUIURPDQ +70/GHVFULSWLRQKRZHYHU XQGHUQHDWKWKHUHLVDQ REMHFWV\VWHPWKDWPRVW OLNHO\IRUPVDFRPSRVLWH

+HUH·VDQHZSDJH WRGLVSOD\

8VHUKDVGRQH VRPHWKLQJ

7KHFRQWUROOHUVWLOO SURYLGHVWKHYLHZ EHKDYLRUHYHQLILW LVQ·WFRPSRVHGZLWK WKHYLHZXVLQJREMHFW FRPSRVLWLRQ

EHDQ KWPO! ERG\! %30 MVSJHW3URSHUW\! PRUHKHUH ERG\! KWPO!

-63+70/ 9LHZ

8SGDWH\RXUGLVSOD\ KHUH·VWKHQHZPRGHO VWDWH

&RQWUROOHU 2ND\,FKDQJHG P\VWDWH

DW0RG %H ON HO

&KDQJH\RXU VWDWH

SET"0- OFF

GET"0



-

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 61

FRPSRXQGSDWWHUQV

Q:

,WVHHPVOLNH\RXDUHUHDOO\KDQG ZDYLQJWKHIDFWWKDWWKH&RPSRVLWH 3DWWHUQLVUHDOO\LQ09&,VLWUHDOO\ WKHUH"

A:


Q:

'RHVWKHFRQWUROOHUHYHU LPSOHPHQWDQ\DSSOLFDWLRQORJLF"

A:

1RWKHFRQWUROOHULPSOHPHQWV EHKDYLRUIRUWKHYLHZ,WLVWKHVPDUWV WKDWWUDQVODWHVWKHDFWLRQVIURPWKHYLHZ WRDFWLRQVRQWKHPRGHO7KHPRGHO WDNHVWKRVHDFWLRQVDQGLPSOHPHQWVWKH DSSOLFDWLRQORJLFWRGHFLGHZKDWWRGRLQ UHVSRQVHWRWKRVHDFWLRQV7KHFRQWUROOHU PLJKWKDYHWRGRDOLWWOHZRUNWRGHWHUPLQH ZKDWPHWKRGFDOOVWRPDNHRQWKHPRGHO EXWWKDW·VQRWFRQVLGHUHGWKH´DSSOLFDWLRQ ORJLFµ7KHDSSOLFDWLRQORJLFLVWKHFRGHWKDW PDQDJHVDQGPDQLSXODWHV\RXUGDWDDQGLW OLYHVLQ\RXUPRGHO

Q:

,·YHDOZD\VIRXQGWKHZRUG ´PRGHOµKDUGWRZUDSP\KHDGDURXQG ,QRZJHWWKDWLW·VWKHJXWVRIWKH DSSOLFDWLRQEXWZK\ZDVVXFKDYDJXH KDUGWRXQGHUVWDQGZRUGXVHGWR GHVFULEHWKLVDVSHFWRIWKH09&"

there are no

Dumb Questions

A:

:KHQ09&ZDVQDPHGWKH\QHHGHG DZRUGWKDWEHJDQZLWKD´0µRURWKHUZLVH WKH\FRXOGQ·WKDYHFDOOHGLW09& %XWVHULRXVO\ZHDJUHHZLWK\RXHYHU\RQH VFUDWFKHVWKHLUKHDGDQGZRQGHUVZKDWD PRGHOLV%XWWKHQHYHU\RQHFRPHVWRWKH UHDOL]DWLRQWKDWWKH\FDQ·WWKLQNRIDEHWWHU ZRUGHLWKHU

Q:


A:

1RZHPHDQWKHJHQHUDOLGHDRI VWDWH%XWFHUWDLQO\VRPHPRGHOVGRXVHWKH 6WDWH3DWWHUQWRPDQDJHWKHLULQWHUQDOVWDWHV

Q:

,·YHVHHQGHVFULSWLRQVRIWKH09& ZKHUHWKHFRQWUROOHULVGHVFULEHGDVD ´PHGLDWRUµEHWZHHQWKHYLHZDQGWKH PRGHO,VWKHFRQWUROOHULPSOHPHQWLQJWKH 0HGLDWRU3DWWHUQ"

A:

:HKDYHQ·WFRYHUHGWKH0HGLDWRU 3DWWHUQ DOWKRXJK\RX·OOILQGDVXPPDU\RI WKHSDWWHUQLQWKHDSSHQGL[ VRZHZRQ·WJR LQWRWRRPXFKGHWDLOKHUHEXWWKHLQWHQWRI WKHPHGLDWRULVWRHQFDSVXODWHKRZREMHFWV LQWHUDFWDQGSURPRWHORRVHFRXSOLQJE\ NHHSLQJWZRREMHFWVIURPUHIHUULQJWRHDFK RWKHUH[SOLFLWO\6RWRVRPHGHJUHHWKH FRQWUROOHUFDQEHVHHQDVDPHGLDWRUVLQFH WKHYLHZQHYHUVHWVVWDWHGLUHFWO\RQWKH PRGHOEXWUDWKHUDOZD\VJRHVWKURXJKWKH FRQWUROOHU5HPHPEHUKRZHYHUWKDWWKH YLHZGRHVKDYHDUHIHUHQFHWRWKHPRGHOWR DFFHVVLWVVWDWH,IWKHFRQWUROOHUZHUHWUXO\D PHGLDWRUWKHYLHZZRXOGKDYHWRJRWKURXJK WKHFRQWUROOHUWRJHWWKHVWDWHRIWKHPRGHO DVZHOO

Q:

'RHVWKHYLHZDOZD\VKDYHWRDVN WKHPRGHOIRULWVVWDWH"&RXOGQ·WZHXVH WKHSXVKPRGHODQGVHQGWKHPRGHO·V VWDWHZLWKWKHXSGDWHQRWLILFDWLRQ"

A:


Q:

,I,KDYHPRUHWKDQRQHYLHZGR, DOZD\VQHHGPRUHWKDQRQHFRQWUROOHU"

A:

7\SLFDOO\\RXQHHGRQHFRQWUROOHU SHUYLHZDWUXQWLPHKRZHYHUWKHVDPH FRQWUROOHUFODVVFDQHDVLO\PDQDJHPDQ\ YLHZV

Q:

7KHYLHZLVQRWVXSSRVHGWR PDQLSXODWHWKHPRGHOKRZHYHU,QRWLFHG LQ\RXULPSOHPHQWDWLRQWKDWWKHYLHZKDV IXOODFFHVVWRWKHPHWKRGVWKDWFKDQJH WKHPRGHO·VVWDWH,VWKLVGDQJHURXV"

A:




Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 62

GHVLJQWRROER[


:MDD=LHGAFLK

ƒ 7KH0RGHO9LHZ&RQWUROOHU

V 223ULQFLSDUOHLHV

3DWWHUQ 09& LVDFRPSRXQG SDWWHUQFRQVLVWLQJRIWKH 2EVHUYHU6WUDWHJ\DQG &RPSRVLWHSDWWHUQV

22%DVLFV

ZKDWY (QFDSVXODWH KHULWDQFH VLWLRQRYHULQ SR )DYRUFRP RW LQWHUIDFHVQ 3URJUDPWR RQV WL WD HQ LPSOHP GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW EHWZHHQRE RUH[WHQVLRQ OGEHRSHQI &ODVVHVVKRX RUPRGLILFDWLRQ EXWFORVHGI 'RQRW EVWUDFWLRQV 'HSHQGRQD QFUHWHFODVVHV GHSHQGRQFR V \RXUIULHQG 2QO\WDONWR RX VZH·OOFDOO\ 'RQ·WFDOOX RQHUHDVRQ GKDYHRQO\ $FODVVVKRXO WRFKDQJH

ƒ 7KHPRGHOPDNHVXVHRIWKH

$EVWUDFWLRQ RQ (QFDSVXODWL P LV 3RO\PRUSK H ,QKHULWDQF

2EVHUYHU3DWWHUQVRWKDWLWFDQ NHHSREVHUYHUVXSGDWHG\HW VWD\GHFRXSOHGIURPWKHP

ƒ 7KHFRQWUROOHULVWKHVWUDWHJ\ IRUWKHYLHZ7KHYLHZFDQXVH GLIIHUHQWLPSOHPHQWDWLRQVRI WKHFRQWUROOHUWRJHWGLIIHUHQW EHKDYLRU

ƒ 7KHYLHZXVHVWKH&RPSRVLWH 3DWWHUQWRLPSOHPHQWWKH XVHULQWHUIDFHZKLFKXVXDOO\ FRQVLVWVRIQHVWHGFRPSRQHQWV OLNHSDQHOVIUDPHVDQG EXWWRQV

ƒ 7KHVHSDWWHUQVZRUNWRJHWKHU

223DWWHUQDVIDPVLO\DR\RQIHDOGL'3JRWRURWLHIULRQWKYLLQPGHDOPVHDQDDQ\Q W

HV QHWW DV HV K W TX GUDSKMHHHVVXDGFWWODDODDP GH HVU UH D$FW RQ KQVPQFRDFREDS W P  ULWV TX KD DDP VHV HV KH UH W HW O\W I IL DV TXO\ D VR DOWH EX FOWH R D W UH VXU RWH LFDOR URQ) VH \REDLQ0 URDGHDDUUWHIFW WJD WH FW LOLVURDV 6WUD VFW MH XUDN \Q QG 2'$E)WHHF WHQ EDJ\VW MH RE G RLQURUYH FW (HD (QF Q V RE D LQW UR QH QJ VXQJ QF DVFW QVX KP  R SR  WLD MHODI DS Z LWOED D Q O G HH FK HD RE Z QJHV RU HW WL  LW GH X R ( Q OJ FU V YL  OOR KD OR D HU P X \R U OH XW DO $ WH F  J F\ FU  W J KH  P J H \R KR 3 WR IR XOD S D U HQ WH   WW W W LQ G WH LW V J R D H SV H WUDWHJ 6 WVHE GH & D WD QG IR Z LH LQ FW G W W WD DF \ OH F YL V V H SH D OH MH VV V OLW $ D HQFDGH [ WW \ DO UR UI W DF FW OD R \ EL  HV OH RE ) 6 S UQ U VL WH MH OH F \ UI HE QJ U LQ 3 LE WH QG RQ RE FK WK HU KH WH KD WWV LQ   VS D H[ KL W LQ 6 F HU RW V Z LW IO UHUFKDRQQJRQ FH HQ G H LW FW WK DQ H VH HQ D EO DQ  FW HG WH MH Q X LG U H HU HQ HD LW VW MH FW HS DW RE KH GD HF LG IR LQ HU H QJ II MH RE H WK G XS Z G K U RY H  D V QJ GL GL II V Q RE RU LW HV WV  VH GL[W KDOHHQ QW GQRUYLHK VWOVVRO\SUGHWR DV KHFG ODRU LQWHZ'KH KD ZH WH FRQ LWFORU WR DVEH EF VLWHD ODDVRU ZU KR DF DW LIW VDQ UH QW SOVXD HWG WVVFOLOO IUL] W I LHOLH LRP RW QW H OHHFQ SS 0 QJ LHLHFU VLGHW D U\ HQ R UH F DV QG HV D QG FOWR ZH VVDD FFPR DF WV KH XE HU HW )LUFH VWVWKH D HQ WVHHU UD VQ HF  QG HTHTWR DFL]W HW XHXHW LQSHGH RI QG EM OWR \LQW H UD YDU\GH UR LYPQJDW KH WL SD HF DW 7SHLI DQ RJU FR UQ HHDQ LRUQ VWSD RURUWLOORJ DW DOVSLQWH HX O\ HX TX  DO VW TX LF LQ WV  RQ TX V U HV DW WV PUH V WL RQ WRQFFOUH TX DOGHLWIH\ GRDE WL UD DXIXD FODVDV RQVVHV UD SH WL R SH OH WHUQV XQ GRDEOHR VXVXSS ODSSVVRURUHVWW XQ &RPSRXQG3DW VXEF WZR

:HKDYHDQHZ FDWHJRU\09& DQG0RGHODUH FRPSRXQGSDWWHUQV

LQHV 3DWWHUQFRPE DW $&RPSRXQG HUQVLQWRDVROXWLRQWK  HP WW SD H RU P RU HQHUDOSUREO J RU J LQ UU VROYHVDUHFX



WRGHFRXSOHWKHWKUHHSOD\HUVLQ WKH09&PRGHOZKLFKNHHSV GHVLJQVFOHDUDQGIOH[LEOH

ƒ 7KH$GDSWHU3DWWHUQFDQEH XVHGWRDGDSWDQHZPRGHOWR DQH[LVWLQJYLHZDQGFRQWUROOHU

ƒ 0RGHOLVDQDGDSWDWLRQRI 09&IRUZHEDSSOLFDWLRQV

ƒ ,Q0RGHOWKHFRQWUROOHULV LPSOHPHQWHGDVDVHUYOHWDQG -63 +70/LPSOHPHQWWKH YLHZ

&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 63

FRPSRXQGSDWWHUQV

([HUFLVHVROXWLRQV 6KDUSHQ \RXU SHQFLO 4HE1UACK#OUNTERISA1UACKABLETOO7HENWECHANGE1UACKABLETOEXTEND 1UACK/BSERVABLE WEHAVETOCHANGEEVERYCLASSTHATIMPLEMENTS1UACKABLE INCLUDING1UACK#OUNTER

OHVR 4XDFN&RXQWHULVD4XDFNDE WRR QRZLW·VD4XDFN2EVHUYDEOH SXEOLFFODVV4XDFN&RXQWHULPSOHPHQWV4XDFNDEOH^ 4XDFNDEOHGXFN VWDWLFLQWQXPEHU2I4XDFNV +HUH·VWKHGXFNWKDWWKH  4XDFN&RXQWHULVGHFRUDWLQJ SXEOLF4XDFN&RXQWHU 4XDFNDEOHGXFN ^ ,W·VWKLVGXFNWKDWUHDOO\ WKLVGXFN GXFN QHHGVWRKDQGOHWKH ` REVHUYDEOHPHWKRGV  SXEOLFYRLGTXDFN ^ GXFNTXDFN  WKH QXPEHU2I4XDFNV $OORIWKLVFRGHLV V RX HYL SU ` KH VW HD VDP RXQWHU  YHUVLRQRI4XDFN& SXEOLFVWDWLFLQWJHW4XDFNV ^ UHWXUQQXPEHU2I4XDFNV `  SXEOLFYRLGUHJLVWHU2EVHUYHU 2EVHUYHUREVHUYHU ^ GXFNUHJLVWHU2EVHUYHU REVHUYHU  +HUHDUHWKHWZR ` 4XDFN2EVHUYDEOH  PHWKRGV1RWLFHWKDW SXEOLFYRLGQRWLI\2EVHUYHUV ^ ZHMXVWGHOHJDWHERWK GXFNQRWLI\2EVHUYHUV  ` FDOOVWRWKHGXFNWKDW ` ZH·UHGHFRUDWLQJ



\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 64

VKDUSHQVROXWLRQ

6KDUSHQ \RXU SHQFLO :KDWLIRXU4XDFNRORJLVWZDQWVWRREVHUYHDQHQWLUHÀRFN":KDWGRHVWKDWPHDQ DQ\ZD\"7KLQNDERXWLWOLNHWKLVLIZHREVHUYHDFRPSRVLWHWKHQZH¶UHREVHUYLQJ HYHU\WKLQJLQWKHFRPSRVLWH6RZKHQ\RXUHJLVWHUZLWKDÀRFNWKHÀRFNFRPSRVLWH PDNHVVXUH\RXJHWUHJLVWHUHGZLWKDOOLWVFKLOGUHQZKLFKPD\LQFOXGHRWKHUÀRFNV

Z )ORFNLVD4XDFNDEOHVRQR LW·VD4XDFN2EVHUYDEOHWRR SXEOLFFODVV)ORFNLPSOHPHQWV4XDFNDEOH^ $UUD\/LVWGXFNV QHZ$UUD\/LVW  +HUH·VWKH4XDFNDEOHVWKDW  DUHLQWKH)ORFN SXEOLFYRLGDGG 4XDFNDEOHGXFN ^ GXFNVDGG GXFN  `  SXEOLFYRLGTXDFN ^ ,WHUDWRULWHUDWRU GXFNVLWHUDWRU  ZKLOH LWHUDWRUKDV1H[W ^ 4XDFNDEOHGXFN  4XDFNDEOH LWHUDWRUQH[W  GXFNTXDFN  2EVHUYHU :KHQ\RXUHJLVWHUDVDQ DOO\ ` FWX XD \R FN ZLWKWKH)OR ` HU\WKLQJ JHWUHJLVWHUHGZLWKHY LFKLV  SXEOLFYRLGUHJLVWHU2EVHUYHU 2EVHUYHUREVHUYHU ^ WKDW·V,1WKHIORFNZKKHULW·VD ,WHUDWRULWHUDWRU GXFNVLWHUDWRU  HYHU\4XDFNDEOHZKHW  ZKLOH LWHUDWRUKDV1H[W ^ GXFNRUDQRWKHU)ORFN 4XDFNDEOHGXFN  4XDFNDEOH LWHUDWRUQH[W  GXFNUHJLVWHU2EVHUYHU REVHUYHU  :HLWHUDWHWKURXJKDOOWKH ` 4XDFNDEOHVLQWKH)ORFNDQG ` GHOHJDWHWKHFDOOWRHDFK  4XDFNDEOH,IWKH4XDFNDEOH SXEOLFYRLGQRWLI\2EVHUYHUV ^` LVDQRWKHU)ORFNLWZLOOGR  WKHVDPH `

(DFK4XDFNDEOHGRHVLWVRZQQRWLILFDWLRQ VR)ORFNGRHVQ·WKDYHWRZRUU\DERXWLW 7KLVKDSSHQVZKHQ)ORFNGHOHJDWHVTXDFN  WRHDFK4XDFNDEOHLQWKH)ORFN



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 65

FRPSRXQGSDWWHUQV

6KDUSHQ \RXU SHQFLO 7ERESTILLDIRECTLYINSTANTIATING'EESEBYRELYINGONCONCRETECLASSES#ANYOUWRITE AN!BSTRACT&ACTORYFOR'EESE(OWSHOULDITHANDLECREATINGhGOOSEDUCKSv


'HVLJQ&ODVV
7KHYLHZGHOHJDWHV EHKDYLRUWRWKH FRQWUROOHU7KH EHKDYLRULW GHOHJDWHVLVKRZWR FRQWUROWKHPRGHO EDVHGRQXVHULQSXW

'-9LHZ

LQWHUIDFH!! &RQWUROOHU,QWHUIDFH

FRQWUROOHU

VHW%30

FUHDWH9LHZ

LQFUHDVH%30

XSGDWH%30

GHFUHDVH%30

XSGDWH%HDW FUHDWH&RQWUROV

7KH &RQWUROOHU,QWHUIDFH LVWKHLQWHUIDFH WKDWDOOFRQFUHWH  FRQWUROOHUVLPSOHPHQW 7KLVLVWKHVWUDWHJ\ LQWHUIDFH

HQDEOH6WRS0HQX,WHP GLVDEOH6WRS0HQX,WHP

&RQWUROOHU

HQDEOH6WDUW0HQX,WHP GLVDEOH6WDUW0HQX,WHP

VHW%30

DFWLRQ3HUIRUPHG

LQFUHDVH%30 GHFUHDVH%30

:HFDQSOXJLQ GLIIHUHQWFRQWUROOHUV WRSURYLGHGLIIHUHQW EHKDYLRUVIRUWKHYLHZ

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 66

UHDG\EDNHFRGHWKHGMDSSOLFDWLRQ

5HDG\EDNH&RGH

(ERESTHECOMPLETEIMPLEMENTATIONOFTHE$*6IEW)TSHOWSALLTHE -)$)CODETOGENERATETHESOUND ANDALLTHE3WINGCOMPONENTSTO CREATETHEVIEW9OUCANALSODOWNLOADTHISCODEAT HTTPWWWWICKEDLYSMARTCOM(AVEFUN

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ  SXEOLFFODVV'-7HVW'ULYH^ SXEOLFVWDWLFYRLGPDLQ 6WULQJ>@DUJV ^ %HDW0RGHO,QWHUIDFHPRGHO QHZ%HDW0RGHO  &RQWUROOHU,QWHUIDFHFRQWUROOHU QHZ%HDW&RQWUROOHU PRGHO  ` `




&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 67

FRPSRXQGSDWWHUQV

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ  LPSRUWMDYD[VRXQGPLGL  LPSRUWMDYDXWLO  SXEOLFFODVV%HDW0RGHOLPSOHPHQWV%HDW0RGHO,QWHUIDFH0HWD(YHQW/LVWHQHU^ 6HTXHQFHUVHTXHQFHU $UUD\/LVWEHDW2EVHUYHUV QHZ$UUD\/LVW  $UUD\/LVWESP2EVHUYHUV QHZ$UUD\/LVW  LQWESP  RWKHULQVWDQFHYDULDEOHVKHUH 6HTXHQFHVHTXHQFH 7UDFNWUDFN  SXEOLFYRLGLQLWLDOL]H ^ VHW8S0LGL  EXLOG7UDFN$QG6WDUW  `  SXEOLFYRLGRQ ^ VHTXHQFHUVWDUW  VHW%30   `  SXEOLFYRLGRII ^ VHW%30   VHTXHQFHUVWRS  `  SXEOLFYRLGVHW%30 LQWESP ^ WKLVESP ESP VHTXHQFHUVHW7HPSR,Q%30 JHW%30  QRWLI\%302EVHUYHUV  `  SXEOLFLQWJHW%30 ^ UHWXUQESP `  YRLGEHDW(YHQW ^ QRWLI\%HDW2EVHUYHUV  `   SXEOLFYRLGUHJLVWHU2EVHUYHU %HDW2EVHUYHUR ^ EHDW2EVHUYHUVDGG R  `  SXEOLFYRLGQRWLI\%HDW2EVHUYHUV ^ IRU LQWL LEHDW2EVHUYHUVVL]H L ^ \RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 68

UHDG\EDNHFRGHPRGHO

5HDG\EDNH&RGH %HDW2EVHUYHUREVHUYHU  %HDW2EVHUYHU EHDW2EVHUYHUVJHW L  REVHUYHUXSGDWH%HDW  ` `  SXEOLFYRLGUHJLVWHU2EVHUYHU %302EVHUYHUR ^ ESP2EVHUYHUVDGG R  `  SXEOLFYRLGQRWLI\%302EVHUYHUV ^ IRU LQWL LESP2EVHUYHUVVL]H L ^ %302EVHUYHUREVHUYHU  %302EVHUYHU ESP2EVHUYHUVJHW L  REVHUYHUXSGDWH%30  ` `

SXEOLFYRLGUHPRYH2EVHUYHU %HDW2EVHUYHUR ^ LQWL EHDW2EVHUYHUVLQGH[2I R  LI L!  ^ EHDW2EVHUYHUVUHPRYH L  ` `

SXEOLFYRLGUHPRYH2EVHUYHU %302EVHUYHUR ^ LQWL ESP2EVHUYHUVLQGH[2I R  LI L!  ^ ESP2EVHUYHUVUHPRYH L  ` `

SXEOLFYRLGPHWD 0HWD0HVVDJHPHVVDJH ^ LI PHVVDJHJHW7\SH   ^ EHDW(YHQW  VHTXHQFHUVWDUW  VHW%30 JHW%30  ` ` SXEOLFYRLGVHW8S0LGL ^ WU\^ VHTXHQFHU 0LGL6\VWHPJHW6HTXHQFHU 



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 69

FRPSRXQGSDWWHUQV

VHTXHQFHURSHQ  VHTXHQFHUDGG0HWD(YHQW/LVWHQHU WKLV  VHTXHQFH QHZ6HTXHQFH 6HTXHQFH334  WUDFN VHTXHQFHFUHDWH7UDFN  VHTXHQFHUVHW7HPSR,Q%30 JHW%30  `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` ` SXEOLFYRLGEXLOG7UDFN$QG6WDUW ^ LQW>@WUDFN/LVW ^`  VHTXHQFHGHOHWH7UDFN QXOO  WUDFN VHTXHQFHFUHDWH7UDFN  PDNH7UDFNV WUDFN/LVW  WUDFNDGG PDNH(YHQW   WU\^ VHTXHQFHUVHW6HTXHQFH VHTXHQFH  `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` `  SXEOLFYRLGPDNH7UDFNV LQW>@OLVW ^  IRU LQWL LOLVWOHQJWKL ^ LQWNH\ OLVW>L@ LI NH\  ^ WUDFNDGG PDNH(YHQW NH\L  WUDFNDGG PDNH(YHQW NH\L  ` ` `  SXEOLF0LGL(YHQWPDNH(YHQW LQWFRPGLQWFKDQLQWRQHLQWWZRLQWWLFN ^ 0LGL(YHQWHYHQW QXOO WU\^ 6KRUW0HVVDJHD QHZ6KRUW0HVVDJH  DVHW0HVVDJH FRPGFKDQRQHWZR  HYHQW QHZ0LGL(YHQW DWLFN   `FDWFK ([FHSWLRQH ^ HSULQW6WDFN7UDFH  ` UHWXUQHYHQW ` ` \RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 70

UHDG\EDNHFRGHYLHZ

QM_

5HDG\EDNH&RGH

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ  SXEOLFLQWHUIDFH%HDW2EVHUYHU^ YRLGXSGDWH%HDW  `

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ  SXEOLFLQWHUIDFH%302EVHUYHU^ YRLGXSGDWH%30  ` SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ  LPSRUWMDYDDZW  LPSRUWMDYDDZWHYHQW  LPSRUWMDYD[VZLQJ  SXEOLFFODVV'-9LHZLPSOHPHQWV$FWLRQ/LVWHQHU%HDW2EVHUYHU%302EVHUYHU^ %HDW0RGHO,QWHUIDFHPRGHO &RQWUROOHU,QWHUIDFHFRQWUROOHU -)UDPHYLHZ)UDPH -3DQHOYLHZ3DQHO %HDW%DUEHDW%DU -/DEHOESP2XWSXW/DEHO -)UDPHFRQWURO)UDPH -3DQHOFRQWURO3DQHO -/DEHOESP/DEHO -7H[W)LHOGESP7H[W)LHOG -%XWWRQVHW%30%XWWRQ -%XWWRQLQFUHDVH%30%XWWRQ -%XWWRQGHFUHDVH%30%XWWRQ -0HQX%DUPHQX%DU -0HQXPHQX -0HQX,WHPVWDUW0HQX,WHP -0HQX,WHPVWRS0HQX,WHP  SXEOLF'-9LHZ &RQWUROOHU,QWHUIDFHFRQWUROOHU%HDW0RGHO,QWHUIDFHPRGHO ^ WKLVFRQWUROOHU FRQWUROOHU WKLVPRGHO PRGHO PRGHOUHJLVWHU2EVHUYHU %HDW2EVHUYHU WKLV  PRGHOUHJLVWHU2EVHUYHU %302EVHUYHU WKLV  `  SXEOLFYRLGFUHDWH9LHZ ^



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 71

FRPSRXQGSDWWHUQV &UHDWHDOO6ZLQJFRPSRQHQWVKHUH YLHZ3DQHO QHZ-3DQHO QHZ*ULG/D\RXW   YLHZ)UDPH QHZ-)UDPH ³9LHZ´  YLHZ)UDPHVHW'HIDXOW&ORVH2SHUDWLRQ -)UDPH(;,7B21B&/26(  YLHZ)UDPHVHW6L]H QHZ'LPHQVLRQ   ESP2XWSXW/DEHO QHZ-/DEHO ³RIÀLQH´6ZLQJ&RQVWDQWV&(17(5  EHDW%DU QHZ%HDW%DU  EHDW%DUVHW9DOXH   -3DQHOESP3DQHO QHZ-3DQHO QHZ*ULG/D\RXW   ESP3DQHODGG EHDW%DU  ESP3DQHODGG ESP2XWSXW/DEHO  YLHZ3DQHODGG ESP3DQHO  YLHZ)UDPHJHW&RQWHQW3DQH DGG YLHZ3DQHO%RUGHU/D\RXW&(17(5  YLHZ)UDPHSDFN  YLHZ)UDPHVHW9LVLEOH WUXH  `   SXEOLFYRLGFUHDWH&RQWUROV ^ &UHDWHDOO6ZLQJFRPSRQHQWVKHUH -)UDPHVHW'HIDXOW/RRN$QG)HHO'HFRUDWHG WUXH  FRQWURO)UDPH QHZ-)UDPH ³&RQWURO´  FRQWURO)UDPHVHW'HIDXOW&ORVH2SHUDWLRQ -)UDPH(;,7B21B&/26(  FRQWURO)UDPHVHW6L]H QHZ'LPHQVLRQ   FRQWURO3DQHO QHZ-3DQHO QHZ*ULG/D\RXW   PHQX%DU QHZ-0HQX%DU  PHQX QHZ-0HQX ³'-&RQWURO´  VWDUW0HQX,WHP QHZ-0HQX,WHP ³6WDUW´  PHQXDGG VWDUW0HQX,WHP  VWDUW0HQX,WHPDGG$FWLRQ/LVWHQHU QHZ$FWLRQ/LVWHQHU ^ SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ FRQWUROOHUVWDUW  ` `  VWRS0HQX,WHP QHZ-0HQX,WHP ³6WRS´  PHQXDGG VWRS0HQX,WHP  VWRS0HQX,WHPDGG$FWLRQ/LVWHQHU QHZ$FWLRQ/LVWHQHU ^ SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ FRQWUROOHUVWRS  ESP2XWSXW/DEHOVHW7H[W ³RIÀLQH´  ` `  -0HQX,WHPH[LW QHZ-0HQX,WHP ³4XLW´  H[LWDGG$FWLRQ/LVWHQHU QHZ$FWLRQ/LVWHQHU ^ SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ 6\VWHPH[LW   ` ` 

\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 72

UHDG\EDNHFRGHYLHZ

5HDG\EDNH&RGH

PHQXDGG H[LW  PHQX%DUDGG PHQX  FRQWURO)UDPHVHW-0HQX%DU PHQX%DU  ESP7H[W)LHOG QHZ-7H[W)LHOG   ESP/DEHO QHZ-/DEHO ³(QWHU%30´6ZLQJ&RQVWDQWV5,*+7  VHW%30%XWWRQ QHZ-%XWWRQ ³6HW´  VHW%30%XWWRQVHW6L]H QHZ'LPHQVLRQ   LQFUHDVH%30%XWWRQ QHZ-%XWWRQ ³!!´  GHFUHDVH%30%XWWRQ QHZ-%XWWRQ ³´  VHW%30%XWWRQDGG$FWLRQ/LVWHQHU WKLV  LQFUHDVH%30%XWWRQDGG$FWLRQ/LVWHQHU WKLV  GHFUHDVH%30%XWWRQDGG$FWLRQ/LVWHQHU WKLV  -3DQHOEXWWRQ3DQHO QHZ-3DQHO QHZ*ULG/D\RXW   EXWWRQ3DQHODGG GHFUHDVH%30%XWWRQ  EXWWRQ3DQHODGG LQFUHDVH%30%XWWRQ  -3DQHOHQWHU3DQHO QHZ-3DQHO QHZ*ULG/D\RXW   HQWHU3DQHODGG ESP/DEHO  HQWHU3DQHODGG ESP7H[W)LHOG  -3DQHOLQVLGH&RQWURO3DQHO QHZ-3DQHO QHZ*ULG/D\RXW   LQVLGH&RQWURO3DQHODGG HQWHU3DQHO  LQVLGH&RQWURO3DQHODGG VHW%30%XWWRQ  LQVLGH&RQWURO3DQHODGG EXWWRQ3DQHO  FRQWURO3DQHODGG LQVLGH&RQWURO3DQHO   ESP/DEHOVHW%RUGHU %RUGHU)DFWRU\FUHDWH(PSW\%RUGHU   ESP2XWSXW/DEHOVHW%RUGHU %RUGHU)DFWRU\FUHDWH(PSW\%RUGHU   FRQWURO)UDPHJHW5RRW3DQH VHW'HIDXOW%XWWRQ VHW%30%XWWRQ  FRQWURO)UDPHJHW&RQWHQW3DQH DGG FRQWURO3DQHO%RUGHU/D\RXW&(17(5  FRQWURO)UDPHSDFN  FRQWURO)UDPHVHW9LVLEOH WUXH  ` SXEOLFYRLGHQDEOH6WRS0HQX,WHP ^ VWRS0HQX,WHPVHW(QDEOHG WUXH  ` SXEOLFYRLGGLVDEOH6WRS0HQX,WHP ^ VWRS0HQX,WHPVHW(QDEOHG IDOVH 



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 73

FRPSRXQGSDWWHUQV

` SXEOLFYRLGHQDEOH6WDUW0HQX,WHP ^ VWDUW0HQX,WHPVHW(QDEOHG WUXH  ` SXEOLFYRLGGLVDEOH6WDUW0HQX,WHP ^ VWDUW0HQX,WHPVHW(QDEOHG IDOVH  ` SXEOLFYRLGDFWLRQ3HUIRUPHG $FWLRQ(YHQWHYHQW ^ LI HYHQWJHW6RXUFH  VHW%30%XWWRQ ^ LQWESP ,QWHJHUSDUVH,QW ESP7H[W)LHOGJHW7H[W  FRQWUROOHUVHW%30 ESP  `HOVHLI HYHQWJHW6RXUFH  LQFUHDVH%30%XWWRQ ^ FRQWUROOHULQFUHDVH%30  `HOVHLI HYHQWJHW6RXUFH  GHFUHDVH%30%XWWRQ ^ FRQWUROOHUGHFUHDVH%30  ` ` SXEOLFYRLGXSGDWH%30 ^ LQWESP PRGHOJHW%30  LI ESP  ^ ESP2XWSXW/DEHOVHW7H[W ³RIÀLQH´  `HOVH^ ESP2XWSXW/DEHOVHW7H[W ³&XUUHQW%30³PRGHOJHW%30  ` `  SXEOLFYRLGXSGDWH%HDW ^ EHDW%DUVHW9DOXH   ` `




Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 74

UHDG\EDNHFRGHFRQWUROOHU

5HDG\EDNH&RGH

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ  SXEOLFFODVV%HDW&RQWUROOHULPSOHPHQWV&RQWUROOHU,QWHUIDFH^ %HDW0RGHO,QWHUIDFHPRGHO '-9LHZYLHZ  SXEOLF%HDW&RQWUROOHU %HDW0RGHO,QWHUIDFHPRGHO ^ WKLVPRGHO PRGHO YLHZ QHZ'-9LHZ WKLVPRGHO  YLHZFUHDWH9LHZ  YLHZFUHDWH&RQWUROV  YLHZGLVDEOH6WRS0HQX,WHP  YLHZHQDEOH6WDUW0HQX,WHP  PRGHOLQLWLDOL]H  `  SXEOLFYRLGVWDUW ^ PRGHORQ  YLHZGLVDEOH6WDUW0HQX,WHP  YLHZHQDEOH6WRS0HQX,WHP  `  SXEOLFYRLGVWRS ^ PRGHORII  YLHZGLVDEOH6WRS0HQX,WHP  YLHZHQDEOH6WDUW0HQX,WHP  `  SXEOLFYRLGLQFUHDVH%30 ^ LQWESP PRGHOJHW%30  PRGHOVHW%30 ESP  `  SXEOLFYRLGGHFUHDVH%30 ^ LQWESP PRGHOJHW%30  PRGHOVHW%30 ESP  `  SXEOLFYRLGVHW%30 LQWESP ^ PRGHOVHW%30 ESP  ` `



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 75

FRPSRXQGSDWWHUQV

@DUJV ^ +HDUW0RGHOKHDUW0RGHO QHZ+HDUW0RGHO  &RQWUROOHU,QWHUIDFHPRGHO QHZ+HDUW&RQWUROOHU KHDUW0RGHO  ` `

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ SXEOLFLQWHUIDFH+HDUW0RGHO,QWHUIDFH^ LQWJHW+HDUW5DWH  YRLGUHJLVWHU2EVHUYHU %HDW2EVHUYHUR  YRLGUHPRYH2EVHUYHU %HDW2EVHUYHUR  YRLGUHJLVWHU2EVHUYHU %302EVHUYHUR  YRLGUHPRYH2EVHUYHU %302EVHUYHUR  `

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ LPSRUWMDYDXWLO  SXEOLFFODVV+HDUW0RGHOLPSOHPHQWV+HDUW0RGHO,QWHUIDFH5XQQDEOH^ $UUD\/LVWEHDW2EVHUYHUV QHZ$UUD\/LVW  $UUD\/LVWESP2EVHUYHUV QHZ$UUD\/LVW  LQWWLPH  LQWESP  5DQGRPUDQGRP QHZ5DQGRP 6\VWHPFXUUHQW7LPH0LOOLV  7KUHDGWKUHDG SXEOLF+HDUW0RGHO ^ WKUHDG QHZ7KUHDG WKLV  WKUHDGVWDUW  ` SXEOLFYRLGUXQ ^ LQWODVWUDWH  IRU  ^ LQWFKDQJH UDQGRPQH[W,QW   LI UDQGRPQH[W,QW    ^ FKDQJH FKDQJH ` LQWUDWH  WLPHFKDQJH  LI UDWH UDWH! ^ WLPH FKDQJH \RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 76

UHDG\EDNHFRGHKHDUWEHDWPRGHO QRWLI\%HDW2EVHUYHUV  LI UDWH ODVWUDWH ^ ODVWUDWH UDWH QRWLI\%302EVHUYHUV  ` ` WU\^ 7KUHDGVOHHS WLPH  `FDWFK ([FHSWLRQH ^` ` ` SXEOLFLQWJHW+HDUW5DWH ^ UHWXUQWLPH `

5HDG\EDNH&RGH

SXEOLFYRLGUHJLVWHU2EVHUYHU %HDW2EVHUYHUR ^ EHDW2EVHUYHUVDGG R  ` SXEOLFYRLGUHPRYH2EVHUYHU %HDW2EVHUYHUR ^ LQWL EHDW2EVHUYHUVLQGH[2I R  LI L!  ^ EHDW2EVHUYHUVUHPRYH L  ` ` SXEOLFYRLGQRWLI\%HDW2EVHUYHUV ^ IRU LQWL LEHDW2EVHUYHUVVL]H L ^ %HDW2EVHUYHUREVHUYHU  %HDW2EVHUYHU EHDW2EVHUYHUVJHW L  REVHUYHUXSGDWH%HDW  ` ` SXEOLFYRLGUHJLVWHU2EVHUYHU %302EVHUYHUR ^ ESP2EVHUYHUVDGG R  ` SXEOLFYRLGUHPRYH2EVHUYHU %302EVHUYHUR ^ LQWL ESP2EVHUYHUVLQGH[2I R  LI L!  ^ ESP2EVHUYHUVUHPRYH L  ` ` SXEOLFYRLGQRWLI\%302EVHUYHUV ^ IRU LQWL LESP2EVHUYHUVVL]H L ^ %302EVHUYHUREVHUYHU  %302EVHUYHU ESP2EVHUYHUVJHW L  REVHUYHUXSGDWH%30  ` ` `



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 77

FRPSRXQGSDWWHUQV


\RXDUHKHUH



Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 12. Patterns of Patterns

Return to Table of Contents

Page 78

UHDG\EDNHFRGHKHDUWEHDWFRQWUROOHU


5HDG\EDNH&RGH

SDFNDJHKHDG¿UVWFRPELQHGGMYLHZ  SXEOLFFODVV+HDUW&RQWUROOHULPSOHPHQWV&RQWUROOHU,QWHUIDFH^ +HDUW0RGHO,QWHUIDFHPRGHO '-9LHZYLHZ  SXEOLF+HDUW&RQWUROOHU +HDUW0RGHO,QWHUIDFHPRGHO ^ WKLVPRGHO PRGHO YLHZ QHZ'-9LHZ WKLVQHZ+HDUW$GDSWHU PRGHO  YLHZFUHDWH9LHZ  YLHZFUHDWH&RQWUROV  YLHZGLVDEOH6WRS0HQX,WHP  YLHZGLVDEOH6WDUW0HQX,WHP  `  SXEOLFYRLGVWDUW ^`  SXEOLFYRLGVWRS ^`  SXEOLFYRLGLQFUHDVH%30 ^`  SXEOLFYRLGGHFUHDVH%30 ^`  SXEOLFYRLGVHW%30 LQWESP ^` `



&KDSWHU

Chapter 12. Patterns of Patterns Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Table of Contents Chapter 13. Patterns in the Real World........................................................ 1 Section 13.1. Design Pattern defined.............................................................................................................................................. 3 Section 13.2. Looking more closely at the Design Pattern definition............................................................................................ 5 Section 13.3. Geek Bits.................................................................................................................................................................... 6 Section 13.4. there are no Dumb Questions.................................................................................................................................. 10 Section 13.5. So you wanna be a Design Patterns writer............................................................................................................... 11 Section 13.6. Organizing Design Patterns..................................................................................................................................... 13 Section 13.7. Solution: Pattern Categories.................................................................................................................................... 14 Section 13.8. there are no Dumb Questions.................................................................................................................................. 15 Section 13.9. Thinking in Patterns................................................................................................................................................ 18 Section 13.10. Your Mind on Patterns........................................................................................................................................... 21 Section 13.11. Don't forget the power of the shared vocabulary................................................................................................... 23 Section 13.12. Cruisin' Object ville with the Gang of Four........................................................................................................... 25 Section 13.13. Your journey has just begun.................................................................................................................................. 26 Section 13.14. The Patterns Zoo.................................................................................................................................................... 28 Section 13.15. Annihilating evil with Anti-Patterns..................................................................................................................... 30 Section 13.16. Tools for your Design Toolbox.............................................................................................................................. 32 Section 13.17. Leaving Objectville................................................................................................................................................. 33 Section 13.18. Exercise solutions.................................................................................................................................................. 34

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 1

Better Living with Patterns

53DWWHUQVLQWKH

5 4

5HDO:RUOG

4

$KKKKQRZ\RX·UHUHDG\IRUDEULJKWQHZZRUOGILOOHGZLWK 'HVLJQ3DWWHUQV%XWEHIRUH\RXJRRSHQLQJDOOWKRVHQHZGRRUVRIRSSRUWXQLW\ZH QHHGWRFRYHUDIHZGHWDLOVWKDW\RX¶OOHQFRXQWHURXWLQWKHUHDOZRUOG±WKDW¶VULJKWWKLQJVJHW DOLWWOHPRUHFRPSOH[WKDQWKH\DUHKHUHLQ2EMHFWYLOOH&RPHDORQJZH¶YHJRWDQLFHJXLGHWR KHOS\RXWKURXJKWKHWUDQVLWLRQRQWKHQH[WSDJH

WKLVLVDQHZFKDSWHU



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 2

ZKDW\RX¶OOOHDUQIURPWKHJXLGH

GVQ KF W )  NG KN VX E LG D 1 6JG CVVGTPU 2 P I UK G & J KV Y I $GVVGT.KXKP VGTPUKPVJGTGCN HQTNKXKPIYKVJRCV

VTKEMU IWKFGYKVJVKRU F[ CP J WT Q RV EG 2NGCUGCE IWKFG[QWYKNN QPQHC YQTNF+PVJKU CDQWVVJGFG¿PKVK PU VKQ GR PE EQ KU O JGCNNVQQEQOOQP A.GCTPV VGTP´ LWUVJCXGVQ ³&GUKIP2CV QIUCPFYJ[[QW CN CV % TP VG CV 2 KIP TVJQUGPKHV[&GU A&KUEQXG PIVKOG IGVQPG CVVGTPCVVJGYTQ 2 P KI GU & C PI QHWUK GODCTTCUUOGPV PI A#XQKFVJG PUYJGTGVJG[DGNQ VKQ EC K¿ UU NC E KP U QYVQMGGRRCVVGTP M A.GCTPJ TWUTGCFQWTSWKE IW G VJ T HQ UV LW V PUKUP¶ FKUEQXGTKPIRCVVGT VQQ A5GGVJCV DGEQOGCRCVVGTPUYTKVGT F CP GCNGF Q *QY6 CPIQH(QWTKUTGX ) U QW TK VG [U O JG VKV[QHV YJGPVJGVTWGKFGP VVGTPUWUGT A$GVJGTG DNGDQQMUCP[RC VC G HG QH E JG V ± TU YKVJVJGPGKIJDQ A-GGRWR OWUVQYP VGT FNKMGC


&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 3

EHWWHUOLYLQJZLWKSDWWHUQV

,M[QOV8I\\MZVLMNQVML ?MJM\aW]¼^MOW\IXZM\\aOWWLQLMIWN _PI\IXI\\MZVQ[IN\MZZMILQVO\PQ[JWWS*]\ _M¼^MVM^MZZMITTaOQ^MVILMÅVQ\QWVNWZI,M[QOV8I\\MZV?MTTaW]UQOP\JMIJQ\ []ZXZQ[MLJa\PMLMÅVQ\QWV\PI\Q[QVKWUUWV][M"

)8I\\MZVQ[I[WT]\QWV\WIXZWJTMUQVIKWV\M`\


([DPSOH


(QFDSVXODWHWKH LWHUDWLRQLQWRD VHSDUDWHFODVV


´,I\RXILQG\RXUVHOILQDFRQWH[WZLWKDSUREOHPWKDWKDVDJRDO WKDWLVDIIHFWHGE\DVHWRIFRQVWUDLQWVWKHQ\RXFDQDSSO\ DGHVLJQWKDWUHVROYHVWKHJRDODQGFRQVWUDLQWVDQGOHDGVWRD VROXWLRQµ 6W_\PQ[[MMU[TQSMITW\WN _WZSR][\\WÅO]ZMW]\_PI\I,M[QOV8I\\MZVQ[)N\MZITT aW]ITZMILaSVW_\PI\I,M[QOV8I\\MZVOQ^M[aW]I[WT]\QWV\WIKWUUWVZMK]ZZQVO LM[QOVXZWJTMU?PI\Q[ITT\PQ[NWZUITQ\aOM\\QVOaW]'?MTTaW]¼ZMOWQVO\W[MM\PI\ JaPI^QVOINWZUIT_IaWN LM[KZQJQVOXI\\MZV[_MKIVKZMI\MIKI\ITWOWN XI\\MZV[ _PQKPPI[ITTSQVL[WN JMVMÅ\[

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 4

GHVLJQSDWWHUQGH¿QHG

,·YHEHHQWKLQNLQJ DERXWWKHWKUHHSDUW GHÀQLWLRQDQG,GRQ·WWKLQN LWGHÀQHVDSDWWHUQDWDOO

AW]UQOP\JMZQOP\#TM\¼[\PQVSIJW]\\PQ[IJQ\?MVMMLIXZWJTMUI [WT]\QWVIVLIKWV\M`\" 8ZWJTMU"0W_LW1OM\\W_WZSWV\QUM' +WV\M`\"1¼^MTWKSMLUaSMa[QV\PMKIZ ;WT]\QWV"*ZMIS\PM_QVLW_OM\QV\PMKIZ[\IZ\ \PMMVOQVMIVLLZQ^M\W_WZS ?MPI^MITT\PMKWUXWVMV\[WN \PMLMÅVQ\QWV"_MPI^MIXZWJTMU _PQKPQVKT]LM[\PMOWITWN OM\\QVO\W_WZSIVL\PMKWV[\ZIQV\[WN \QUM LQ[\IVKMIVLXZWJIJTa[WUMW\PMZNIK\WZ[?MIT[WPI^MIKWV\M`\QV _PQKP\PMSMa[\W\PMKIZIZMQVIKKM[[QJTM)VL_MPI^MI[WT]\QWV\PI\ OM\[][\W\PMSMa[IVLZM[WT^M[JW\P\PM\QUMIVLLQ[\IVKMKWV[\ZIQV\[ ?MU][\PI^MIXI\\MZVVW_ :QOP\'

YiX`e gfn\i :HIROORZHGWKH'HVLJQ3DWWHUQGH¿QLWLRQDQGGH¿QHGDSUREOHPDFRQWH[WDQGDVROXWLRQ ZKLFK ZRUNV ,VWKLVDSDWWHUQ",IQRWKRZGLGLWIDLO"&RXOGZHIDLOWKHVDPHZD\ZKHQGH¿QLQJDQ22 'HVLJQ3DWWHUQ"



&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 5

EHWWHUOLYLQJZLWKSDWWHUQV

4WWSQVOUWZMKTW[MTaI\\PM ,M[QOV8I\\MZVLMNQVQ\QWV 7]ZM`IUXTMLWM[[MMU\WUI\KP\PM,M[QOV 8I\\MZVLMÅVQ\QWVJ]\Q\Q[V¼\I\Z]MXI\\MZV?Pa' .WZ[\IZ\MZ[_MSVW_\PI\IXI\\MZVVMML[\WIXXTa \WIZMK]ZZQVOXZWJTMU?PQTMIVIJ[MV\UQVLML XMZ[WVUQOP\TWKSPQ[SMa[QV\PMKIZWN\MVJZMISQVO \PMKIZ_QVLW_LWM[V¼\Y]ITQNaI[I[WT]\QWV\PI\ KIVJMIXXTQMLW^MZIVLW^MZWZI\TMI[\Q[V¼\TQSMTa \WQN _MJITIVKM\PMOWIT_Q\PIVW\PMZKWV[\ZIQV\" KW[\

1H[WWLPHVRPHRQHWHOOV\RX DSDWWHUQLVDVROXWLRQWRDSUREOHP LQDFRQWH[WMXVWQRGDQGVPLOH
1\IT[WNIQT[QVIKW]XTMWN W\PMZ_Ia["ÅZ[\Q\Q[V¼\ MI[a\W\ISM\PQ[LM[KZQX\QWVPIVLQ\\W[WUMWVM IVLPI^MPQUIXXTaQ\\WPQ[W_V]VQY]MXZWJTMU ;MKWVL_M¼^M^QWTI\MLIVQUXWZ\IV\J]\[QUXTM I[XMK\WN IXI\\MZV"_MPI^MV¼\M^MVOQ^MVQ\I VIUM ?Q\PW]\IVIUM\PMXI\\MZVLWM[V¼\ JMKWUMXIZ\WN I^WKIJ]TIZa\PI\KIVJM[PIZML _Q\PW\PMZLM^MTWXMZ[ 4]KSQTaXI\\MZV[IZMVW\LM[KZQJMLIVLLWK]UMV\ML I[I[QUXTMXZWJTMUKWV\M`\IVL[WT]\QWV#_M PI^MU]KPJM\\MZ_Ia[WN LM[KZQJQVOXI\\MZV[IVL KWTTMK\QVO\PMU\WOM\PMZQV\WXI\\MZV[KI\ITWO[

Q:

$P,JRLQJWRVHHSDWWHUQ GHVFULSWLRQVWKDWDUHVWDWHGDVDSUREOHP DFRQWH[WDQGDVROXWLRQ"

A:

3DWWHUQGHVFULSWLRQVZKLFK\RX·OO W\SLFDOO\ILQGLQSDWWHUQFDWDORJVDUHXVXDOO\ DELWPRUHUHYHDOLQJWKDQWKDW:H·UHJRLQJ WRORRNDWSDWWHUQFDWDORJVLQGHWDLOLQMXVW DPLQXWHWKH\GHVFULEHDORWPRUHDERXWD SDWWHUQ·VLQWHQWDQGPRWLYDWLRQDQGZKHUHLW PLJKWDSSO\DORQJZLWKWKHVROXWLRQGHVLJQ DQGWKHFRQVHTXHQFHV JRRGDQGEDG RI XVLQJLW

Q:

,VLWRND\WRVOLJKWO\DOWHUD SDWWHUQ·VVWUXFWXUHWRILWP\GHVLJQ"2U DP,JRLQJWRKDYHWRJRE\WKHVWULFW GHILQLWLRQ"

A:

2IFRXUVH\RXFDQDOWHULW/LNH GHVLJQSULQFLSOHVSDWWHUQVDUHQRWPHDQW WREHODZVRUUXOHVWKH\DUHJXLGHOLQHVWKDW \RXFDQDOWHUWRILW\RXUQHHGV$V\RX·YH VHHQDORWRIUHDOZRUOGH[DPSOHVGRQ·WILW WKHFODVVLFSDWWHUQGHVLJQV +RZHYHUZKHQ\RXDGDSWSDWWHUQVLW QHYHUKXUWVWRGRFXPHQWKRZ\RXUSDWWHUQ GLIIHUVIURPWKHFODVVLFGHVLJQ²WKDWZD\ RWKHUGHYHORSHUVFDQTXLFNO\UHFRJQL]HWKH SDWWHUQV\RX·UHXVLQJDQGDQ\GLIIHUHQFHV EHWZHHQ\RXUSDWWHUQDQGWKHFODVVLF SDWWHUQ

3DW WH $& UQV 3DW WH '* UQV 3DW WH +1 UQV 3DW WH 25 UQV 3DW WH 6= UQV

Q:

:KHUHFDQ,JHWDSDWWHUQV FDWDORJ"

A:

7KHILUVWDQGPRVWGHILQLWLYH SDWWHUQVFDWDORJLV'HVLJQ3DWWHUQV (OHPHQWVRI5HXVDEOH2EMHFW2ULHQWHG 6RIWZDUHE\*DPPD+HOP-RKQVRQ  9OLVVLGHV $GGLVRQ:HVOH\ 7KLVFDWDORJ OD\VRXWIXQGDPHQWDOSDWWHUQV:H·OOWDON DOLWWOHPRUHDERXWWKLVERRNLQDIHZSDJHV 0DQ\RWKHUSDWWHUQVFDWDORJVDUHVWDUWLQJWR EHSXEOLVKHGLQYDULRXVGRPDLQDUHDVVXFK DVHQWHUSULVHVRIWZDUHFRQFXUUHQWV\VWHPV DQGEXVLQHVVV\VWHPV

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 6

IRUFHVJRDOVFRQVWUDLQWV

*HHN%LWV 5Ia\PMNWZKMJM_Q\PaW] 7KH 'HVLJQ 3DWWHUQ GHILQLWLRQ WHOOV XV WKDW WKHSUREOHPFRQVLVWVRID JRDODQGDVHWRIFRQVWUDLQWV 3DWWHUQV JXUXV KDYH D WHUP IRU WKHVH WKH\ FDOO WKHP IRUFHV :K\" :HOO ZH·UH VXUH WKH\KDYHWKHLURZQUHDVRQVEXWLI \RXUHPHPEHUWKHPRYLHWKHIRUFH ´VKDSHV DQG FRQWUROV WKH 8QLYHUVHµ /LNHZLVH WKH IRUFHV LQ WKH SDWWHUQ GHILQLWLRQVKDSHDQGFRQWUROWKHVROXWLRQ 2QO\ZKHQDVROXWLRQEDODQFHVERWKVLGHVRI WKHIRUFH WKHOLJKWVLGH\RXUJRDODQGWKHGDUN VLGHWKHFRQVWUDLQWV GRZHKDYHDXVHIXOSDWWHUQ 7KLV ´IRUFHµ WHUPLQRORJ\ FDQ EH TXLWH FRQIXVLQJ ZKHQ \RX ILUVW VHH LW LQ SDWWHUQ GLVFXVVLRQV EXW MXVWUHPHPEHUWKDWWKHUHDUHWZRVLGHVRIWKHIRUFH JRDOV DQG FRQVWUDLQWV  DQG WKDW WKH\ QHHG WR EH EDODQFHGRUUHVROYHGWRFUHDWHDSDWWHUQVROXWLRQ'RQ·W OHWWKHOLQJRJHWLQ\RXUZD\DQGPD\WKHIRUFHEHZLWK\RX



&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 7

EHWWHUOLYLQJZLWKSDWWHUQV

,ZLVK,·GNQRZQDERXW SDWWHUQVFDWDORJVDORQJ WLPHDJR

)UDQN

-LP

-RH )UDQN".QTT][QV2QU1¼^MR][\JMMVTMIZVQVOXI\\MZV[JaZMILQVOI NM_IZ\QKTM[PMZMIVL\PMZM -LP";]ZMMIKPXI\\MZVKI\ITWO\ISM[I[M\WN XI\\MZV[IVLLM[KZQJM[ MIKPQVLM\IQTITWVO_Q\PQ\[ZMTI\QWV[PQX\W\PMW\PMZXI\\MZV[ -RH")ZMaW][IaQVO\PMZMQ[UWZM\PIVWVMXI\\MZV[KI\ITWO' -LP"7N KW]Z[M#\PMZMIZMKI\ITWO[NWZN]VLIUMV\IT,M[QOV8I\\MZV[ IVL\PMZMIZMIT[WKI\ITWO[WVLWUIQV[XMKQÅKXI\\MZV[TQSM-2* XI\\MZV[ )UDQN"?PQKPKI\ITWOIZMaW]TWWSQVOI\' -LP"


Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 8

XVLQJDSDWWHUQFDWDORJ

)UDQN"?W_\PI\¼[MIZ\P[PI\\MZQVO·IVIUM 1UIOQVM\PI\ -LP"0WTLWV.ZIVS#IK\]ITTa\PMVIUMQ[ZMITTaQUXWZ\IV\?PMV_MPI^MIVIUM NWZIXI\\MZVQ\OQ^M[][I_Ia\W\ITSIJW]\\PMXI\\MZV#aW]SVW_\PI\_PWTM[PIZML ^WKIJ]TIZa\PQVO )UDQN"7SIaWSIa1_I[R][\SQLLQVO/WWV_PI\MT[MQ[\PMZM' -LP"?MTTTQSM1_I[[IaQVOM^MZaXI\\MZVNWTTW_[I\MUXTI\M.WZMIKPXI\\MZV_MPI^M IVIUMIVLINM_[MK\QWV[\PI\\MTT][UWZMIJW]\\PMXI\\MZV.WZQV[\IVKM\PMZMQ[IV 1V\MV\[MK\QWV\PI\LM[KZQJM[_PI\\PMXI\\MZVQ[SQVLWN TQSMILMÅVQ\QWV
&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 9

EHWWHUOLYLQJZLWKSDWWHUQV

$OOSDWWHUQVLQDFDWDORJVWDUW ZLWKDQDPH7KHQDPHLVDYLWDO SDUWRIDSDWWHUQZLWKRXWD JRRGQDPHDSDWWHUQFDQ·WEHFRPH SDUWRIWKHYRFDEXODU\WKDW\RX VKDUHZLWKRWKHUGHYHORSHUV 7KHPRWLYDWLRQJLYHV\RXDFRQFUHWH VFHQDULRWKDWGHVFULEHVWKHSUREOHPDQG KRZWKHVROXWLRQVROYHVWKHSUREOHP

;16/4-<76

7JRMK\+ZMI\QWVIT

1V\MV\ -\ITQY]I\^MTM[\WMV\TWZMNM]Q[IKQTTIWZX MZKQ\I\Y]I\VWV[MY]IUQTMII\VQUVW[L WMVQU Y]QMZI\QWM`MINIKQ\M\[MY]Q[LQWV]\I\^ WTWZMUIOVQ[Q

5W\Q^I\QWV -\ITQY]I\^MTM[\WMV\TWZMNM]Q[IKQTTIWZX MZKQ\I\Y]I\VWV[MY]IUQTMII\VQUVW[L WMVQU Y]QMZI\QWM`MINIKQ\M\[MY]Q[LQWV]\I\^ WTWZMUIOVQ[Q:]LUWLWTWZMLQ\TIWZMM\I ]OQIUQZQT MTLQXQ[LQWV[MY]Q[LQOVQJPM]UUaVQJPM[ MY]I\,]Q[V]TX]\MUQXQ[QUM[MK\MKWV]TT] \_Q[[Q 7[VQ[Q[[MVQUM\T]U[IVLZMLWKWVMT]\X I\]MZWKWZMZKQXQ[I]O]MLWTWZMM\T]X\I\IU M\^MT Q][KQL]V\LQOVINM]O]ML]V\V]UM\]UUa VQUL]QJTIWZ[MY]I\V]U^MTM\]MUIOVI I]OQI\ )TQY]Q[VWV[M^MTM`MZ[MUQVQ[[MY]Q[LWL WTWZ\Q[ILUIOVQ\[QUbbZQTT]\QX[]UUWLW TWZMU LQOVQJPM]O]MZ[MY]IUMIIUY]I\MUIOV QUQTTIUbbZQ\ILUIOVINM]NIKQVQ\LMTQ\] \

)XXTQKIJQTQ\a ,]Q[V]TX]\MUQXQ[QUM[MK\MKWV]TT]\_Q[[QK\MUILUIOVIITQY]QJTIUM\KWV]TTIVLZM LWTWZMUIOVINM]Q[VW[ITQ\ILUIOVQUY]  I\MUWLWTWZM^MV\T]\T]X\I\XZI\,]QJTI WZMUQV MINM]QXQ\QVOMVQ\TIWZMUIOVQJPMVQI\_Q[ Q[[MK\MM\[][KQTTIILUQVKQVKQJTIULWTWZX MZKQTQ\ QZQ\KWV[MLWTWZMLWTWZMM\^MZKQMVQ[MVQ\ QXMTM[MY]Q[T]\ILM[MK\MUQVOMIKWVMZW [I]\MU LQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZ

;\Z]K\]ZM

7KHDSSOLFDELOLW\GHVFULEHVVLWXDWLRQV LQZKLFKWKHSDWWHUQFDQEHDSSOLHG

6LQJOHWRQ VWDWLFXQLTXH,QVWDQFH 2WKHUXVHIXO6LQJOHWRQGDWD VWDWLFJHW,QVWDQFH 2WKHUXVHIXO6LQJOHWRQPHWKRGV

8IZ\QKQXIV\[

ODVVHVDQG 7KHSDUWLFLSDQWVDUHWKHFVVH FWLRQ REMHFWVLQWKHGHVLJQ7KL HVD QG LOLWL QVLE HVSR LUU WKH  V GHVFULEH Q WHU SDW UROHVLQWKH

7KLVLVWKHSDWWHUQ·V FODVVLILFDWLRQRU FDWHJRU\:H·OOWDON DERXWWKHVHLQD IHZSDJHV 7KHLQWHQWGHVFULEHVZKDW WKHSDWWHUQGRHVLQDVKRUW VWDWHPHQW
,]Q[V]TX]\MUQXQ[QUM[MK\MKWV]TT]\_Q[[Q -K\MUILUIOVIITQY]QJTIUM\KWV]TTIVLZ LWTWZMUIOVINM]Q[VW[ITQ\ILUIOVQUY] M I\MUWLWTWZM^MV\T]\T]X\I\XZI\,]QJTI WZMUQV MINM]QXQ\QVOMVQ\TIWZMUIOVQJPMVQI\_Q[ Q[[MK\MM\[][KQTTIILUQVKQVKQJTIULWTWZ XMZKQTQ\ QZQ\KWV[MLWTWZMLWTWZMM\^MZKQMVQ[MVQ\ QXMTM[MY]Q[T]\ILM[MK\MUQVOMIKWVMZW [I]\MU LQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZ ƒ )LWTWZMLWTWZMM\^MZKQMVQ[MVQ\QXMTM[M Y]Q[T]\ILM[MK\MUQVOMIKWVMZW[I]\MU LQIU VWV]TT]\XI\Q[[Q[UWLQOVQJPMZ

 

  

·)NM]Q[VW[ITQ\ILUIOVQUY]I\MUWL WTWZM^MV\T]\T]X\I\XZI\,]QJTIWZMUQV MI NM]QXQ\QVOMVQ\TIWZMUIOVQJPMVQI\_Q[Q[ [MK ·)LUIOVQUY]I\MUWLWTWZM^MV\T]\T]X \I\XZI\,]QJTIWZMUQVMINM]QXQ\QVOMVQ\

7KHVWUXFWXUHSURYLGHVD GLDJUDPLOOXVWUDWLQJWKH UHODWLRQVKLSVDPRQJWKH FODVVHVWKDWSDUWLFLSDWH LQWKHSDWWHUQ

+WTTIJWZI\QWV[ ƒ .M]QXQ\QVOMVQ\TIWZMUIOVQJPMVQI\_Q[Q[ [MK\MM\[][KQTTIILUQVKQVKQJTIULWTWZX MZKQTQ\ QZQ\KWV[MLWTWZM

+WV[MY]MVKM[

7KHFRQVHTXHQFHVGHVFULEHWKH HIIHFWVWKDWXVLQJWKLVSDWWHUQ PD\KDYHJRRGDQGEDG

,]Q[V]TX]\MUQXQ[QUM[MK\MKWV]TT]\_Q[[Q          

-K\MUILUIOVIITQY]QJTIUM\KWV]TTIVLZ M" ,WTWZMLWTWZMM\^MZKQMVQ[MVQ\QXMTM[ MY]Q[T]\ILM[MK\MUQVOMIKWVMZW[I]\MU  LQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZ 5WLWTWZM^MV\T]\T]X\I\XZI\,]QJTI WZMUQVMINM]QXQ\QVOMVQ\TIWZMUIOVQJP  MVQI\_Q[Q[[MK\MM\[][KQTTIILUQVKQVKQ JTIULWTWZXMZKQTQ\QZQ\KWV[MLWTWZMLWTW ZM M\^MZKQMVQ[MVQ\QXMTM[MY]Q[T]\ILM[M K\MU ,WTWZMLWTWZMM\^MZKQMVQ[MVQ\QXMTM[ MY]Q[T]\ILM[MK\MUQVOMIKWVMZW[I]\MU  LQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZ

&ROODERUDWLRQVWHOOVXV KRZWKHSDUWLFLSDQWVZRUN WRJHWKHULQWKHSDWWHUQ

5WLWTWZM^MV\T]\T]X\I\XZI\,]QJTI WZMUQVMINM]QXQ\QVOMVQ\TIWZMUIOVQJP  MVQI\_Q[Q[[MK\MM\[][KQTTIILUQVKQVKQ JTIULWTWZXMZKQTQ\QZQ\KWV[MLWTWZMLWTW ZM M\^MZKQMVQ[MVQ\QXMTM[MY]Q[T]\ILM[M K\MU

1UXTMUMV\I\QWV;IUXTM+WLM

,PSOHPHQWDWLRQSURYLGHV WHFKQLTXHV\RXQHHGWRXVHZKHQ LPSOHPHQWLQJWKLVSDWWHUQDQG LVVXHV\RXVKRXOGZDWFKRXWIRU

,],]Q[V]TX]\MUQXQ[QUM[MK\MKWV]TT]\_ Q[[Q-K\MUILUIOVIITQY]QJTIUM\KWV]TTI LWTWZMUIOVINM]Q[VW[ITQ\ILUIOVQUY] VLZM I\MUWLWTWZM^MV\T]\T]X\I\XZI\,]QJTI WZMUQV MINM]QXQ\QVOMVQ\TIWZMUIOVQJPMVQI\_Q[ Q[[MK\MM\[][KQTTIILUQVKQVKQJTIULWTWZ XMZKQTQ\ QZQ\KWV[MLWTWZMLWTWZMM\^MZKQMVQ[MVQ\ QXMTM[MY]Q[T]\ILM[MK\MUQVOMIKWVMZW [I]\MU LQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZ SXEOLFFODVV6LQJOHWRQ^

SULYDWHVWDWLF6LQJOHW RQXQLTXH,QVWDQFH  RWKHUXVHIXOLQVWDQ FHYDULDEOHVKHUH  SULYDWH6LQJOHWRQ ^`  SXEOLFVWDWLFV\QFKURQ L]HG6LQJOHWRQJHW,QVWDQFH ^ LI XQLTXH,QVWDQFH  QXOO ^ XQLTXH,QVWDQFH  QHZ6LQJOHWRQ  ` UHWXUQXQLTXH,QVWD QFH `  RWKHUXVHIXOPHWKRG VKHUH `

6W[ITQ\ILUIOVQUY]I\MUWLWTWZM^MV\T ]\T]X\I\XZI\,]QJTIWZMUQVMINM]QXQ\QV TIWZMUIOVQJPMVQI\_Q[Q[[MK\MM\[][KQTTII OMVQ\ LUQVKQVKQJTIULWTWZXMZKQTQ\QZQ\KWV[ML LWTWZMM\^MZKQMVQ[MVQ\QXMTM[MY]Q[T]\IL WTWZM M[MK\MUQVOMIKWVMZW[I]\MULQIUVWV] \XI\Q[[Q[UWLQOVQJPMZ TT]

.QRZQXVHVGHVFULEHV H[DPSOHVRIWKLVSDWWHUQ IRXQGLQUHDOV\VWHPV

6DPSOHFRGH SURYLGHVFRGH IUDJPHQWVW W PLJKWKHOSZLKD WK \RXULPSOHPHQWD WLRQ

3VW_V=[M[ ,],]Q[V]TX]\MUQXQ[QUM[MK\MKWV]TT]\_ Q[[Q-K\MUILUIOVIITQY]QJTIUM\KWV]TTI LWTWZMUIOVINM]Q[VW[ITQ\ILUIOVQUY] VLZM I\MUWLWTWZM^MV\T]\T]X\I\XZI\,]QJTI WZMUQV MINM]QXQ\QVOMVQ\TIWZMUIOVQJPMVQI\_Q[ Q[[MK\MM\[][KQTTIILUQVKQVKQJTIULWTWZ XMZKQTQ\ QZQ\KWV[MLWTWZMLWTWZMM\^MZKQMVQ[MVQ\ QXMTM[MY]Q[T]\ILM[MK\MUQVOMIKWVMZW [I]\MU LQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZ ,],]Q[V]TX]\MUQXQ[QUM[MK\MKWV]TT]\_ Q[[Q-K\MUILUIOVIITQY]QJTIUM\KWV]TTI LWTWZMUIOVINM]Q[VW[ITQ\ILUIOVQUY] VLZM I\MUWLWTWZM^MV\T]\T]X\I\XZI\,]QJTI WZMUQV MINM]QXQ\QVOMVQ\TIWZMUIOVQJPMVQI\_Q[ Q[[MK\MM\[][KQTTIILUQVKQVKQJTIULWTWZ XMZKQTQ\ QZQ\KWV[MLWTWZMLWTWZMM\^MZKQMVQ[MVQ\ QXMTM[MY]Q[T]\ILM[MK\MUQVOMIKWVMZW [I]\MU LQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZITQ\ ILUIOVQUY]I\MUWLWTWZM^MV\T]\T]X\I\ XZI\ ,]QJTIWZMUQVMINM]QXQ\QVOMVQ\TIWZMU IOVQJPMVQI\_Q[Q[[MK\MM\[][KQTTIILUQVK QVKQJTIU LWTWZXMZKQTQ\QZQ\KWV[MLWTWZMLWTWZMM\ ^MZKQMVQ[MVQ\QXMTM[MY]Q[T]\ILM[MK\MUQ VOMIKWV MZW[I]\MULQIUVWV]TT]\XI\Q[[Q[UWLQOV QJPMZ

:MTI\ML8I\\MZV[ -TM[MY]Q[T]\ILM[MK\MUQVOMIKWVMZW[I ]\MULQIUVWV]TT]\XI\Q[[Q[UWLQOVQJPMZ ITQ\ ILUIOVQUY]I\MUWLWTWZM^MV\T]\T]X\I\ XZI\,]QJTIWZMUQVMINM]QXQ\QVOMVQ\TI UIOVQJPMVQI\_Q[Q[[MK\MM\[][KQTTIILU WZM QVKQVKQJTIULWTWZXMZKQTQ\QZQ\KWV[MLWTWZ MLWTWZM M\^MZKQMVQ[MVQ\QXMTM[MY]Q[T]\ILM[MK\M UQVOMIKWVMZW[I]\MULQIUVWV]TT]\X I\Q[[ Q[UWLQOVQJPMZ

5HODWHGSDWWHUQV GHVFULEHVWKH UHODWLRQVKLSEHWZHHQ WKLVSDWWHUQDQGRWKHUV

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 10

GLVFRYHULQJ\RXURZQSDWWHUQV

there are no

Dumb Questions

Q:

,VLWSRVVLEOHWRFUHDWH\RXURZQ'HVLJQ 3DWWHUQV"2ULVWKDWVRPHWKLQJ\RXKDYHWREHD ´SDWWHUQVJXUXµWRGR"

A:

)LUVWUHPHPEHUWKDWSDWWHUQVDUHGLVFRYHUHG QRWFUHDWHG6RDQ\RQHFDQGLVFRYHUD'HVLJQ3DWWHUQ DQGWKHQDXWKRULWVGHVFULSWLRQKRZHYHULW·VQRWHDV\ DQGGRHVQ·WKDSSHQTXLFNO\QRURIWHQ%HLQJD´SDWWHUQV ZULWHUµWDNHVFRPPLWPHQW
Q: A:

,·PJDPHKRZGR,JHWVWDUWHG"

6R\RXZDQQDEHDGHVLJQ SDWWHUQVVWDU" :HOOOLVWHQQRZWRZKDW,WHOO *HW\RXUVHOIDSDWWHUQV FDWDORJ 7KHQWDNHVRPHWLPHDQG OHDUQLWZHOO

/LNHDQ\GLVFLSOLQHWKHPRUH\RXNQRZWKH EHWWHU6WXG\LQJH[LVWLQJSDWWHUQVZKDWWKH\GRDQG KRZWKH\UHODWHWRRWKHUSDWWHUQVLVFUXFLDO1RWRQO\ GRHVLWPDNH\RXIDPLOLDUZLWKKRZSDWWHUQVDUHFUDIWHG LWSUHYHQWV\RXIURPUHLQYHQWLQJWKHZKHHO)URPWKHUH \RX·OOZDQWWRVWDUWZULWLQJ\RXUSDWWHUQVRQSDSHUVR\RX FDQFRPPXQLFDWHWKHPWRRWKHUGHYHORSHUVZH·UHJRLQJ WRWDONPRUHDERXWKRZWRFRPPXQLFDWH\RXUSDWWHUQVLQ DELW,I\RX·UHUHDOO\LQWHUHVWHG\RX·OOZDQWWRUHDGWKH VHFWLRQWKDWIROORZVWKHVH4 $V

$QGZKHQ\RX·YHJRW\RXU GHVFULSWLRQULJKW

Q: A:

7KHQ\RX·OONQRZLW·VD SDWWHUQDOULJKW

+RZGR,NQRZZKHQ,UHDOO\KDYHDSDWWHUQ"

$QGWKUHHGHYHORSHUVDJUHH ZLWKRXWDILJKW

7KDW·VDYHU\JRRGTXHVWLRQ\RXGRQ·WKDYHD SDWWHUQXQWLORWKHUVKDYHXVHGLWDQGIRXQGLWWRZRUN ,QJHQHUDO\RXGRQ·WKDYHDSDWWHUQXQWLOLWSDVVHVWKH ´5XOHRI7KUHHµ7KLVUXOHVWDWHVWKDWDSDWWHUQFDQEH FDOOHGDSDWWHUQRQO\LILWKDVEHHQDSSOLHGLQDUHDOZRUOG VROXWLRQDWOHDVWWKUHHWLPHV



7RWKHWXQHRI´6R\RXZDQQD EHD5RFN·Q5ROO6WDUµ

&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 11

EHWWHUOLYLQJZLWKSDWWHUQV

;WaW]_IVVIJMI,M[QOV8I\\MZV[_ZQ\MZ ,WaW]ZPWUM_WZSAW]VMML\WJM_MTT^MZ[MLQV\PM M`Q[\QVOXI\\MZV[JMNWZMaW]KIVKZMI\MIVM_WVM5W[\XI\\MZV[ \PI\IXXMIZ\WJMVM_IZMQVNIK\R][\^IZQIV\[WN M`Q[\QVO XI\\MZV[*a[\]LaQVOXI\\MZV[aW]JMKWUMJM\\MZI\ZMKWOVQbQVO \PMUIVLaW]TMIZV\WZMTI\M\PMU\WW\PMZXI\\MZV[
8VHRQHRIWKHH[LVWLQJ SDWWHUQWHPSODWHVWR GHILQH\RXUSDWWHUQ$ ORWRIWKRXJKWKDVJRQH LQWRWKHVHWHPSODWHVDQG RWKHUSDWWHUQXVHUVZLOO UHFRJQL]HWKHIRUPDW

6IUM 1V \M V\ QWV 5W\ Q^ I\ Q\a )XXTQKI JQT M ;\ Z]K\ ]Z [ V\ XI QKQ Z\ 8I \QW V[ +W TTI JW ZI  

,WV¼\NWZOM\\PMZ]TMWN \PZMM:MUMUJMZ]VTM[[aW]Z XI\\MZVPI[JMMV[]KKM[[N]TTaIXXTQMLQV\PZMMZMIT_WZTL [WT]\QWV[Q\KIV¼\Y]ITQNaI[IXI\\MZV


Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 12

ZKRGRHVZKDW"

5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"

3DWWHUQ

Decorator State Iterator Facade Strategy Proxy Factory Method Adapter Observer Template Method Composite Singleton Abstract Factory Command 

'HVFULSWLRQ

Wraps an object and provides a different interface to it. Subclasses decide how to implement steps in an algorithm. Subclasses decide which concrete classes to create. Ensures one and only object is created. Encapsulates interchangeable behaviors and uses delegation to decide which one to use. Clients treat collections of objects and individual objects uniformly. Encapsulates state-based behaviors and uses delegation to switch between behaviors. Provides a way to traverse a collection of objects without exposing its implementation. SimpliÞes the interface of a set of classes. Wraps an object to provide new behavior. Allows a client to create families of objects without specifying their concrete classes. Allows objects to be notiÞed when state changes. Wraps an object to control access to it. Encapsulates a request as an object.

&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 13

EHWWHUOLYLQJZLWKSDWWHUQV

7 ZOIVQbQVO,M[QOV8I\\MZV[ )[\PMV]UJMZWN LQ[KW^MZML,M[QOV8I\\MZV[OZW_[Q\UISM[[MV[M\WXIZ\Q\QWV\PMUQV\WKTI[[QÅKI\QWV[[W \PI\_MKIVWZOIVQbM\PMUVIZZW_W]Z[MIZKPM[\WI[]J[M\WN ITT,M[QOV8I\\MZV[IVLUISMKWUXIZQ[WV[ _Q\PQVIOZW]XWN XI\\MZV[ 1VUW[\KI\ITWO[aW]¼TTÅVLXI\\MZV[OZW]XMLQV\WWVMWN INM_KTI[[QÅKI\QWV[KPMUM[
6KDUSHQ \RXU SHQFLO $EVWUDFW)DFWRU\

2EVHUYHU

&RPSRVLWH

'HFRUDWRU

6WUDWHJ\ $GDSWHU

6WDWH

6LQJOHWRQ

)DFWRU\0HWKRG

&RPPDQG

7HPSODWH0HWKRG

3UR[\

,WHUDWRU

2EADEACHCATEGORYDESCRIPTIONANDSEE IFYOUCANCORRALTHESEPATTERNSINTOTHEIR CORRECTCATEGORIES4HISISATOUGHY"UT GIVEITYOURBESTSHOTANDTHENCHECKOUT THEANSWERSONTHENEXTPAGE

)DFDGH

WWHUQVEHORQJV (DFKRIWKHVHSD DWHJRULHV F VH KR W LQRQHRI $Q\SDWWHUQWKDWLVD%HKDYLRUDO 3DWWHUQLVFRQFHUQHGZLWKKRZ FODVVHVDQGREMHFWVLQWHUDFWDQG GLVWULEXWHUHVSRQVLELOLW\

&UHDWLRQDOSDWWHUQVLQYROYH REMHFWLQVWDQWLDWLRQDQGDOO SURYLGHDZD\WRGHFRXSOHDFOLHQW IURPWKHREMHFWVLWQHHGVWR LQVWDQWLDWH

+ZMI\ QWVIT

*MPI^QWZIT

;\Z]K\]ZIT

6WUXFWXUDOSDWWHUQVOHW\RX FRPSRVHFODVVHVRUREMHFWV LQWRODUJHUVWUXFWXUHV

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 14

SDWWHUQFDWHJRULHV

6ROXWLRQ3DWWHUQ&DWHJRULHV 0MZM¼[\PMOZW]XQVOWN XI\\MZV[QV\WKI\MOWZQM[AW]XZWJIJTaNW]VL\PMM`MZKQ[MLQNÅK]T\ JMKI][MUIVaWN \PMXI\\MZV[[MMUTQSM\PMaKW]TLÅ\QV\WUWZM\PIVWVMKI\MOWZa,WV¼\_WZZa M^MZaWVMPI[\ZW]JTMÅO]ZQVOW]\\PMZQOP\KI\MOWZQM[NWZ\PMXI\\MZV[

&UHDWLRQDOSDWWHUQVLQYROYH REMHFWLQVWDQWLDWLRQDQGDOO SURYLGHDZD\WRGHFRXSOHDFOLHQW IURPWKHREMHFWVLWQHHGVWR LQVWDQWLDWH

$Q\SDWWHUQWKDWLVD%HKDYLRUDO 3DWWHUQLVFRQFHUQHGZLWKKRZ FODVVHVDQGREMHFWVLQWHUDFWDQG GLVWULEXWHUHVSRQVLELOLW\

+ZMI\ QWVIT

*MPI^QWZIT

0HGLDWRU 9LVLWRU ,WHUDWRU &RPPDQG 0HPHQWR ,QWHUSUHWHU 2EVHUYHU &KDLQRI5HVSRQVLELOLW\ 6WDWH 6WUDWHJ\

6LQJOHWRQ

%XLOGHU 3URWRW\SH

7HPSODWH0HWKRG

$EVWUDFW)DFWRU\ )DFWRU\0HWKRG

;\Z]K\]ZIT

3UR[\

'HFRUDWRU &RPSRVLWH )O\ZHLJKW

)DFDGH %ULGJH

$GDSWHU

:H·YHJRWDIHZSDWWHUQV LQJUH\ WKDW\RXKDYHQ·W VHHQ\HW
6WUXFWXUDOSDWWHUQVOHW\RX FRPSRVHFODVVHVRUREMHFWV LQWRODUJHUVWUXFWXUHV



&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 15

EHWWHUOLYLQJZLWKSDWWHUQV 8I\\MZV[IZMWN\MVKTI[[QÅMLJaI[MKWVLI\\ZQJ]\M"_PM\PMZWZVW\ \PMXI\\MZVLMIT[_Q\PKTI[[M[WZWJRMK\[" 2EMHFWSDWWHUQVGHVFULEH UHODWLRQVKLSVEHWZHHQ REMHFWVDQGDUHSULPDULO\ GHÀQHGE\FRPSRVLWLRQ 5HODWLRQVKLSVLQREMHFW SDWWHUQVDUHW\SLFDOO\ FUHDWHGDWUXQWLPHDQG DUHPRUHG\QDPLFDQG ÁH[LEOH

&ODVVSDWWHUQVGHVFULEHKRZUHODWLRQVKLSVEHWZHHQ FODVVHVDUHGHÀQHGYLDLQKHULWDQFH5HODWLRQVKLSVLQ FODVVSDWWHUQVDUHHVWDEOLVKHGDWFRPSLOHWLPH

+TI[[

7JRMK\

7HPSODWH0HWKRG )DFWRU\0HWKRG

9LVLWRU ,WHUDWRU &RPPDQG 0HPHQWR )DFDGH 2EVHUYHU &KDLQRI5HVSRQVLELOLW\ %ULGJH 0HGLDWRU 6WDWH 3URWRW\SH )O\ZHLJKW &RPSRVLWH

$GDSWHU

'HFRUDWRU 3UR[\ 6WUDWHJ\

,QWHUSUHWHU

$EVWUDFW)DFWRU\

%XLOGHU 6LQJOHWRQ

Q:

$UHWKHVHWKHRQO\FODVVLILFDWLRQ VFKHPHV"

there are no

Dumb Questions

A:

A:

Q:

Q:

1RRWKHUVFKHPHVKDYHEHHQ SURSRVHG6RPHRWKHUVFKHPHVVWDUW ZLWKWKHWKUHHFDWHJRULHVDQGWKHQDGG VXEFDWHJRULHVOLNH´'HFRXSOLQJ3DWWHUQVµ
,WFHUWDLQO\JLYHV\RXDIUDPHZRUN IRUWKHVDNHRIFRPSDULVRQ%XWPDQ\ SHRSOHDUHFRQIXVHGE\WKHFUHDWLRQDO VWUXFWXUDODQGEHKDYLRUDOFDWHJRULHVRIWHQ DSDWWHUQVHHPVWRILWLQWRPRUHWKDQRQH FDWHJRU\7KHPRVWLPSRUWDQWWKLQJLVWR NQRZWKHSDWWHUQVDQGWKHUHODWLRQVKLSV DPRQJWKHP:KHQFDWHJRULHVKHOSXVH WKHP

:K\LVWKH'HFRUDWRU3DWWHUQLQ WKHVWUXFWXUDOFDWHJRU\",ZRXOGKDYH WKRXJKWRIWKDWDVDEHKDYLRUDOSDWWHUQ DIWHUDOOLWDGGVEHKDYLRU

D 1RWLFHWKHUH·MHVFW RE H RU ORWP SDWWHUQVWKDQVQ FODVVSDWWHU

A:




Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 16

SDWWHUQFDWHJRULHV

0DVWHUDQG6WXGHQW 0DVWHU*UDVVKRSSHU\RXORRNWURXEOHG 6WXGHQW


&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 17

EHWWHUOLYLQJZLWKSDWWHUQV

6WXGHQW,VHHVR,PLJKWVD\WKDWWKH$GDSWHUSDWWHUQ LVWKHEHVWVWUXFWXUDOSDWWHUQIRUFKDQJLQJDQREMHFW¶V LQWHUIDFH 0DVWHU
\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 18

WKLQNLQJLQSDWWHUQV



3MMXQ\[QUXTM31;; .QZ[\WN ITT_PMVaW]LM[QOV[WT^M\PQVO[QV\PM[QUXTM[\_IaXW[[QJTMAW]ZOWIT[PW]TLJM[QUXTQKQ\aVW\ ¹PW_KIV1IXXTaIXI\\MZV\W\PQ[XZWJTMUº,WV¼\NMMTTQSMaW]IZMV¼\I[WXPQ[\QKI\MLLM^MTWXMZQN aW] LWV¼\][MIXI\\MZV\W[WT^MIXZWJTMU7\PMZLM^MTWXMZ[_QTTIXXZMKQI\MIVLILUQZM\PM[QUXTQKQ\aWN aW]Z LM[QOV
,M[QOV8I\\MZV[IZMV¼\IUIOQKJ]TTM\#QVNIK\\PMa¼ZMVW\M^MVIJ]TTM\ 8I\\MZV[I[aW]SVW_IZMOMVMZIT[WT]\QWV[\WZMK]ZZQVOXZWJTMU[8I\\MZV[IT[WPI^M\PMJMVMÅ\WN JMQVO _MTT\M[\MLJaTW\[WN LM^MTWXMZ[;W_PMVaW][MMIVMMLNWZWVMaW]KIV[TMMX_MTTSVW_QVOUIVa LM^MTWXMZ[PI^MJMMV\PMZMJMNWZMIVL[WT^ML\PMXZWJTMU][QVO[QUQTIZ\MKPVQY]M[ 0W_M^MZXI\\MZV[IZMV¼\IUIOQKJ]TTM\AW]KIV¼\XT]OWVMQVKWUXQTMIVL\PMV\ISMIVMIZTaT]VKP
AW]SVW_aW]VMMLIXI\\MZV_PMV )P\PMUW[\QUXWZ\IV\Y]M[\QWV"_PMVLWaW]][MIXI\\MZV')[aW]IXXZWIKPaW]ZLM[QOVQV\ZWL]KMI XI\\MZV_PMVaW]¼ZM[]ZMQ\ILLZM[[M[IXZWJTMUQVaW]ZLM[QOV1N I[QUXTMZ[WT]\QWVUQOP\_WZSOQ^M\PI\ KWV[QLMZI\QWVJMNWZMaW]KWUUQ\\W][QVOIXI\\MZV 3VW_QVO_PMVIXI\\MZVIXXTQM[Q[_PMZMaW]ZM`XMZQMVKMIVLSVW_TMLOMKWUMQV7VKMaW]¼ZM[]ZMI [QUXTM[WT]\QWV_QTTVW\UMM\aW]ZVMML[aW][PW]TLKWV[QLMZ\PMXZWJTMUITWVO_Q\P\PM[M\WN KWV[\ZIQV\[ ]VLMZ_PQKP\PM[WT]\QWV_QTTVMML\WWXMZI\M¸\PM[M_QTTPMTXaW]UI\KPaW]ZXZWJTMU\WIXI\\MZV1N  aW]¼^MOW\IOWWLSVW_TMLOMWN XI\\MZV[aW]UIaSVW_WN IXI\\MZV\PI\Q[IOWWLUI\KP7\PMZ_Q[M []Z^MaXI\\MZV[\PI\TWWSTQSM\PMaUQOP\[WT^M\PMXZWJTMU


&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 19

EHWWHUOLYLQJZLWKSDWWHUQV


:MNIK\WZQVO\QUMQ[8I\\MZV[\QUM :MNIK\WZQVOQ[\PMXZWKM[[WN UISQVOKPIVOM[\WaW]ZKWLM\WQUXZW^M \PM_IaQ\Q[WZOIVQbML

&HQWHU\RXUWKLQNLQJ RQGHVLJQQRWRQSDWWHUQV 8VHSDWWHUQVZKHQWKHUH LVDQDWXUDOQHHGIRUWKHP ,IVRPHWKLQJVLPSOHUZLOO ZRUNWKHQXVHLW

1NaW]LWV¼\VMMLQ\VW_LWV¼\LWQ\VW_ ,M[QOV8I\\MZV[IZMXW_MZN]TIVLQ\¼[MI[a\W[MMITTSQVL[WN _Ia[ \PMaKIVJM][MLQVaW]ZK]ZZMV\LM[QOV[,M^MTWXMZ[VI\]ZITTaTW^M\W KZMI\MJMI]\QN]TIZKPQ\MK\]ZM[\PI\IZMZMILa\W\ISMWVKPIVOMNZWUIVa LQZMK\QWV :M[Q[\\PM\MUX\I\QWV1N aW]PI^MIXZIK\QKITVMML\W[]XXWZ\KPIVOMQV ILM[QOV\WLIaOWIPMILIVLMUXTWaIXI\\MZV\WPIVLTM\PI\KPIVOM 0W_M^MZQN \PMZMI[WVQ[WVTaPaXW\PM\QKITLWV¼\ILL\PMXI\\MZVQ\Q[ WVTaOWQVO\WILLKWUXTM`Q\a\WaW]Z[a[\MUIVLaW]UQOP\VM^MZVMMLQ\ \RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 20

SDWWHUQVHPHUJHQDWXUDOO\

0DVWHUDQG6WXGHQW 0DVWHU*UDVVKRSSHU\RXULQLWLDOWUDLQLQJLVDOPRVW FRPSOHWH:KDWDUH\RXUSODQV" 6WXGHQW,¶PJRLQJWR'LVQH\ODQG$QGWKHQ,¶P JRLQJWRVWDUWFUHDWLQJORWVRIFRGHZLWKSDWWHUQV 0DVWHU:KRDKROGRQ1HYHUXVH\RXUELJJXQVXQOHVV\RXKDYHWR 6WXGHQW:KDWGR\RXPHDQ0DVWHU"1RZWKDW,¶YHOHDUQHGGHVLJQ SDWWHUQVVKRXOGQ¶W,EHXVLQJWKHPLQDOOP\GHVLJQVWRDFKLHYH PD[LPXPSRZHUÀH[LELOLW\DQGPDQDJHDELOLW\" 0DVWHU1RSDWWHUQVDUHDWRRODQGDWRROWKDWVKRXOGRQO\EHXVHG ZKHQQHHGHG


&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 21

EHWWHUOLYLQJZLWKSDWWHUQV

AW]Z5QVLWV8I\\MZV[

A88XC8

7KH%HJLQQHUXVHVSDWWHUQVHYHU\ZKHUH7KLVLVJRRG WKHEHJLQQHUJHWVORWVRIH[SHULHQFHZLWKDQGSUDFWLFHXVLQJ SDWWHUQV7KHEHJLQQHUDOVRWKLQNV´7KHPRUHSDWWHUQV,XVH WKHEHWWHUWKHGHVLJQµ7KHEHJLQQHUZLOOOHDUQWKLVLVQRWVR WKDWDOOGHVLJQVVKRXOGEHDVVLPSOHDVSRVVLEOH&RPSOH[LW\ DQGSDWWHUQVVKRXOGRQO\EHXVHGZKHUHWKH\DUHQHHGHGIRU SUDFWLFDOH[WHQVLELOLW\

´,QHHGDSDWWHUQIRU+HOOR:RUOGµ

$VOHDUQLQJSURJUHVVHVWKH,QWHUPHGLDWHPLQG VWDUWVWRVHHZKHUHSDWWHUQVDUHQHHGHGDQG ZKHUHWKH\DUHQ·W7KHLQWHUPHGLDWHPLQGVWLOOWULHV WRILWWRRPDQ\VTXDUHSDWWHUQVLQWRURXQGKROHVEXW DOVREHJLQVWRVHHWKDWSDWWHUQVFDQEHDGDSWHGWR ILWVLWXDWLRQVZKHUHWKHFDQRQLFDOSDWWHUQGRHVQ·WILW

089X C8

´0D\EH,QHHGD6LQJOHWRQKHUHµ

.8XC8

´7KLVLVDQDWXUDOSODFHIRU'HFRUDWRUµ

7KH=HQPLQGLVDEOHWRVHHSDWWHUQVZKHUHWKH\ILWQDWXUDOO\ 7KH=HQPLQGLVQRWREVHVVHGZLWKXVLQJSDWWHUQVUDWKHULW ORRNVIRUVLPSOHVROXWLRQVWKDWEHVWVROYHWKHSUREOHP7KH=HQ PLQGWKLQNVLQWHUPVRIWKHREMHFWSULQFLSOHVDQGWKHLUWUDGHRIIV :KHQDQHHGIRUDSDWWHUQQDWXUDOO\DULVHVWKH=HQPLQGDSSOLHV LWNQRZLQJZHOOWKDWLWPD\UHTXLUHDGDSWDWLRQ7KH=HQPLQG DOVRVHHVUHODWLRQVKLSVWRVLPLODUSDWWHUQVDQGXQGHUVWDQGVWKH VXEWOHWLHVRIGLIIHUHQFHVLQWKHLQWHQWRIUHODWHGSDWWHUQV7KH =HQPLQGLVDOVRD%HJLQQHUPLQG³LWGRHVQ·WOHWDOOWKDWSDWWHUQ NQRZOHGJHRYHUO\LQIOXHQFHGHVLJQGHFLVLRQV

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 22

ZKHQQRWWRXVHSDWWHUQV

8"3/*/(0WFSVTFPGEFTJHOQBUUFSOTDBOMFBEUPDP EFUIB

U JTEPXOSJHIUPWFSFOHJOFFSFE"MXBZTHPXJUIU TPMVUJPOUIBUEPFTUIFKPCBOEJOUSPEVDFQBUUFSOTIFTJNQMFTU XIFSFUIFOFFE FNFSHFT

:DLWDPLQXWH,·YH UHDGWKLVHQWLUHERRNDQGQRZ \RX·UHWHOOLQJPH127WRXVH SDWWHUQV"

2IFRXUVHZHZDQW\RXWR XVH'HVLJQ3DWWHUQV *]\_M_IV\aW]\WJMIOWWL77LM[QOVMZM^MV UWZM ?PMVILM[QOV[WT]\QWVKITT[NWZIXI\\MZVaW]OM\ \PMJMVMÅ\[WN ][QVOI[WT]\QWV\PI\PI[JMMV\QUM \M[\MLJaTW\[WN LM^MTWXMZ[AW]¼ZMIT[W][QVOI [WT]\QWV\PI\Q[_MTTLWK]UMV\MLIVL\PI\W\PMZ LM^MTWXMZ[IZMOWQVO\WZMKWOVQbMaW]SVW_\PI\ _PWTM[PIZML^WKIJ]TIZa\PQVO 0W_M^MZ_PMVaW]][M,M[QOV8I\\MZV[\PMZM KIVIT[WJMILW_V[QLM,M[QOV8I\\MZV[WN\MV QV\ZWL]KMILLQ\QWVITKTI[[M[IVLWJRMK\[IVL[W \PMaKIVQVKZMI[M\PMKWUXTM`Q\aWN aW]ZLM[QOV[ ,M[QOV8I\\MZV[KIVIT[WILLUWZMTIaMZ[\WaW]Z LM[QOV_PQKPILL[VW\WVTaKWUXTM`Q\aJ]\IT[W QVMNÅKQMVKa )T[W][QVOI,M[QOV8I\\MZVKIV[WUM\QUM[JM W]\ZQOP\W^MZSQTT5IVa\QUM[aW]KIVNITTJIKSWV aW]ZLM[QOVXZQVKQXTM[IVLÅVLIU]KP[QUXTMZ [WT]\QWV\W[WT^M\PM[IUMXZWJTMU1N \PI\ PIXXMV[LWV¼\ÅOP\Q\=[M\PM[QUXTMZ[WT]\QWV ,WV¼\TM\][LQ[KW]ZIOMaW]\PW]OP?PMVI ,M[QOV8I\\MZVQ[\PMZQOP\\WWTNWZ\PMRWJ\PM IL^IV\IOM[IZMUIVa 

&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 23

EHWWHUOLYLQJZLWKSDWWHUQV

,WV¼\NWZOM\\PMXW_MZWN\PM [PIZML^WKIJ]TIZa ?M¼^M[XMV\[WU]KP\QUMQV\PQ[JWWSLQ[K][[QVO77V]\[IVLJWT\[\PI\Q\¼[ MI[a\WNWZOM\\PMP]UIV[QLMWN ,M[QOV8I\\MZV[·\PMaLWV¼\R][\PMTXTWIL aW]ZJZIQV_Q\P[WT]\QWV[\PMaIT[WOQ^MaW]I[PIZML^WKIJ]TIZa_Q\PW\PMZ LM^MTWXMZ[,WV¼\]VLMZM[\QUI\M\PMXW_MZWN I[PIZML^WKIJ]TIZaQ\¼[WVMWN  \PMJQOOM[\JMVMÅ\[WN ,M[QOV8I\\MZV[ 2][\\PQVS[WUM\PQVOPI[KPIVOML[QVKM\PMTI[\\QUM_M\ITSMLIJW]\[PIZML ^WKIJ]TIZQM[#aW]¼^MVW_[\IZ\ML\WJ]QTL]XY]Q\MI^WKIJ]TIZaWN aW]ZW_V  6W\\WUMV\QWVaW]PI^MIT[WTMIZVMLIN]TT[M\WN 77LM[QOVXZQVKQXTM[NZWU _PQKPaW]KIVMI[QTa]VLMZ[\IVL\PMUW\Q^I\QWVIVL_WZSQVO[WN IVaVM_ XI\\MZV[aW]MVKW]V\MZ 6W_\PI\aW]¼^MOW\\PM,M[QOV8I\\MZVJI[QK[LW_VQ\¼[\QUMNWZaW]\W OWW]\IVL[XZMIL\PM_WZL\WW\PMZ[?Pa'*MKI][M_PMVaW]ZNMTTW_ LM^MTWXMZ[SVW_XI\\MZV[IVL][MI[PIZML^WKIJ]TIZaI[_MTTQ\TMIL[\W JM\\MZLM[QOV[JM\\MZKWUU]VQKI\QWVIVLJM[\WN ITTQ\¼TT[I^MaW]ITW\WN  \QUM\PI\aW]KIV[XMVLWVKWWTMZ\PQVO[

6R,FUHDWHGWKLVEURDGFDVW FODVV,W NHHSVWUDFNRIDOOWKHREMHFWVOLVWHQLQJWRLW DQGDQ\WLPHDQHZSLHFHRIGDWDFRPHVDORQJ LWVHQGVDPHVVDJHWRHDFKOLVWHQHU:KDW·VFRRO LVWKDWWKHOLVWHQHUVFDQMRLQWKHEURDGFDVWDWDQ\ WLPHRUWKH\FDQHYHQUHPRYHWKHPVHOYHV$QGWKH EURDGFDVWFODVVLWVHOIGRHVQ·WNQRZDQ\WKLQJDERXW WKHOLVWHQHUVDQ\REMHFWFDQUHJLVWHUWKDW LPSOHPHQWVWKHULJKWLQWHUIDFH

7LPHFRQVXPLQJ ,QFRPSOHWH

&RQIXVLQJ

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 24

¿YHZD\VWRVKDUH\RXUYRFDEXODU\

7RSÀYHZD\VWRVKDUH\RXUYRFDEXODU\ ,QGHVLJQPHHWLQJV7HENYOUMEETWITHYOURTEAMTODISCUSS ASOFTWAREDESIGN USEDESIGNPATTERNSTOHELPSTAYhINTHEDESIGNv LONGER$ISCUSSINGDESIGNSFROMTHEPERSPECTIVEOF$ESIGN0ATTERNS AND//PRINCIPLESKEEPSYOURTEAMFROMGETTINGBOGGEDDOWNIN IMPLEMENTATIONDETAILSANDPREVENTMANYMISUNDERSTANDINGS :LWKRWKHUGHYHORSHUV5SEPATTERNSINYOURDISCUSSIONSWITH OTHERDEVELOPERS4HISHELPSOTHERDEVELOPERSLEARNABOUTNEW PATTERNSANDBUILDSACOMMUNITY4HEBESTPARTABOUTSHARINGWHAT YOUVELEARNEDISTHATGREATFEELINGWHENSOMEONEELSEhGETSITv ,QDUFKLWHFWXUHGRFXPHQWDWLRQ7HENYOUWRITE ARCHITECTURALDOCUMENTATION USINGPATTERNSWILLREDUCETHEAMOUNT OFDOCUMENTATIONYOUNEEDTOWRITEANDGIVESTHEREADERACLEARER PICTUREOFTHEDESIGN ,QFRGHFRPPHQWVDQGQDPLQJFRQYHQWLRQV7HEN YOUREWRITINGCODE CLEARLYIDENTIFYTHEPATTERNSYOUREUSINGIN COMMENTS!LSO CHOOSECLASSANDMETHODSNAMESTHATREVEALANY PATTERNSUNDERNEATH/THERDEVELOPERSWHOHAVETOREADYOUR CODEWILLTHANKYOUFORALLOWINGTHEMTOQUICKLYUNDERSTANDYOUR IMPLEMENTATION 7RJURXSVRILQWHUHVWHGGHYHORSHUV3HAREYOURKNOWLEDGE -ANYDEVELOPERSHAVEHEARDABOUTPATTERNSBUTDONTHAVEAGOOD UNDERSTANDINGOFWHATTHEYARE6OLUNTEERTOGIVEABROWN BAGLUNCH ONPATTERNSORATALKATYOURLOCALUSERGROUP

6XFFLQFW 3UHFLVH

2EVHUYHU

&RPSOHWH



&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 25

EHWWHUOLYLQJZLWKSDWWHUQV

+Z]Q[QV¼7JRMK\ ^QTTM_Q\P \PM/IVOWN.W]Z

7KH*R)ODXQFKHGWKHVRIWZDUH SDWWHUQVPRYHPHQWEXWPDQ\RWKHUV KDYHPDGHVLJQLILFDQWFRQWULEXWLRQV LQFOXGLQJ:DUG&XQQLQJKDP.HQW %HFN-LP&RSOLHQ*UDG\%RRFK%UXFH $QGHUVRQ5LFKDUG*DEULHO'RXJ/HD 3HWHU&RDGDQG'RXJ6FKPLGWWR QDPHMXVWDIHZ

AW]_WV¼\ÅVL\PM2M\[WZ;PIZS[PIVOQVOIZW]VL7JRMK\^QTTMJ]\ aW]_QTTÅVL\PM/IVOWN .W]Z)[aW]¼^MXZWJIJTaVW\QKMLaW] KIV¼\OM\NIZQV\PM?WZTLWN 8I\\MZV[_Q\PW]\Z]VVQVOQV\W\PMU ;W_PWQ[\PQ[Ua[\MZQW][OIVO' 8]\[QUXTa¹\PM/W.º_PQKPQVKT]LM[-ZQKP/IUUI:QKPIZL 0MTU:ITXP2WPV[WVIVL2WPV>TQ[[QLM[Q[\PMOZW]XWN O]a[_PW X]\\WOM\PMZ\PMÅZ[\XI\\MZV[KI\ITWOIVLQV\PMXZWKM[[[\IZ\MLIV MV\QZMUW^MUMV\QV\PM[WN\_IZMÅMTL 0W_LQL\PMaOM\\PI\VIUM'6WWVMSVW_[NWZ[]ZM#Q\¼[R][\I VIUM\PI\[\]KS*]\\PQVSIJW]\Q\"QN aW]¼ZMOWQVO\WPI^MI ¹OIVOMTMUMV\ºZ]VVQVOIZW]VL7JRMK\^QTTMKW]TLaW]\PQVSWN I VQKMZJ]VKPWN O]a['1VNIK\\PMa¼^MM^MVIOZMML\WXIa][I^Q[Q\

7RGD\ WKHUHDUH PRUH SDWWHUQVWKDQLQWKH *R)ERRNOHDUQDERXW WKHPDVZHOO

6KRRWIRUSUDFWLFDO H[WHQVLELOLW\'RQ·W SURYLGHK\SRWKHWLFDO JHQHUDOLW\EHH[WHQVLEOH LQZD\VWKDWPDWWHU

5LFKDUG +HOP

1DLGEVXKNNG2CVVGTPU6QWT

*RIRUVLPSOLFLW\ DQGGRQ·WEHFRPHRYHUH[FLWHG ,I\RXFDQFRPHXSZLWKD VLPSOHUVROXWLRQZLWKRXWXVLQJD SDWWHUQWKHQJRIRULW

5DOSK -RKQVRQ

-RKQ9OLVVLGHV

3DWWHUQVDUH WRROVQRWUXOHVWKH\ QHHGWREHWZHDNHGDQG DGDSWHGWR \RXUSUREOHP

(ULFK*DPPD

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 26

SDWWHUQVUHVRXUFHV

AW]ZRW]ZVMaPI[R][\JMO]V 6W_\PI\aW]¼ZMWV\WXWN ,M[QOV8I\\MZV[IVLZMILa\WLQOLMMXMZ_M¼^MOW\\PZMMLMÅVQ\Q^M \M`\[\PI\aW]VMML\WILL\WaW]ZJWWS[PMTN

7KHGHÀQLWLYH'HVLJQ3DWWHUQVWH[W
JQ3DWWHUQVDUHI)RXUµ 7KHDXWKRUVRI'HVL QDVWKH´*DQJR RZ DIIHFWLRQDWHO\NQW RU*R)IRUVKRU &KULVWRSKHU$OH[DQGHULQYHQWHG SDWWHUQVZKLFKLQVSLUHGDSSO\LQJ VLPLODUVROXWLRQVWRVRIWZDUH 7KHGHÀQLWLYH3DWWHUQVWH[WV 8I\\MZV[LQLV¼\[\IZ\_Q\P\PM/W.#\PMa[\IZ\ML_Q\P  PZQ[\WXPMZ)TM`IVLMZI8ZWNM[[WZWN )ZKPQ\MK\]ZM + I\*MZSMTMa·\PI\¼[ZQOP\)TM`IVLMZQ[IVIZKPQ\MK\ VW\IKWUX]\MZ[KQMV\Q[\)TM`IVLMZQV^MV\ML XI\\MZV[NWZJ]QTLQVOTQ^QVOIZKPQ\MK\]ZM[TQSM PW][M[\W_V[IVLKQ\QM[


&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 27

EHWWHUOLYLQJZLWKSDWWHUQV

2WKHU'HVLJQ3DWWHUQUHVRXUFHV AW]¼ZMOWQVO\WÅVL\PMZMQ[I^QJZIV\NZQMVLTaKWUU]VQ\aWN XI\\MZV[ ][MZ[IVL_ZQ\MZ[W]\\PMZMIVL\PMa¼ZMOTIL\WPI^MaW]RWQV\PMU 0MZM¼[INM_ZM[W]ZKM[\WOM\aW][\IZ\ML ?MJ[Q\M[

>ŽiÊ>Êë>Åʈ˜Ê6>˜VœÕÛiÀo

Ê

o>˜`Ê}iÌÊ>…i>`ʈ˜ÊÜvÌÜ>ÀiÊÌiV…˜œœ}ÞtÊ

£™Ì…ʘ˜Õ>Ê Ê œ˜viÀi˜Viʜ˜Ê"LiV̇"Àˆi˜Ìi`Ê *Àœ}À>““ˆ˜}]Ê-ÞÃÌi“Ã]Ê>˜}Õ>}iÃ]Ê>˜`Ê««ˆV>̈œ˜Ã "V̜LiÀÊÓ{‡Ón]ÊÓää{Ê 6>˜VœÕÛiÀÊ œ˜Ûi˜Ìˆœ˜ÊEÊ Ý…ˆLˆÌˆœ˜Ê i˜ÌÀiÊ 6>˜VœÕÛiÀ]Ê ÀˆÌˆÃ…Ê œÕ“Lˆ>]Ê >˜>`> Óää{Ê-V…i`Տi -՘`>Þ]Ê"V̜LiÀÊÓ{̅

UÊ,i}ˆÃÌÀ>̈œ˜ UÊ/Õ̜Àˆ>Ã UÊ7œÀŽÃ…œ«Ã UÊ iÈ}˜iÃÌ Á UÊiVˆ«ÃiÊ/iV…˜œœ}ÞÊi8V…>˜}iÊ ­i/8®Ê,iVi«Ìˆœ˜ œ˜`>Þ]Ê"V̜LiÀÊÓx̅

UÊ,i}ˆÃÌÀ>̈œ˜ UÊ/Õ̜Àˆ>Ã UÊ7œÀŽÃ…œ«Ã UÊ œV̜À>Ê-ޓ«œÃˆÕ“ UÊ `ÕV>̜ÀýÊ-ޓ«œÃˆÕ“ UÊ7iVœ“iÊ,iVi«Ìˆœ˜ÊEÊ iÜVœ“iÀ½ÃÊ,iVi«Ìˆœ˜ /ÕiÃ`>Þ]Ê"V̜LiÀÊÓÈ̅

UÊ,i}ˆÃÌÀ>̈œ˜ UÊ/Õ̜Àˆ>Ã UÊ iÈ}˜iÃÌ Á UÊ"˜Ü>À`t UÊ*À>V̈̈œ˜iÀÊ,i«œÀÌà UÊ/iV…˜ˆV>Ê*>«iÀà UÊ*>˜iÃ UʘۈÌi`Ê-«i>ŽiÀà Uʏ>Å œvÃÒ UÊ Ê/ÕÀˆ˜}ÊiVÌÕÀi 7i`˜iÃ`>Þ]Ê"V̜LiÀÊÓÇ̅

UÊ,i}ˆÃÌÀ>̈œ˜ UÊ/Õ̜Àˆ>Ã UÊ"˜Ü>À`t UÊ*À>V̈̈œ˜iÀÊ,i«œÀÌà UÊ/iV…˜ˆV>Ê*>«iÀà UÊ*>˜iÃ UʘۈÌi`Ê-«i>ŽiÀà Uʏ>Å œvÃÒ UÊ-«iVˆ>Ê Ûi˜ÌÊ>ÌÊ̅iÊ 6>˜VœÕÛiÀʵÕ>ÀˆÕ“ /…ÕÀÃ`>Þ]Ê"V̜LiÀÊÓn̅

UÊ,i}ˆÃÌÀ>̈œ˜ UÊ/Õ̜Àˆ>Ã UÊ7œÀŽÃ…œ«Ã UÊ"˜Ü>À`t UÊ*À>V̈̈œ˜iÀÊ,i«œÀÌà UÊ/iV…˜ˆV>Ê*>«iÀà UÊ*>˜iÃ UʘۈÌi`Ê-«i>ŽiÀà UÊViÊ Ài>“Ê-œVˆ>Ê ""*-ÊÓääxʘۈÌ>̈œ˜

"

",*",/ -1**",/ ,-

0014-"XJMMCFUIFQSFNJFSHBUIFSJOHPGQSPGFTTJPOBMTGSPNJOEVTUSZ BOEBDBEFNJB BMMTIBSJOHUIFJSFYQFSJFODFTXJUIPCKFDUUFDIOPMPHZBOE JUTPĉTIPPUT0014-"PĉFSTBOFYUSBPSEJOBSZBSSBZQSFTFOUBUJPOTGSPN JOWJUFETQFBLFST UFDIOJDBMQBQFST QSBDUJUJPOFSSFQPSUT FYQFSUQBOFMT  EFNPOTUSBUJPOT FEVDBUJPOBMTZNQPTJB XPSLTIPQT EJWFSTFUVUPSJBMTGSPN XPSMEDMBTTMFDUVSFST PVUPGUIFCPYUIJOLJOHBUUIFGSPOUJFSTPGDPNQVUJOH  MBUFCSFBLJOHSFTVMUT IBOETPOEFTJHOFYQFSJFODFyBOEPGDPVSTFQMFOUZPG TPDJBMPQQPSUVOJUJFTGPSNJOHMJOHBOEQSPGFTTJPOBMOFUXPSLJOH ͳ  BUTKVTUBTBNQMJOHPGXIBUNBLFT0014-"UIFDPOGFSFODFPGDIPJDF GPSTPGUXBSFUFDIOPMPHJTUT‰GSPNSFDPHOJ[FEBDBEFNJDTUPVOEFSHSBEVBUF TUVEFOUT GSPNJOEVTUSJBMSFTFBSDIFSTUPEFWFMPQFSTBOENBOBHFST GSPNUIF DSFBUPSTPGUFDIOPMPHZUPJUTVTFST

-6 ,

",*",/ -1**",/ ,

-*" -", Ê 9

--"/ -*

-«iVˆ>Ê Ûi˜Ì\Ê  Ê/ÕÀˆ˜}ÊiVÌÕÀiÊLÞʏ>˜Ê>Þ]ÊÓääÎÊ°Ê°Ê/ÕÀˆ˜}ÊÜ>À`Ê7ˆ˜˜iÀ œÀÊ̅iÊÃiVœ˜`Ê̈“iʈ˜ÊÌܜÊÞi>ÀÃ]Ê""*-Ê܈Ê…œÃÌÊ ½ÃÊ«ÀiÃ̈}ˆœÕÃÊ/ÕÀˆ˜}ÊiVÌÕÀi]Ê̜ÊLiÊ`iˆÛiÀi`ÊLÞÊ >˜Ê>Þ]ʘi܏Þʘ>“i`Ê° °/ÕÀˆ˜}ÊÜ>À`Ê܈˜˜iÀ°Ê œ“iÊ܈̘iÃÃÊ̅ˆÃʅˆÃ̜ÀˆVÊiÛi˜Ìt

˜ÛˆÌi`Ê-«i>ŽiÀà ""*-ÊiޘœÌiÊ-«i>ŽiÀ ,ˆV…>À`Ê°Ê,>ň`]ʈVÀœÃœvÌÊ,iÃi>ÀV…Ê º/…iÊÕÌÕÀiʜvÊ*Àœ}À>““ˆ˜}»

"˜Ü>À`tÊiޘœÌiÊ-«i>ŽiÀ >Àœ˜Ê>˜ˆiÀ]Ê ˜ÌiÀÃÌi>ÀÊ œ“«ÕÌiÀÊ-Vˆi˜ViʘÃ̈ÌÕÌi º ݜVœ“«Ṏ˜}ʈ˜Ê̅iÊ9i>ÀÊÓÎä{\ÊÊ-ÕÀÛiÞʜvÊ

œ˜wÊÀ“i`ʏˆi˜Ê˜vœÀ“>̈œ˜Ê/iV…˜œœ}ˆiû

-ÌiÛiÊV œ˜˜i]Ê œ˜ÃÌÀÕÝÊ º œ`iÊ œ“«iÌiÊÓ\Ê ,i>ˆÌˆiÃʜvÊœ`iÀ˜Ê-œvÌÜ>ÀiÊ œ˜ÃÌÀÕV̈œ˜»

iÀLÊ-ÕÌÌiÀ]ʈVÀœÃœvÌÊ º œ˜VÀiÌiÊ>˜}Õ>}iÃʜ˜Ê6ˆÀÌÕ>Ê*>ÌvœÀ“û

7>À`Ê Õ˜˜ˆ˜}…>“]ʈVÀœÃœvÌ º"LiVÌÃ]Ê*>ÌÌiÀ˜Ã]Ê7ˆŽˆÊ>˜`Ê8*\Ê Ê-ÞÃÌi“ÃʜvÊ >“iû

>˜Ê6iÀ“iՏi˜]Ê“>âœ˜Ê º˜Ãˆ`iÊ“>✘Ê7iLÊ-iÀۈViû

+WVNMZMVKM[IVL?WZS[PWX[ )VLQN aW]¼LTQSM\WOM\[WUMNIKM\WNIKM\QUM_Q\P \PMXI\\MZV[KWUU]VQ\aJM[]ZM\WKPMKSW]\\PM UIVaXI\\MZV[ZMTI\MLKWVNMZMVKM[IVL_WZS[PWX[
,i}ˆÃÌiÀÊiiVÌÀœ˜ˆV>ÞÊ>ÌʅÌÌ«\ÉÉÜÜÜ°Ài}“>ÃÌiÀ°Vœ“Éœœ«Ã>Óää{°…Ì“ T >ÃÌÊ`>ÞÊvœÀÊÀi`ÕVi`ÊÀ>ÌiÃ\Ê/…ÕÀÃ`>Þ]Ê£ÈÊ-i«Ìi“LiÀÊÓää{ T >ÃÌÊ`>ÞÊ̜Ê>`Û>˜ViÊÀi}ˆÃÌiÀ\Ê/…ÕÀÃ`>Þ]ÊÇÊ"V̜LiÀÊÓää{

6ˆÃˆÌÊ̅iÊ""*-ÊÜiLÈÌiʅÌÌ«\Éɜœ«Ã>°œÀ}ÊvœÀÊvՏÊVœ˜viÀi˜ViÊ«Àœ}À>“Ê`iÌ>ˆÃ°

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 28

SDWWHUQV]RR


$UFKLWHFWXUDO3DWWHUQVDUH XVHGWRFUHDWHWKHOLYLQJ YLEUDQWDUFKLWHFWXUHRI EXLOGLQJVWRZQVDQGFLWLHV 7KLVLVZKHUHSDWWHUQVJRW WKHLUVWDUW

+DELWDWVHHQKDQJLQJDURXQG WLHUDUFKLWHFWXUHVFOLHQW VHUYHUV\VWHPVDQGWKHZHE

+DELWDWIRXQGLQEXLOGLQJV\RX OLNHWROLYHLQORRNDWDQGYLVLW

$SSOLFDWLRQ3DWWHUQVDUH SDWWHUQVIRUFUHDWLQJ V\VWHPOHYHODUFKLWHFWXUH 0DQ\PXOWLWLHU DUFKLWHFWXUHVIDOOLQWRWKLV FDWHJRU\

)LHOGQRWH09&KDVEHHQ NQRZQWRSDVVIRUDQ DSSOLFDWLRQSDWWHUQ

'RPDLQ6SHFLÀF3DWWHUQV DUHSDWWHUQVWKDWFRQFHUQ SUREOHPVLQVSHFLÀFGRPDLQV OLNHFRQFXUUHQWV\VWHPVRU UHDOWLPHV\VWHPV



+HOSILQGDKDELWDW -((

&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 29

EHWWHUOLYLQJZLWKSDWWHUQV

6HHQKDQJLQJDURXQGFRUS RUDWH ERDUGURRPVDQGSURMHFW PDQDJHPHQWPHHWLQJV 

%XVLQHVV3URFHVV3DWWHUQV GHVFULEHWKHLQWHUDFWLRQ EHWZHHQEXVLQHVVHVFXVWRPHUV DQGGDWDDQGFDQEHDSSOLHG WRSUREOHPVVXFKDVKRZ WRHIIHFWLYHO\PDNHDQG FRPPXQLFDWHGHFLVLRQV

+HOSILQGDKDELWDW 'HYHORSPHQWWHDP &XVWRPHUVXSSRUWWHDP

8VHU,QWHUIDFH 'HVLJQ3DWWHUQV DGGUHVVWKH SUREOHPVRIKRZWR GHVLJQLQWHUDFWLYH VRIWZDUHSURJUDPV

2UJDQL]DWLRQDO3DWWHUQV GHVFULEHWKHVWUXFWXUHV DQGSUDFWLFHVRIKXPDQ RUJDQL]DWLRQV0RVW HIIRUWVWRGDWHKDYH IRFXVHGRQRUJDQL]DWLRQV WKDWSURGXFHDQGRU VXSSRUWVRIWZDUH

+DELWDWVHHQLQWKHYLFLQLW\ RIYLGHRJDPHGHVLJQHUV*8, EXLOGHUVDQGSURGXFHUV

)LHOGQRWHVSOHDVHDGG\RXUREVHUYDWLRQVRISDWWHUQGRPDLQVKHUH

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 30

DQWLSDWWHUQV

)VVQPQTI\QVOM^QT_Q\P)V\Q8I\\MZV[
)V)V\Q8I\\MZV\MTT[aW]PW_\WOWNZWUIXZWJTMU \WI*),[WT]\QWV

AW]¼ZMXZWJIJTaI[SQVOaW]Z[MTN¹?PaWVMIZ\P_W]TLIVaWVM _I[\M\PMQZ\QUMLWK]UMV\QVOJIL[WT]\QWV['º


$QDQWLSDWWHUQDOZD\V ORRNVOLNHDJRRGVROXWLRQ EXWWKHQWXUQVRXWWREH DEDGVROXWLRQZKHQLWLV DSSOLHG %\GRFXPHQWLQJDQWL SDWWHUQVZHKHOS RWKHUVWRUHFRJQL]HEDG VROXWLRQVEHIRUHWKH\ LPSOHPHQWWKHP /LNHSDWWHUQVWKHUH DUHPDQ\W\SHV RIDQWLSDWWHUQV LQFOXGLQJGHYHORSPHQW 22RUJDQL]DWLRQDO DQGGRPDLQVSHFLILF DQWLSDWWHUQV

&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 31

EHWWHUOLYLQJZLWKSDWWHUQV

+HUH·VDQH[DPSOHRIDVRIWZDUHGHYHORSPHQWDQWLSDWWHUQ

-XVWOLNHD'HVLJQ3DWWHUQ DQDQWLSDWWHUQKDVDQDPH VRZHFDQFUHDWHDVKDUHG YRFDEXODU\

7KHSUREOHPDQGFRQWH[W MXVWOLNHD'HVLJQ3DWWHUQ GHVFULSWLRQ

*W]R9J]]N[W 1DPH*ROGHQ+DPPHU 3UREOHP
7HOOV\RXZK\ WKHVROXWLRQLV DWWUDFWLYH

7KHEDG\HWDWWUDFWLYHVROXWLRQ

+RZWRJHWWRD JRRGVROXWLRQ ([DPSOHRIZKHUHWKLVDQWLSDWWHUQ KDVEHHQREVHUYHG

‡7KHGHYHORSPHQWWHDPLVQRWIDPLOLDUZLWK RWKHUWHFKQRORJLHV ‡8QIDPLOLDUWHFKQRORJLHVDUHVHHQDVULVN\ ‡,WLVHDV\WRSODQDQGHVWLPDWHIRU GHYHORSPHQWXVLQJWKHIDPLOLDUWHFKQRORJ\ 6XSSRVHG6ROXWLRQ8VHWKHIDPLOLDUWHFKQRORJ\ DQ\ZD\7KHWHFKQRORJ\LVDSSOLHGREVHVVLYHO\WR PDQ\SUREOHPVLQFOXGLQJSODFHVZKHUHLWLVFOHDUO\ LQDSSURSULDWH 5HIDFWRUHG6ROXWLRQ([SDQGLQJWKHNQRZOHGJHRI GHYHORSHUVWKURXJKHGXFDWLRQWUDLQLQJDQGERRN VWXG\JURXSVWKDWH[SRVHGHYHORSHUVWRQHZVROXWLRQV ([DPSOHV :HEFRPSDQLHVNHHSXVLQJDQGPDLQWDLQLQJWKHLU LQWHUQDOKRPHJURZQFDFKLQJV\VWHPVZKHQRSHQ VRXUFHDOWHUQDWLYHVDUHLQXVH

HUQ KH3RUWODQG3DWW $GDSWHGIURPW,.,DWKWWSFFRP 5HSRVLWRU\·V: PDQ\DQWLSDWWHUQVDQG ZKHUH\RX·OOILQG GLVFXVVLRQV \RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 32

GHVLJQWRROER[


V 223UZKLQDWFYLSDULHOHV

22%DVLFV

223DWWHLQUHVQDILVIQHDPVRLO\DUR\RQIDGHDOGL'3JRWRURWLHIULRQWKYLLQPGHDOPVHDQDDQ\Q HVDVW

LQHVW 3DWWHUQFRPE DW $&RPSRXQG HUQVLQWRDVROXWLRQWK  WW SD H RU HUDOSUREOHP RUP HQ J RU J LQ UU VROYHVDUHFX



\RXUGHVLJQVGRQ·WIRUFHWKHP LQMXVWIRUWKHVDNHRIXVLQJD SDWWHUQ VWRQHDGDSWDQGWZHDNWKHPWR PHHW\RXUQHHGV

ƒ $OZD\VXVHWKHVLPSOHVW VROXWLRQWKDWPHHWV\RXUQHHGV HYHQLILWGRHVQ·WLQFOXGHD SDWWHUQ

7KHWLPHKDVFRPH IRU\RXWRJRRXWDQG GLVFRYHUPRUHSDWWHUQV RQ\RXURZQ7KHUHDUH PDQ\GRPDLQVSHFLILF SDWWHUQVZHKDYHQ·WHYHQ PHQWLRQHGDQGWKHUHDUH DOVRVRPHIRXQGDWLRQDO RQHVZHGLGQ·WFRYHU
K W TX GDSKMHHHVVXFWWODDODDP GH UH D$FW RQ KQVPQFRDFREDS P  ULWQVV+HUH TX KD WW HV KH UH I HW DV TXO\ VR DOWH EX FOWH R D WHVSRUWO\WHU W VXU RWH LFDOR URQ) VH \RED0 URDGHDDUUWHIFW WH FW LOLVUR DW 6WUD VFW XUDN 2'$E)WHHF WHRX EDJ\VW MH RE UOJDV\QJWVHVLQDMHWRUJDUHD3DOORDP G RLQURUYH FW (HD Q Q V RE D LQW UR QH QJ VXQJ QF DVFW QVX KP  R  < WLD (QG DS Z$WR LWOED DMHODI Q OX G HH FK HD RE QF Z QJHV B HW WL  LW GH  ( Q FU V YL  OOR KD D HU P X \R U OH XW WH F  F\ FU  W J R KH P J H \R KR 3 IR XOD S D U HQ WH   W W G WH LW V J R D H SV H OH  6 WV GH & D WD QG IR Z LH LQ FW G WW W W WD FD OHUR VVVMH $)RQ6UI DWHDVLUDFFELDFDEORVWOLW HQ GH [HDQ\6MHMHWUFHFWFWHSFWDWKHDFHGHJQG WW \S FW \ RE HV OHLEUQF WH MHFK OHUVDOXOD \ HEHE QJ 3UI WH RE HUHU KH WH KD HU VS BBBBBB KLH[ W HQHQ WK VDQ BW ZLQVYLRW W LW IO UHUFLQLQSH HQ G H BQJ LW WK H VHVH D B V WH Q U LG B H LW  B DW RE GD HF LG IR QJ LQ HU H B II MH RE H WK G XS Z G B U RY KD H  V QJ GL GL II V Q B RE RQ RU LW HV G RU WV SU RQ GH DV K B HQ GL KD QW D Z Q GRUYLHK DV KHFG[WOH QG ODVWOVVROV\UHWR LQWHZ'KH BZU KD WH G FRQ WR DVEH EF VLWHD ODRU BHW KR DF DW LIW VBDQH UH QW SOVXD HWBLWFORU WVVFOLOO IU W I LHOLH LRP RW QW H OHHFQ SS 0 QJ LHLHFU Q L]W VL D U\ HQ R F DV H QG HV WR LU D D QG FO Z HU L] SH V FF DF WV KH D XE HU HW BBBBBBB GH ) VW V FH D HQ W V HF B P  HT  HW XH LQ VW DF B RI QJ SD QG EM WR H P UD KH U HO HXHHRURUWLOORJ SHHF UD\LQW YDU\GH UR WLRLYDW SD DW 7LI DQKH RJBLRBUQ FR BXHBWBBBB VWUQ BHTBWR DW DOVSLQWH B DQ O\ HX TX  DO VW TX LF LQ WV  TX V U HV DW WV WL QV UH P V \ RQ WRQFFOUH TX DOGHLWIH GRDE WHU BBBBBBBB DXIXD FODVDV RQVVHV SHSHUD WL GUD3WLRQDW OHRRXQ XQ GRDEOHSR BBBBBBBB VXVXSS ODSSVVRURUHVWW XQ&RP BBBBB VXEF ZR

ƒ /HW'HVLJQ3DWWHUQVHPHUJHLQ

ƒ 'HVLJQ3DWWHUQVDUHQ·WVHWLQ

$EVWUDFWLRQ RQ (QFDSVXODWL P 3RO\PRUSKLV ,QKHULWDQFH

(QFDSVXODWH KHULWDQFH VLWLRQRYHULQ )DYRUFRPSR RW LQWHUIDFHVQ 3URJUDPWR RQV WL WD HQ HP LPSO GGHVLJQV RVHO\FRXSOH 6WULYHIRUORMHFWVWKDWLQWHUDFW EHWZHHQRE RUH[WHQVLRQ OGEHRSHQI &ODVVHVVKRX RUPRGLILFDWLRQ EXWFORVHGI 'RQRW EVWUDFWLRQV 'HSHQGRQD QFUHWHFODVVHV GHSHQGRQFR V \RXUIULHQG 2QO\WDONWR RX O\ VZH·OOFDO 'RQ·WFDOOX R RQHUHDVRQW GKDYHRQO\ $FODVVVKRXO FKDQJH

:MDD=LHGAFLK

&KHFNRXWWKH $SSHQGL[ZH·OO JLYH\RXDKHDGV XSRQVRPHPRUH IRXQGDWLRQDO SDWWHUQV\RX·OO SUREDEO\ZDQWWR KDYHDORRNDW

ƒ 6WXG\'HVLJQ3DWWHUQFDWDORJV WRIDPLOLDUL]H\RXUVHOIZLWK SDWWHUQVDQGWKHUHODWLRQVKLSV DPRQJWKHP

ƒ 3DWWHUQFODVVLILFDWLRQV RU FDWHJRULHV SURYLGHJURXSLQJV IRUSDWWHUQV:KHQWKH\KHOS XVHWKHP

ƒ
ƒ 5HPHPEHUPRVWSDWWHUQV\RX HQFRXQWHUZLOOEHDGDSWDWLRQV RIH[LVWLQJSDWWHUQVQRWQHZ SDWWHUQV

ƒ %XLOG\RXUWHDP·VVKDUHG YRFDEXODU\7KLVLVRQHRIWKH PRVWSRZHUIXOEHQHILWVRIXVLQJ SDWWHUQV

ƒ /LNHDQ\FRPPXQLW\WKH SDWWHUQVFRPPXQLW\KDVLWV RZQOLQJR'RQ·WOHWWKDWKROG \RXEDFN+DYLQJUHDGWKLV ERRN\RXQRZNQRZPRVWRILW

&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 33

EHWWHUOLYLQJZLWKSDWWHUQV

4MI^QVO7JRMK\ ^QTTM

*WaQ\¼[JMMVOZMI\PI^QVOaW]QV7JRMK\ ^QTTM :H¶UHJRLQJWRPLVV\RXIRUVXUH%XWGRQ¶WZRUU\±EHIRUH\RXNQRZLWWKH QH[W+HDG)LUVWERRNZLOOEHRXWDQG\RXFDQYLVLWDJDLQ:KDW¶VWKHQH[WERRN \RXDVN"+PPPJRRGTXHVWLRQ:K\GRQ¶W\RXKHOSXVGHFLGH"6HQGHPDLO WRERRNVXJJHVWLRQV#ZLFNHGO\VPDUWFRP

\RXDUHKHUH



Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info

Chapter 13. Patterns in the Real World

Return to Table of Contents

Page 34

ZKRGRHVZKDW"VROXWLRQ

([HUFLVHVROXWLRQV 5I\KPMIKPXI\\MZV_Q\PQ\[LM[KZQX\QWV"

3DWWHUQ

Decorator State Iterator Facade Strategy Proxy Factory Method Adapter Observer Template Method Composite Singleton Abstract Factory Command 

'HVFULSWLRQ

Wraps an object and provides a different interface to it. Subclasses decide how to implement steps in an algorithm. Subclasses decide which concrete classes to create. Ensures one and only object is created. Encapsulates interchangeable behaviors and uses delegation to decide which one to use. Clients treat collections of objects and individual objects uniformly. Encapsulates state-based behaviors and uses delegation to switch between behaviors. Provides a way to traverse a collection of objects without exposing its implementation. SimpliÞes the interface of a set of classes. Wraps an object to provide new behavior. Allows a client to create families of objects without specifying their concrete classes. Allows objects to be notiÞed when state changes. Wraps an object to control access to it. Encapsulates a request as an object.

&KDSWHU

Chapter 13. Patterns in the Real World Head First Design Patterns By Eric Freeman, Elisabeth Freeman, Bert Bates, Kathy Sierra Prepared for Ann Cherkis, Safari ID: [email protected] ISBN: 0596007124 Publisher: O'Reilly Print Publication Date: 2004/10/25 User number: 1673621 Copyright 2008, Safari Books Online, LLC. This PDF is exclusively for your use in accordance with the Safari Terms of Service. No part of it may be reproduced or transmitted in any form by any means without the prior written permission for reprints and excerpts from the publisher. Redistribution or other use that violates the fair use priviledge under U.S. copyright laws (see 17 USC107) or that otherwise violates the Safari Terms of Service is strictly prohibited.

www.it-ebooks.info