2006 04 Rozszerzenie wzorca Template [Inzynieria Oprogramowania]


I׿ÿ ×ieria
oprogramowa×ia
o ni o
mpl
io i
u u do i iżÿ j i po b możÿn
Li ti×g 1.
o żÿ ożÿ ni b d o popul n o
o mpl p p d u i d ni m

mo o pod o m un u o o ni o
o  d i d i niu.

Wzorze TempIate
i lu n n p no i d żÿ o o m
ni żÿ i domi o mpl blon 
n o ni żÿ o m mpl M hod M o
d blono . żÿ m o i d m m p  po b o żÿ j lo i i o żÿ j j m o
nżÿ l żÿ b o żÿ d niujżÿ żÿ m od po o d ni mni j j dn il h m od m ho
i m do impl m n ji l h po hodn h. żÿ iżÿ po b b d o p n dl d n o
Id pol n m żÿ p n żÿżÿ i l o m od ju ji.
po jżÿ iżÿ dl o i h impl m n jżÿ o obl m p d iono n un u . żÿm
p ni żÿżÿ d i żÿ j dno p ln mi j o  żÿ pi m p o m do ob u i żÿn h od j pli
o żÿd i n m u pod n u ln h mo . l żÿnożÿ i od bo u użÿ o ni do żÿ 
d ji odu. o o żÿżÿ i odu mo żÿ mi żÿ o od ju ob u i n o pli u u u h mi n j j d
żÿnżÿ impl m n jżÿ do on o ni n il u ji impl m n o n h l h
pomo żÿ l po hodn h. i . l o jżÿ lo i
o n o o o om ion i do n j p l żÿ . Lo i 
i lu iżÿżÿ h po u jżÿ h m żÿ o j l i odpo i d i ln j po jżÿ iżÿ
p oj o h n . i ni bżÿd i on nnożÿ i iżÿ n ob u żÿ pli i j o 
m żÿ o u u. o u żÿ u j i  ni m ni i d. l o 
dni ni . p bujżÿ odpo i d i żÿ n p ni o ujżÿ m od o
o mpl n d l bżÿd i do ożÿ p d  . o m od .
n j żÿ li u uni m j o pod o l m n & d i  obl m j dn m żÿ i h i 
d i ni . b n po b on żÿ m n o 
n h m od l . l
Brak dziedzi ze×ia pod on ni m od
o n l żÿ obiżÿ d un jon lnożÿżÿ o o nżÿ mu i on żÿ ojżÿ nżÿ m odżÿ
p o mpl h m u żÿ l  dl m od ojżÿ
h po o ni ni m jżÿ h obżÿ żÿ dn o iżÿ  . n lo i ni mu i on żÿ
u np. miżÿd l żÿ do jżÿ żÿ p nżÿ lo i żÿ bi  i . o m lni 
n o żÿ j mi hnolo ii u żÿ lo i żÿ 
o ujżÿ mi n d l j żÿm ni 
Li ti×g 2.

m żÿ p n p ln l m n j dn m mi j u

do jżÿ l o impl m n ji p n h l 
m n
d im m żÿ p do żÿ u
jżÿ. żÿ m m p nżÿ lo i żÿ do jżÿ żÿ j 
żÿżÿ o żÿlonżÿ un jon lnożÿżÿ bi n o żÿ. i 
m ni żÿ żÿ il od j ji h n j


u o p uj n no i u p oj n  p o mi

mi u oB n . . o mo ni m obi o m


i j o o o ni m ożÿon h p oj h in o m 

n h jmuj iżÿ odo o od h l . in o ni

odo u o do żÿ m bo h i hno

lo ii u i jżÿ h o ni i h m .
on u o m

