ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2019
Просмотров: 6272
Скачиваний: 39
лен ный то ‚‡ ок‡ з‡л сfl б‡ ко ‚‡н ным, не пи „о‰ ным к ис поль зо ‚‡ нию
или по по с ту н‡м не по н‡ ‚ил сfl: со сто fl ние упо мfl ну той б‡ зы ‰‡н ных
‚но‚ь об но‚ лfl ет сfl — но те пеь уже ‚ сто о ну у‚е ли че ниfl ко ли че ст ‚‡ н‡ -
лич ных е‰и ниц оп е ‰е лен но „о то ‚‡ ‡. Т. е. об‡ этих ‰ей ст ‚иfl — и по куп -
к‡, и ‚оз ‚‡т — со ‰е ж‡т (‚клю ч‡ ют ‚ се бfl) т‡ кое ‰ей ст ‚ие, к‡к об но‚ ле -
ние со ‰е жи мо „о БД.
А к‡к же изо б ‡ ж‡ ет сfl ‚клю че ние? Д‡ очень по сто — к‡к з‡ ‚и си -
мость (пунк ти н‡fl ли ниfl со стел кой, по мни те?) со сте ео ти пом
<<include>>
. Пи этом стел к‡ н‡ п‡‚ ле н‡, ес те ст ‚ен но, ‚ сто о ну ‚клю -
ч‡ е мо „о пе це ‰ен т‡. Этот ф‡кт ле„ ко объ flс нить, ес ли ‚спом нить ут ‚еж -
‰е ние, ко то ое мы уже не сколь ко ‡з ис поль зо ‚‡ ли ‚ этой кни „е: стел к‡
‚се „‰‡ н‡ п‡‚ ле н‡ ‚ сто о ну то „о эле мен т‡, от ко то о „о что-то те бу ет сfl,
чьи ми се ‚и с‡ ми поль зу ют сfl. А ес ли счи т‡ть, что объ ем лю щий пе це -
‰ент ‚клю ч‡ ет ‚ се бfl, з‡ им ст ‚у ет (ис поль зу ет) по ‚е ‰е ние ‚клю ч‡ е мых
пе це ‰ен то‚, ст‡ но ‚ит сfl flс но, что стел к‡ мо жет быть н‡ п‡‚ ле н‡ толь -
ко т‡ ким об ‡ зом. А ‚от и ‰и ‡ „‡м м‡, ил лю с т и у ю щ‡fl ‚ы ше ск‡ з‡н ное,
ко то ую мы по з‡ им ст ‚о ‚‡ ли из Zicom Mentor (ис. 6.10):
121
Лекциfl 6
Д臄‡ммы пеце‰енто‚: купным пл‡ном
Рис. 6.10
К‡к хо о шо ‚и‰ но из это „о пи ме ‡, ис поль зо ‚‡ ние ‚клю че ниfl поз -
‚о лfl ет из бе ж‡ть мно „о к‡т но „о опи с‡ ниfl о‰ но „о и то „о же н‡ бо ‡ ‰ей ст -
‚ий — об щее по ‚е ‰е ние мож но по сто опи с‡ть ‚ ‚и ‰е пе це ‰ен т‡, ‚клю -
ч‡ е мо „о ‚ б‡ зо ‚ые.
Н‡ оче е ‰и — от но ше ние
‡с ши е ниfl
. Что бы уflс нить се бе смысл
‡с ши е ниfl, пе‰ ст‡ ‚им се бе, что мы „о ‚о им об оп л‡ те не ко то о „о куп -
лен но „о н‡ ми то ‚‡ ‡. Мы мо жем оп л‡ тить то ‚‡ н‡ лич ны ми, ес ли сум м‡
не пе ‚ы ш‡ ет $ 100. Или оп л‡ тить ке ‰ит ной к‡ той, ес ли сум м‡ н‡ хо -
‰ит сfl ‚ пе ‰е л‡х от $ 100 ‰о $ 1000. Ес ли же сум м‡ пе ‚ы ш‡ ет $ 1000, н‡м
пи ‰ет сfl б‡ть ке ‰ит. Т‡ ким об ‡ зом мы
‡с ши и ли
по ни м‡ ние опе ‡ -
ции оп л‡ ты куп лен но „о то ‚‡ ‡ и н‡ слу ч‡и, ко„ ‰‡ ис поль зу ют сfl ‰у „ие
се‰ ст ‚‡ оп л‡ ты, не же ли н‡ лич ные. Но с‡ ми эти слу ч‡и ‚оз ни к‡ ют толь -
ко пи сто „о оп е ‰е лен ных ус ло ‚и flх: ко„ ‰‡ це н‡ то ‚‡ ‡ по п‡ ‰‡ ет ‚ оп е -
‰е лен ные ‡м ки.
Р‡с ши е ние
‰о пол нfl ет
пе це ‰ент ‰у „и ми пе це ‰ен т‡ ми, «с‡ б‡ ты -
‚‡ ю щи ми» пи не ко то ых ус ло ‚и flх, — по сто ‰о ᇂ лfl ет ‚ ис хо‰ ный пе -
це ‰ент по сле ‰о ‚‡ тель ность ‰ей ст ‚ий, со ‰е ж‡ щу ю сfl ‚ ‰у „ом пе це ‰ен -
те. От но ше ние ‡с ши е ниfl пе це ‰ен т‡ А к пе це ‰ен ту В оз н‡ ч‡ ет, что эк -
земп лfl пе це ‰ен т‡ В мо жет ‚клю ч‡ть ‚ се бfl (пи оп е ‰е лен ных
ус ло ‚и flх, ко то ые мо „ут быть опи с‡ ны ‚ ‡с ши е нии; к‡к имен но опи с‡ -
ны, мы ск‡ жем чуть поз же) по ‚е ‰е ние, опи с‡н ное ‚ пе це ‰ен те А. Пи -
ме по к‡ з‡н н‡ сле ‰у ю щей ‰и ‡ „‡м ме (ис. 6.11):
О‰ н‡ ко ‚ пи ‚е ‰ен ном пи ме е не ‚и‰ но, пи к‡ ких имен но ус ло ‚и -
flх че ло ‚ек ис поль зу ет к‡ж ‰ый кон кет ный спо соб оп л‡ ты. В то же ‚е мfl,
пи мо ‰е ли о ‚‡ нии с ис поль зо ‚‡ ни ем ‡с ши е ниfl мож но ук‡ з‡ть к‡к
ус -
ло ‚иfl
осу ще ст‚ ле ниfl ‡с ши ен но „о по ‚е ‰е ниfl, т‡к и ме с то —
точ ку ‡с -
ши е ниfl
пе це ‰ен т‡, ‚ ко то ой по‰ клю ч‡ ют сfl ‰ей ст ‚иfl из ‡с ши fl ю щих
пе це ‰ен то‚. Вспом ни те опе ‡ то бе зус ло‚ но „о пе е хо ‰‡, ко то ый ‚ы,
Кус
122
UML: Пе‚ое зн‡комст‚о
Рис. 6.11
н‡ ‰е ем сfl, ис поль зо ‚‡ ли ‚ с‚о их по „‡м м‡х не слиш ком ч‡ с то. К‡к толь -
ко ин те пе т‡ то ‰о хо ‰ит ‰о это „о опе ‡ то ‡, он пе е ‰‡ ет уп ‡‚ ле ние н‡
сто ку, ко то ‡fl по ме че н‡ мет кой, ук‡ з‡н ной ‚ этом опе ‡ то е. П‡‚ ‰‡, ‚
слу ч‡е ‡с ши е ниfl ечь и‰ет ско ее об опе ‡ то е ус ло‚ но „о пе е хо ‰‡ —
ко„ ‰‡ ис хо‰ ный пе це ‰ент (‡ имен но, по сле ‰о ‚‡ тель ность ‰ей ст ‚ий, со -
‰е ж‡ щ‡ fl сfl ‚ нем) пи хо ‰ит ‚ точ ку ‡с ши е ниfl, по ис хо ‰ит оцен к‡ ус -
ло ‚ий ‡с ши е ниfl. Ес ли ус ло ‚иfl ‚ы пол нfl ют сfl, пе це ‰ент ‚клю ч‡ ет ‚ се -
бfl по сле ‰о ‚‡ тель ность ‰ей ст ‚ий из ‡с ши fl ю ще „о пе це ‰ен т‡.
Точ к‡ ‡с ши е ниfl опи сы ‚‡ ет сfl ‚ ‰о пол ни тель ном ‡з ‰е ле пе це -
‰ен т‡, от ‰е лен ном от е„о н‡ з‚‡ ниfl „о и зон т‡ль ной ли ни ей — точ но т‡к
же, к‡к ‚ от ‰ель ных ‡з ‰е л‡х пе е чис лfl ют сfl ‡т и бу ты кл‡с с‡ и е„о опе ‡ -
ции. Ни же по к‡ з‡н пи ме опи с‡ ниfl точ ки ‡с ши е ниfl, по з‡ им ст ‚о ‚‡н -
ный н‡ ми из Zicom Mentor (ис. 6.12).
В этом пи ме е е „и с т ‡ циfl п‡с с‡ жи о‚ ‡‚и‡ ей с‡ ‚клю ч‡ ет ‚ се бfl
кон толь служ бы бе зо п‡с но с ти, ‡ пи ус ло ‚ии (ук‡ з‡н ном ‚ пи ме ч‡ нии
по сле слу жеб но „о сло ‚‡ «Condition:»), что че ло ‚ек ч‡ с то ле т‡ ет и с‡ лон пе -
е пол нен (об ‡ ти те ‚ни м‡ ние н‡ опе ‡ то AND, „о ‚о fl щий об о‰ но ‚е -
мен но с ти ‚ы пол не ниfl ус ло ‚ий), кл‡сс би ле т‡ мо жет быть по ‚ы шен, н‡ -
пи ме, с «эко ном» ‰о «биз нес-кл‡с с‡». Пи чем т‡ кой ‡п „ей‰ мо жет по -
123
Лекциfl 6
Д臄‡ммы пеце‰енто‚: купным пл‡ном
Рис. 6.12
изой ти толь ко по сле то „о, к‡к би лет пе‰ъ fl‚ лен н‡ стой ку е „и с т ‡ ции —
это и есть точ к‡ ‡с ши е ниfl. Он‡ опи с‡ н‡ (ее имfl ук‡ з‡ но) ‚ ‰о пол ни -
тель ном ‡з ‰е ле пе це ‰ен т‡ по сле слу жеб ной ф‡ зы «Extension points:».
Пе‰ ‚‡ flfl ‚о пос чи т‡ те лfl, ск‡ жем, что пе це ‰ент мо жет иметь сколь
у„о‰ но мно „о то чек ‡с ши е ниfl. А со по с т‡ ‚ить кон кет ный ‡с ши fl ю -
щий пе це ‰ент с оп е ‰е лен ной точ кой ‡с ши е ниfl мож но, по чи т‡‚ ус -
ло ‚иfl ‡с ши е ниfl, ук‡ з‡н ные ‚ ком мен т‡ и flх, — с‡ мо ус ло ‚ие з‡ пи сы ‚‡ -
ет сfl по сле слу жеб но „о сло ‚‡ «Condition:» ‚ фи „у ных скоб к‡х, з‡ ко то ы -
ми и‰ет слу жеб н‡fl ф‡ з‡ «Extension point:», и по сле нее ук‡ зы ‚‡ ет сfl имfl
точ ки ‡с ши е ниfl. По смо т и те еще ‡з н‡ н‡ш пи ме с е „и с т ‡ ци ей
п‡с с‡ жи о‚ ‚ ‡э о по ту и убе ‰и тесь с‡ ми, что ‚се это очень по сто!
Не ко то ое не ‰о уме ние мо жет ‚ы 炇ть то, что стел к‡ н‡ п‡‚ ле н‡ ‚се -
„‰‡ ‚ сто о ну ‡с ши fl е мо „о пе це ‰ен т‡. Но и это ле„ ко объ flс нить с точ ки
зе ниfl н‡ ше „о те зи с‡, что «стел к‡ ‚се „‰‡ ук‡ зы ‚‡ ет н‡ то „о, от ко то о „о
что-то те бу ют»: ‚е‰ь ‰лfl то „о, что бы пе це ‰ент был ‡с ши ен, нуж но,
что бы он по п‡л ‚ точ ку ‡с ши е ниfl и по ‚е и л‡сь ис тин ность ус ло ‚ий —
толь ко то„ ‰‡ ‰ей ст ‚иfl, со ‰е ж‡ щи е сfl ‚ ‡с ши fl ю щем пе це ‰ен те, смо „ут
быть ‰о ᇂ ле ны ‚ по сле ‰о ‚‡ тель ность ‰ей ст ‚ий ис хо‰ но „о пе це ‰ен т‡. Т‡к
что ‚се п‡ ‚иль но — от ‡с ши fl е мо „о пе це ‰ен т‡ те бу ет сfl точ к‡ ‡с ши -
е ниfl и по ‚е к‡ ус ло ‚ий, по то му и стел к‡ н‡ п‡‚ ле н‡ к не му.
По ‰ы то жи ‚‡fl ‚се ‚ы ше ск‡ з‡н ное, мож но ск‡ з‡ть, что
‡с ши е ние
поз ‚о лfl ет мо ‰е ли о ‚‡ть не о бfl з‡ тель ное по ‚е ‰е ние си с те мы
(был бы кл‡сс
би ле т‡ по ‚ы шен, ес ли бы п‡с с‡ жи не н‡ ле т‡л нуж но „о ко ли че ст ‚‡ миль,
‡ с‡ лон был бы поч ти пуст?). С‡м ф‡кт ‡с ши е ниfl з‡ ‚и сит от ‚ы пол не -
ниfl ус ло ‚ий — ‡с ши е ниfl ‚е‰ь мо жет и не по изой ти! Это по сто от -
‰ель ные по сле ‰о ‚‡ тель но с ти ‰ей ст ‚ий, ‚ы пол нfl е мые лишь пи оп е ‰е -
лен ных об сто fl тель ст ‚‡х и ‚клю ч‡ е мые ‚ оп е ‰е лен ных точ к‡х сце н‡ иfl
(обыч но ‚ е зуль т‡ те fl‚ но „о ‚з‡ и мо ‰ей ст ‚иfl с эк то ом).
О „‡ ни з‡ циfl пе це ‰ен то‚ с по мо щью ‚ы ‰е ле ниfl об ще „о по ‚е ‰е ниfl
(‚клю че ние) и ‡з лич ных ‚‡ и ‡н то‚ по ‚е ‰е ниfl (‡с ши е ние) — ‚‡ж н‡fl
со ст‡‚ лfl ю щ‡fl ч‡сть по цес с‡ ‡з ‡ бот ки по сто „о, сб‡ л‡н си о ‚‡н но „о и
по нflт но „о н‡ бо ‡ пе це ‰ен то‚. Мож но ск‡ з‡ть ‰‡ же, что ис поль зо ‚‡ ние
‚клю че ниfl и ‡с ши е ниfl — пи зн‡к хо о ше „о сти лfl ‚ мо ‰е ли о ‚‡ нии
пе це ‰ен то‚.
Н‡ этом ‡з „о ‚о о но т‡ ции ‰и ‡ „‡мм пе це ‰ен то‚ мож но бы ло бы
и з‡ ‚е шить. Хо те лось бы толь ко ск‡ з‡ть еще п‡ у сло‚ о со от но ше нии
меж ‰у по нfl ти fl ми пе це ‰ен т‡ и
ко о пе ‡ ции
. О ко о пе ‡ ции мы уже „о ‚о -
и ли ‡ нее (по мни те ‰и ‡ „‡м мы ‚з‡ и мо ‰ей ст ‚иfl?) к‡к о мно же ст ‚е о -
лей, ‡ бо т‡ ю щих ‚ме с те, что бы обес пе чить не ко то ое по ‚е ‰е ние си с те -
мы. Мы т‡к же упо ми н‡ ли о том, что пе це ‰ен ты от ‚е ч‡ ют н‡ ‚о пос «что
‰е л‡ ет си с те м‡?», но не „о ‚о flт, к‡к имен но он‡ это ‰е л‡ ет. Н‡ эт‡ пе ‡н‡ -
ли з‡ по ни м‡ть, к‡к имен но си с те м‡ е ‡ ли зу ет с‚ое по ‚е ‰е ние, ‰ей ст ‚и -
Кус
124
UML: Пе‚ое зн‡комст‚о
тель но не нуж но. Но пи пе е хо ‰е к е ‡ ли з‡ ции не пло хо бы зн‡ть,
к‡ кие
имен но кл‡с сы (или ‰у „ие эле мен ты мо ‰е ли), со‚ ме ст но ‡ бо т‡fl, обес пе чи -
‚‡ ют нуж ное по ‚е ‰е ние
. То есть мы ло „ич но пе е шли от ‡з „о ‚о ‡ о пе -
це ‰ен т‡х к ‡з „о ‚о у о ко о пе ‡ ции! Не ‰‡ ом обо зн‡ че ниfl ко о пе ‡ ции и
пе це ‰ен т‡ очень по хо жи (чи т‡ тель, ко неч но, по мнит, что ко о пе ‡ циfl
обо зн‡ ч‡ ет сfl пунк ти ным эл лип сом) (ис. 6.13).
Т‡к ‚ к‡ ком же от но ше нии н‡ хо ‰flт сfl пе це ‰ент и ко о пе ‡ циfl? Из
пе ‰ы ‰у ще „о ‡б з‡ ц‡ ло „ич но сле ‰у ет, что это от но ше ние
е ‡ ли з‡ ции
.
К‡ж ‰ый пе це ‰ент е ‡ ли зу ет сfl о‰ ной или не сколь ки ми ко о пе ‡ ци fl ми.
Это, ко неч но, не оз н‡ ч‡ ет, что кл‡с сы же ст ко ‡с пе ‰е ле ны по ко о пе ‡ -
ци flм: кл‡с сы, пи ни м‡ ю щие уч‡ с тие ‚ ко о пе ‡ ции, е ‡ ли зу ю щей оп е -
‰е лен ный пе це ‰ент, бу ‰ут уч‡ ст ‚о ‚‡ть и ‚ ‰у „их ко о пе ‡ ци flх.
Мо ‰е ли о ‚‡ ние пи по мо щи ‰и ‡ „‡мм
пе це ‰ен то‚
Мо ‰ель пе це ‰ен то‚, по су ти, fl‚ лfl ет сfl
кон цеп ту ‡ль ной мо ‰е лью
си с -
те мы. В ней, к‡к мы уже не ‡з от ме ч‡ ли, ‚ об щих че т‡х опи сы ‚‡ ет сfl
толь ко по ‚е ‰е ние (функ ци о н‡ль ность) си с те мы, ‡ о ‰е т‡ лflх е ‡ ли з‡ ции
ечь не и‰ет — н‡ ‰‡н ном эт‡ пе е ‡ ли з‡ циfl не ‚‡ж н‡, „о ‡з ‰о ‚‡ж нее со -
б‡ть
те бо ‚‡ ниfl к си с те ме
и офо мить их ‚ н‡ „лfl‰ ном ‚и ‰е, по нflт ном и
‡з ‡ бот чи к‡м, и з‡ к‡з чи ку.
Ит‡к, по‰ ‚о ‰fl ито „и, мы мо жем сфо му ли о ‚‡ть ти пи чи ны ис -
поль зо ‚‡ ниfl пе це ‰ен то‚. Или, ‚е нее, ти спо со б‡ ис поль зо ‚‡ ниfl
пе це ‰ен то‚ (не слу ч‡й но ‚ ус ском пе е ‚о ‰е ч‡ с тень ко мож но ‚сте -
тить сло ‚о со че т‡ ние «‚‡ и ‡нт ис поль зо ‚‡ ниfl»!) ‚ хо ‰е ‡ бо ты 퇉 си с -
те мой:
•
Пе це ‰ен ты ‰‡ ют ‚оз мож ность ‡н‡ ли ти к‡м, поль зо ‚‡ те лflм и ‡з -
‡ бот чи к‡м „о ‚о ить н‡ о‰ ном flзы ке:
ис поль зуfl пе це ‰ен ты, ‡н‡ -
ли ти ки (экс пе ты ‚ пе‰ мет ной об л‡ с ти) мо „ут н‡ ос но ‚е по же -
л‡ ний з‡ к‡з чи к‡ опи с‡ть по ‚е ‰е ние си с те мы с точ ки зе ниfl поль -
зо ‚‡ те лfl с т‡ кой сте пе нью ‰е т‡ ли з‡ ции, что ‡з ‡ бот чи ки смо „ут
без ту ‰‡ скон ст у и о ‚‡ть «‚ну т ен но с ти» си с те мы. В то же ‚е -
мfl, но т‡ циfl ‰и ‡ „‡мм пе це ‰ен то‚ н‡ столь ко по ст‡, что ‰‡ же
не по‰ „о то‚ лен ный поль зо ‚‡ тель (з‡ к‡з чик) спо со бен по нflть их
смысл и по мочь ‚ их уточ не нии — ‚е‰ь к‡ тин ки (‡ тем бо лее ко -
125
Лекциfl 6
Д臄‡ммы пеце‰енто‚: купным пл‡ном
Рис. 6.13