l l l
oz zerze×ie wzor a TempIate
CLogikaPlikNowa
+ utworzPlik(String, IUchwyt) : CPlik
+ obsluzWyjatek(Uchwyt) : void
+ zamknijPlik(String) : void
<> <> <>
CAkcja 1 CAkcja 2 CAkcja 3
- rejestrujPlikDoc() : void - zapiszBladPlikXsl() : void
- zapiszBladPlikDoc() : void - rejestrujPlikXsl() : void
u×ek 1. żÿ
i on ni m n u n o odu o nżÿ u od . żÿpni do oln m mi j u do oln j m od i
m od inn j l n ijm j niżÿ i m odu b m  n j lo i i o uj m m odżÿ d nio nżÿ in j
h ni mu d i d i ni ni j możÿli . ob o l h i . iżÿ i m in j żÿ mu im p żÿ do m 
i mu i lib żÿm n pi żÿ od n j od j j d n p m np. . poniżÿ
m od i j p i żÿ h li in h p d iono po b o ni m od
jużÿ l i lo i i! i żÿ ni h m i j dund n ji odu. d l o n h n m in j i .
m o iżÿ żÿ n p obl m i umożÿli iżÿ i niżÿ d n lo i i jużÿ żÿ mu i o żÿ odpo
i odu do lo i i p po ln j i dniżÿ m odżÿ d l o n o ni j in j u. o
b o in j i mu i o żÿ u o on impl 
ozwiżÿza×ie m n o n i p n do odpo i dni j m od lo i
 wprowadzam i×terfej p jżÿ n j lo i i o . oniżÿ j p d
l żÿ n m iżÿ n m b lo i j d ni d nio d  iono m n o ni i impl m n ji in j u
nżÿ m odżÿ lub m n m od n omi j j on n im l i .
pl m n j do n b b m jżÿ. o m lni id żÿ do impl m n ji m od in j u
o jżÿ o mpl li uj m o pomo o n o m od ji
żÿ m h ni mu d i d i ni . i  pomiżÿd lo i żÿ do impl m n ji  m od .
j mi jżÿ o ujżÿ mi ni m mo o d i d i  n lo i n u j m mi j p p d u l .
niu dl o o mpl ni i l n m m iżÿ i i mu o iżÿ niu  p d ion mu n un u
p p d u pomożÿ . Możÿ m j dn o żÿ inn o  u liżÿm podobn do o o ni o mpl 
dob od i j p o mo ni obi o o  in j . obiliżÿm o mi j u m pomiżÿd l mi ni m
m p p d u o inżÿ n m użÿ i o mpl  hi hii d i d i ni ho ujżÿ p m ożÿżÿ lo i i 
. o j możÿn pomo żÿ in j u o iżÿ żÿ n p o ni i on ni o po iżÿ ni h j mi ni j o jżÿ mi
bl m. o m n żÿpujżÿ in j d niujżÿ d i m  o ni jżÿ użÿ lnżÿ i p nożÿnżÿ. o j h żÿ o żÿ
CLogikaPlikNowa
+ utworzPlik(String, IUchwyt) : CPlik
+ obsluzWyjatek(Uchwyt) : void
+ zamknijPlik(String) : void
<> <> <> <>
CAkcja 1 CAkcja 2 CAkcja 3
+ rejestrujPlik(CEnumPlikTyp) : CPlik + rejestrujPlik(CEnumPlikTyp) : CPlik
+ zapiszBlad() : void + zapiszBlad() : void
- rejestrujPlikDoc() : void - zapiszBladPlikXsl() : void
- zapiszBladPlikDoc() : void - rejestrujPlikXsl() : void
<> <>
CBazowyPlik
+ rejestrujPlik(CEnumPlikTyp) : CPlik
+ zapiszBlad() : void
u×ek 2. żÿ żÿ
l l l

I׿ÿ ×ieria
oprogramowa×ia
Li ti×g .
Li ti×g .
_








j j m od mu żÿ j o j d n p m do żÿ impl 
m n jżÿ in j u .

ozwiżÿza×ie
 ab trak j×a kIa a bazowa
l n n m o iżÿ ni m d jżÿ m p m dod o żÿpn lub o n impl m n j możÿ o żÿ do o
możÿli ożÿ i j żÿpi ni in j u b jnżÿ l żÿ b o n p mżÿ l żÿ. o pod jżÿ i j l p od pod jżÿ i
żÿ. p p jżÿ i un ji li o n h p in j możÿ in j o o o l żÿ  d j ono m lub iżÿ możÿ
on d nio żÿ j żÿżÿ żÿżÿżÿ dom żÿln j un jon lnożÿ i. d li ożÿ i l do i lu o o up nożÿ i n m

i j l o p d ion n Li in u . lżÿ j in j .
id żÿ l i poj i iżÿ n n jużÿ in j u m o
d i d l o n j o b  Na ko×ie refaktori×g
jn . n o żÿ pod do ni impl m n ji o no iżÿ iżÿ n d p ni i ni m n o in j u lub
j l bżÿd i m mu i li o żÿliżÿ ho ni h m od  o  p p d u bo u d u i o o iżÿ ni n j b jn j
iżÿ ni j iżÿ n i id n n j o iżÿ ni p użÿ  l do lo i i jżÿ o ujżÿ j. un i m j o żÿ ni o
iu in j u. o l dod no j dn j d i m od m o in j u/ l ni d i ind i j po n żÿ lo i
żÿ i l mi jżÿ o ujżÿ mi. iżÿ i i mu o iżÿ niu n
nżÿ n j lo i i in j / l ni żÿ ido n ni p 
ni jżÿ iżÿ m m m do ni po bn o b nu o
d i . on d o on n j n ni i o l m n u ni mu i
M od żÿ impl m n o n l i b o j o o n  00 odpo i d żÿ on n ji p jżÿ j dl po o h publi 
żÿ ni bżÿd i po b i h dod o j impl m n  n h in j i l n o p oj u.
ji j h o jżÿ h n j lo i i. iżÿ i o
o lu o p p d u m od Pod umowa×ie
o n żÿ i oni nożÿ i o h mo o mpl j b d o żÿ o o n
żÿ j h n pi żÿ żÿ m odżÿ po oj mu hożÿ  p o mo niu obi o m. żÿ o żÿ i lu p o
j dom żÿln impl m n j j up nożÿ i 
jżÿ . ombin j lu o h
Li ti×g 6.
p p d u m od uni możÿli i mi nżÿ j j impl 
_
m n ji j h. Li in u p d iono po b p 
do j impl m n ji po ln h m od b jn j l 
b o j. i m l dl o iżÿ ni p obl mu p użÿ iu
b jn j l b o j p d ion o n un u .
o iżÿ ni p obl mu p d ion o n po żÿ u 
u u p użÿ iu b jn j l b o j umożÿli i o n m do
d ni do j n j pomo ni j l no h m od h

Li ti×g 4.

_



żÿ
żÿ






l l l
oz zerze×ie wzor a TempIate
CLogikaPlikNowa
+ utworzPlik(String, IUchwyt) : CPlik
+ obsluzWyjatek(Uchwyt) : void
+ zamknijPlik(String) : void
<> <> <> <>
CAkcja 1 CAkcja 2 CAkcja 3
+ rejestrujPlik(CEnumPlikTyp) : CPlik + rejestrujPlik(CEnumPlikTyp) : CPlik
+ zapiszBlad() : void + zapiszBlad() : void
- rejestrujPlikDoc() : void - zapiszBladPlikXsl() : void
- zapiszBladPlikDoc() : void - rejestrujPlikXsl() : void
<> <>
CBazowyPlik
+ blad() : void
+ rejestrujPlik(CEnumPlikTyp) : CPlik
# wyrejestrujPlik(string) : void
- zapiszInfo() : void
u×ek . żÿ żÿ
j n i p o mi d niujżÿ hi hiżÿ d i d i  ni i l pom . M żÿlżÿ żÿ o iżÿ ni p n o 
ni miżÿd obi mi i p ujżÿ ob u żÿ p n j un  n i om ion ul j. p o d ni pomo ni 
jon lnożÿ i do l po hodn h n ni i żÿ o  o in j u lub b jn j l b o j żÿmi o możÿ
o o . obl m n iżÿ i d b  n b do żÿ żÿ do iżÿżÿ om i jżÿ h o m
on żÿ ożÿ o n liżÿm ul niżÿ i m o pl i po o żÿ j j o b d o p d n j o o 
du . n udio ni li u o m o u ni . żÿ


Wyszukiwarka