Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПрИС / Бабич UML первое знакомство

.pdf
Скачиваний:
99
Добавлен:
05.02.2016
Размер:
11.15 Mб
Скачать

Лекциfl 2

Ви‰ы ‰и‡„ ‡мм UML

Рис. 2.23

инф ‡ст укту ы, н‡ кото ую бу‰ет ‡з‚е нуто п иложение. Вот ‰лfl это-

„о-то и нужны ‰и‡„ ‡ммы ‡з‚е ты‚‡ниfl, кото ые ин‡ н‡зы‚‡ют ‰и‡- „ ‡мм‡ми ‡змещениfl.

Дум‡ю, оче‚и‰но, что т‡кие ‰и‡„ ‡ммы есть смысл ст оить только ‰лfl ‡пп‡ ‡тно-п о„ ‡ммных систем, т‡ к‡к UML поз‚олflет ст оить мо‰ели любых систем, не обflз‡тельно компьюте ных.

К‡кую пользу можно из‚лечь из ‰и‡„ ‡мм ‡з‚е ты‚‡ниfl? Во-пе - ‚ых, „ ‡фическое п е‰ст‡‚ление ИТ-инф ‡ст укту ы может помочь бо-

лее ‡цион‡льно ‡сп е‰елить компоненты системы по узл‡м сети, от че„о,

к‡к из‚естно, 燂исит ‚ том числе и п оиз‚о‰ительность системы. Во-

51

Ку с

UML: Пе ‚ое зн‡комст‚о

‚то ых, т‡к‡fl ‰и‡„ ‡мм‡ может помочь ешить множест‚о ‚спомтельных 燉‡ч, с‚flз‡нных, н‡п име , с обеспечением безоп‡сности.

Д臄 ‡мм‡ ‡з‚е ты‚‡ниfl пок‡зы‚‡ет тополо„ию системы и ‡сп е- ‰еление компоненто‚ системы по ее узл‡м, ‡ т‡кже сое‰инениfl Ñ м‡ ш-уты пе 則чи инфо м‡ции меж‰у ‡пп‡ ‡тными узл‡ми. Это е‰инст‚ен- н‡fl ‰и‡„ ‡мм‡, н‡ кото ой п именflютсfl Çт ехме ныеÈ обозн‡чениfl: узлы системы обозн‡ч‡ютсfl кубик‡ми. Все ост‡льные обозн‡чениfl ‚ UML Ñ плоские фи„у ы. Но п и‚е‰ем п име ( ис. 2.24):

Рис. 2.24

Дум‡ем, и без объflснений понflтно, что описы‚‡ет эт‡ ‰и‡„ ‡мм‡.

А‚от ‰и‡„ ‡мм‡ ‡з‚е ты‚‡ниfl с большим количест‚ом узло‚ ( ис. 2.25).

Иопflть ‚се понflтно! Это инф ‡ст укту ‡ некое„о учебно„о 燂е‰е- ниfl, ‚ключ‡ющ‡fl шлюз, ф‡йл-се ‚е , п инт-се ‚е , п инте ы ‚ л‡бо ‡- то иflх и холле и т. ‰. Пользтель (‚е оflтно, сту‰ент или п еп‚‡тель) может получить ‰оступ к этим есу с‡м либо со с‚оей ‰ом‡шней м‡шины, либо с ‡бочих ст‡нций, н‡хо‰flщихсfl ‚ л‡бо ‡то иflх ‚уз‡. Об ‡тите ‚ним‡ние н‡ по‰писи по‰ линиflми, пок‡зы‚‡ющими линии пе 則чи инфо м‡ции, н‡п име , ‚и‰но, что ‡боч‡fl ст‡нциfl получ‡ет ‰оступ к ф‡йл‡м, х ‡нflщимсfl н‡ ф‡йл-се ‚е е, пос е‰ст‚ом NFS. Т‡кже хо ош‡fl и‰еfl Ñ fl‰ом с обозн‡чением узл‡ пе ечислить п о„ ‡ммное обеспечение, уст‡но‚ленное н‡ ‰‡нном узле, к‡к это с‰ел‡но, н‡п име , ‰лfl ‡бочей ст‡нции.

А еще н‡ ‰и‡„ ‡мм‡х ‡з‚е ты‚‡ниfl можно обозн‡ч‡ть компоненты системы, т. е. пок‡зы‚‡ть их ‡сп е‰еление по ‡пп‡ ‡тным узл‡м, но н‡ этом мы пок‡ ост‡н‡‚л肇тьсfl не бу‰ем: этих ‰‚ух п име о‚ уже ‰ост‡-

52

Лекциfl 2

Ви‰ы ‰и‡„ ‡мм UML

Рис. 2.25

точно, чтобы ‚ы н‡учились ‡споз퇂‡ть этот ‚и‰ ‰и‡„ ‡мм, ‚е‰ь п ‡‚‰‡? Если ‰‡, то пой‰ем ‰‡льше.

ООП и после‰о‚‡тельность пост оениfl ‰и‡„ ‡мм

П очит‡‚ м‡те и‡л этой лекции, нете пели‚ый чит‡тель ск‡жет: ÇЭто ‚е‰ь ‚се элемент‡ но!È. Д‡, это п ‡‚‰‡, п остые 燉‡чи еш‡ютсfl с помощью UML без особо„о т у‰‡. А ‚от более сложные системы, п о- чит‡‚ только эту лекцию, ‚озможно, т‡к же ‡‰еꂇтно смо‰ели ть не у‰‡стсfl. Естест‚енно, чит‡ть об UML не‰ост‡точно Ñ н‡‰о им поль-

зтьсfl! Может быть, ‰‡же с ‡зу ‚ы че„о-то и не поймете, но по ме е у‚еличениfl опыт‡ использниfl UML ‚ы ‚се лучше н‡чнете поним‡ть е„о конст укции. Т‡к же к‡к и ‰ у„ие flзыки, UML т ебует особо„о способ‡ мышлениfl, умениfl ‡ссм‡т 肇ть систему с ‡зных сто он и точек з ениfl.

Можно ‰‡ть множест‚о екоме퉇ций относительно то„о, к‡кие же именно ‰и‡„ ‡ммы ст оить и к‡к, но мы бу‰ем к ‡ткими. П еж‰е ‚се„о, ‚ы ‰олжны от‚етить ‰лfl себfl н‡ т‡кие ‚оп осы:

К‡кие именно ‚и‰ы ‰и‡„ ‡мм лучше ‚се„о от ‡ж‡ют ‡ хитекту у системы и ‚озможные технические иски, с‚flз‡нные с п оектом?

53

Ку с

UML: Пе ‚ое зн‡комст‚о

К‡кие из ‰и‡„ ‡мм у‰обнее ‚се„о п е‚ ‡тить ‚ инст умент кон- т олfl 퇉 п оцессом (и п о„ ессом) ‡з ‡ботки системы?

И еще о‰но Ñ ник‡ не ‚ыб ‡сы‚‡йте ‰‡же Çз‡б ‡кнныеÈ ‰и‡-

„ ‡ммы: они мо„ут ‚ ‰‡льнейшем ок‡з‡тьсfl полезными п и ‡н‡лизе н‡- п ‡‚лениfl ‚‡шей мысли, поиске ошибок п оекти ниfl, ‰‡ и п осто ‰лfl экспе именто‚ по незн‡чительному изменению системы.

Д臄 ‡ммы, к‡к уже „о‚о илось ‚ыше, можно и нужно ст оить ‚ некото ой ло„ической после‰о‚‡тельности. Но к‡к ‚ы ‡бот‡ть эту после‰о- ‚‡тельность, если у ‚‡с нет опыт‡ мо‰ели ниfl? К‡к н‡учитьсfl этому? Вот несколько п остых п иемо‚, кото ые помо„ут ‚‡м (или ‚‡шей ко- м‡н‰е) ‚ы ‡бот‡ть с‚ой стиль п оекти ниfl.

В UML-п оекти нии, к‡к и п и со片нии любых ‰ у„их мо‰е- лей, ‚‡жно уметь ‡бст ‡„и тьсfl от несущест‚енных с‚ойст‚ системы. В этом пл‡не очень полезными мо„ут ок‡з‡тьсfl коллек-

ти‚ные уп ‡жнениfl н‡ ‚ыfl‚ление и ‡н‡лиз п еце‰енто‚. Они помо-

„ут от ‡бот‡ть 퇂ыки ‚ыfl‚лениfl четких ‡бст ‡кций.

Неплохой способ н‡ч‡ть Ñ мо‰ели ние б‡зо‚ых ‡бст ‡кций или по‚е‰ениfl о‰ной из уже имеющихсfl у ‚‡с систем.

Ст ойте мо‰ели п е‰метной обл‡сти 燉‡чи ‚ ‚и‰е ‰и‡„ ‡ммы кл‡с-

со‚! Это хо оший способ понflть, к‡к ‚изу‡лизи ть множест‚‡ ‚з‡имос‚flз‡нных ‡бст ‡кций. Т‡ким же об ‡зом ст ойте мо‰ели ст‡тической ч‡сти 燉‡ч.

Мо‰ели уйте ‰ин‡мическую ч‡сть 燉‡чи с помощью п остых ‰и‡- „ ‡мм после‰о‚‡тельностей и коопе ‡ции. Хо ошо н‡ч‡ть с мо‰ели ‚з‡имо‰ейст‚иfl пользтелfl с системой Ñ т‡к ‚ы сможете ле„ко ‚ы‰елить н‡иболее ‚‡жные п еце‰енты.

Не з‡бы‚‡ем, что мы „о‚о им, п еж‰е ‚се„о, именно об объектно- о иенти нных систем‡х. Поэтому, по‰ытож肇fl ‚се ск‡з‡нное ‡нее, можно п е‰ложить т‡кую после‰о‚‡тельность пост оениfl ‰и‡„ ‡мм:

‰и‡„ ‡мм‡ п еце‰енто‚,

‰и‡„ ‡мм‡ кл‡ссо‚,

‰и‡„ ‡мм‡ объекто‚,

‰и‡„ ‡мм‡ после‰о‚‡тельностей,

‰и‡„ ‡мм‡ коопе ‡ции,

‰и‡„ ‡мм‡ состоflний,

‰и‡„ ‡мм‡ ‡кти‚ности,

‰и‡„ ‡мм‡ ‡з‚е ты‚‡ниfl.

Конечно, это не е‰инст‚енн‡fl ‚озможн‡fl после‰о‚‡тельность. Возмож-

но, ‚‡м бу‰ет у‰обнее н‡ч‡ть с ‰и‡„ ‡ммы кл‡ссо‚. А может, ‚‡м не нужны ‰и‡„ ‡ммы объекто‚, ‡ ‰и‡„ ‡ммы после‰о‚‡тельностей ‚ы п е‰почит‡ете ‰и‡„ ‡мм‡м коопе ‡ции. Это лишь о‰ин из путей, постепенно ‚ы ‚ы ‡бот‡- ете с‚ой пе сон‡льный стиль п оекти ниfl и с‚ою после‰о‚‡тельность!

54

Лекциfl 2

Ви‰ы ‰и‡„ ‡мм UML

И н‡после‰ок еще несколько со‚ето‚ относительно использниfl

UML.

Хо ошее и полезное уп ‡жнение Ñ ст оить мо‰ели кл‡ссо‚ и отношений меж‰у ними ‰лfl уже н‡пис‡нно„о ‚‡ми к н‡ С++

или Java.

П именflйте UML ‰лfl то„о, чтобы п оflснить неfl‚ные ‰ет‡ли е- ‡лиз‡ции сущест‚ующей системы или использнные ‚ ней Çхи- т ые мех‡низмы п о„ ‡мми ниflÈ.

Ст ойте UML-мо‰ели, п еж‰е чем н‡ч‡ть но‚ый п оект. Только к‡ бу‰ете ‡бсолютно у‰о‚лет‚о ены полученным езульт‡том, н‡чин‡йте использть их к‡к осно‚у ‰лfl ко‰и ниfl.

Об ‡тите особое ‚ним‡ние н‡ с е‰ст‚‡ UML ‰лfl мо‰ели ниfl компоненто‚, п‡ ‡ллельности, ‡сп е‰еленности, п‡тте но‚ п оекти ниfl. Большинст‚о из этих ‚оп осо‚ мы ‡ссмот им ‰‡лее.

UML со‰е жит некото ые с е‰ст‚‡ ‡сши ениfl. По‰ум‡йте, к‡к можно п испособить flзык к п е‰метной обл‡сти ‚‡шей 燉‡чи. И не слишком у‚лек‡йтесь обилием с е‰ст‚ UML: если ‚ы ‚ к‡ж‰ой ‰и‡„ ‡мме бу‰ете использть ‡бсолютно ‚се с е‰ст‚‡ UML, п очесть со片нную ‚‡ми мо‰ель смо„ут лишь с‡мые опытные пользтели.

К оме п оче„о, ‚‡жным моментом з‰есь fl‚лflетсfl ‚ыбо п‡кет‡ UMLмо‰ели ниfl (CASE-с е‰ст‚‡), что тоже может по‚лиflть н‡ ‚‡ш ин‰и‚и- ‰у‡льный стиль п оекти ниfl. Более по‰ обно мы по„о‚о им об этом ‚ о‰ной из после‰ующих лекций, пок‡ же отметим, что ‚се ‰и‡„ ‡ммы, ‚и- ‰енные ‚‡ми ‚ этой лекции, пост оены с помощью TAU G2 от Telelogic.

Вы‚о‰ы

Д臄 ‡ммы ‡зных ‚и‰о‚ поз‚олflют ‚з„лflнуть н‡ систему с ‡з- ных точек з ениfl.

UML со‰е жит ‰и‡„ ‡ммы т ех типо‚ Ñ ‰лfl мо‰ели ниfl ст‡- тической ст укту ы, по‚е‰енческих ‡спекто‚ и по‰ обностей е- ‡лиз‡ции п иложениfl.

Не‰ост‡точно чит‡ть об UML Ñ им 퇉о пользтьсfl!

Конт ольные ‚оп осы

Почему нужно ст оить ‡зные ‰и‡„ ‡ммы п и мо‰ели нии системы?

К‡кие ‰и‡„ ‡ммы соот‚етст‚уют ст‡тическому п е‰ст‡‚лению о системе?

55

Ку с

UML: Пе ‚ое зн‡комст‚о

К‡кие ‰и‡„ ‡ммы п е‰ст‡‚лflют систему ‚ ‰ин‡мике?

Вы ‡з ‡б‡ты‚‡ете компьюте ную п о„ ‡мму ‰лfl и„ ы ‚ ш‡хм‡- ты. К‡к‡fl ‰и‡„ ‡мм‡ UML был‡ бы полезной ‚ этом случ‡е? Почему?

Сост‡‚ьте список ‚оп осо‚ потенци‡льному пользтелю т‡кой п о„ ‡ммы. Объflсните, почему ‚ы хотели бы 燉‡ть именно их.

Список использнных источнико‚

1.Г. Буч, А. Джекобсон, Дж. Р‡мбо. UML: Руко‚о‰ст‚о пользтелfl. Ð http://alice.stup.ac.ru/~dvn/uproc/books/uml_user_guide/index.htm.

2.Унифици нный flзык мо‰ели ниfl ПО. Scott W. Ð Ambler Copyright © 1998 Software Development magazine. Ð http://zone1c.narod.ru/.

3.Дж. Шмуле . Ос‚ой с‡мостоflтельно UML з‡ 24 ч‡с‡. Ð 2-е из‰., пе . с ‡н„л. М.: Из‰. ‰ом ÇВильflмсÈ, 2002.

4.Леоненко‚. С‡моучитель по UML. Ð http://khpi-iip.mipk.kharkiv.edu/library/case/leon/index.html.

5.OMG Unified Modeling Language Specification. Ð Copyright © 2000, Object Management Group. Ð http://www.omg.org/cgi-bin/apps/ doc?formal/03-03-01.pdf.

6.Sample: The UML ©. Dr. Richard J. Botting, California State University. Ð http://www.csci.csusb.edu/dick/samples/uml.html.

56

Лекциfl 3

Д臄 ‡мм‡ кл‡ссо‚: к упным пл‡ном

Лекциfl 3. Д臄 ‡мм‡ кл‡ссо‚: к упным пл‡ном

Д臄 ‡мм‡ кл‡ссо‚ Ñ о‰ин из н‡иболее ч‡сто используемых ‚и‰о‚ ‰и‡„ ‡мм UML. Обычно со片ние ‰и‡„ ‡ммы кл‡ссо‚ зн‡менует собой оконч‡ние п оцесс‡ ‡н‡лиз‡ и н‡ч‡ло п оцесс‡ п оекти ниfl. Мы уже ‚ст еч‡лись с ними ‚ лекции ÇВи‰ы ‰и‡„ ‡ммÈ, ‡ тепе ь изучим их более ‚ним‡тельно. В этой лекции мы ‡ссмот им т‡кие ‚оп осы:

К‡к кл‡сс изоб ‡ж‡етсfl н‡ ‰и‡„ ‡мме UML?

А что ‚нут и?

К‡к использть объекты кл‡сс‡?

Вс儉‡ ли нужно со片‚‡ть но‚ые кл‡ссы?

Отношениfl меж‰у кл‡сс‡ми.

К‡к кл‡сс изоб ‡ж‡етсfl н‡ ‰и‡„ ‡мме UML?

А хитекто п о„ ‡ммно„о обеспечениfl ‚ пе ‚ую оче е‰ь об ‡щ‡ет ‚ним‡ние н‡ объекты п е‰метной обл‡сти. П о„ ‡ммист же концент и у- етсfl н‡ по‚е‰ении этих объекто‚, пользуflсь кл‡сс‡ми, к кото ым они п и- 퇉леж‡т. Вот поэтому-то ‰и‡„ ‡мм‡ кл‡ссо‚ и fl‚лflетсfl о‰ной из ‚‡жнейших ‰и‡„ ‡мм UML. Он‡ используетсfl ‰лfl ‰окументи ниfl п о„ ‡ммных систем, и осно‚ным ее компонентом fl‚лflетсfl кл‡сс. Что т‡кое кл‡сс, мы уже „о‚о или ‡нее, к‡ зн‡комились с ‚艇ми ‰и‡„ ‡мм UML. В п е‰ы‰ущей лекции мы ‡ссм‡т 肇ли н‡зн‡чение ‰и‡„ ‡ммы кл‡ссо‚, зн‡комились с п име ‡ми „ото‚ых ‰и‡„ ‡мм, но не ‚ник‡ли ‚ тонкости обозн‡чений, используемых н‡ ‰и‡„ ‡мме. В тех п име ‡х ‚се к‡з‡лось н‡м очень понflтным и ло„ичным. Тем не менее, некото ые ню‡нсы ‚се же сле‰ует ‡ссмот еть, и к‡к ‡з этим мы сейч‡с и з‡ймемсfl.

Кл‡сс н‡ ‰и‡„ ‡мме изоб ‡ж‡етсfl ‚ ‚и‰е п flмоу„ольник‡, ‡з‰еленно„о „о изонт‡льными линиflми н‡ т и ч‡сти. В пе ‚ой ч‡сти ук‡зы‚‡етсfl н‡з‚‡ние кл‡сс‡. К‡к п ‡‚ило, имfl кл‡сс‡ состоит из о‰но„о, м‡ксимум ‰‚ух сло‚. Вто ‡fl ч‡сть со‰е жит пе ечень ‡т ибуто‚ кл‡сс‡, кото ые х‡-‡кте изуют тот или иной объект это„о кл‡сс‡ ‚ мо‰ели п е‰метной обл‡-

Рис. 3.1

57

Ку с

UML: Пе ‚ое зн‡комст‚о

сти. Т етьfl ч‡сть со‰е жит пе ечень опе ‡ций, от ‡ж‡ющих е„о по‚е‰е- ние ‚ мо‰ели п е‰метной обл‡сти ( ис. 3.1). Все очень п осто, не т‡к ли?

А что ‚нут и?

Мы узн‡ли, к‡к кл‡сс изоб ‡ж‡етс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м объект‡ со сто оны ‰ у„их объекто‚. З‚учит это немно„о пу„‡юще, но н‡ с‡мом ‰еле ‚се п осто. Если ‡т ибут или опе ‡циfl опис‡ны с мо‰ифик‡то ом private, то ‰оступ к ним можно получить только из опе ‡ции, оп е‰еленной ‚ том же кл‡ссе. Если же ‡т ибут или опе ‡циfl опис‡ны с мо‰ифик‡то ом ‚и‰имости public, то

58

Лекциfl 3

Д臄 ‡мм‡ кл‡ссо‚: к упным пл‡ном

к ним можно получить ‰оступ из любой ч‡сти п о„ ‡ммы. Мо‰ифик‡то protected ‡з еш‡ет ‰оступ только из опе ‡ций это„о же кл‡сс‡ и кл‡ссо‚, со片‚‡емых н‡ е„о осно‚е. В flзык‡х п о„ ‡мми ниfl мо„ут ‚ст еч‡тьсfl мо‰ифик‡то ы ‚и‰имости, о„ ‡нич肇ющие ‰оступ н‡ более ‚ысоком у о‚не, н‡п име , к кл‡сс‡м или их „ упп‡м, о‰н‡ко смысл инк‡псулflции от это„о не изменflетсfl. В UML ‡т ибуты и опе ‡ции с мо‰ифик‡то ‡ми ‰оступ‡ обозн‡ч‡ютсfl специ‡льными сим‚ол‡ми сл傇 от их имен:

Сим‚ол

Зн‡чение

 

 

+

public Ñ отк ытый ‰оступ

 

 

-

private Ñ только из опе ‡ций то„о же кл‡сс‡

 

 

#protected Ñ только из опе ‡ций это„о же кл‡сс‡ и кл‡ссо‚, со片‚‡емых н‡ е„о осно‚е

Рис. 3.2

Р‡ссмот енный ‡нее п име с теле‚изо ом с е‰ст‚‡ми UML (конечно же, это очень ‚ысокоу о‚н傇fl ‡бст ‡кциfl) можно изоб ‡зить т‡к

( ис. 3.2):

Не п ‡‚‰‡ ли, ‚се понflтно и п е‰ельно п осто? З‡чем, н‡п име , пользтелю зн‡ть число‚ые зн‡чениfl ч‡стот к‡н‡ло‚? Он зн‡ет, что ‰о- ст‡точно з‡пустить п оце‰у у ‡‚том‡тическо„о поиск‡ к‡н‡ло‚ и теле‚изо ‚се с‰ел‡ет з‡ не„о. Вот ‚‡м и инк‡псулflциfl Ñ ок‡зы‚‡етсfl, он‡ по‚сю‰у ‚ок у„ н‡с. О„лflнитесь и по‰ум‡йте, сколько ‚ещей ‚ок у„ имеют ск ытые с‚ойст‚‡ и ‚ыполнflют ск ытые опе ‡ции. Испу„‡лись? Вот то-то же!

59

Ку с

UML: Пе ‚ое зн‡комст‚о

К‡к использть объекты кл‡сс‡?

Ит‡к, мы ‡ссмот ели инк‡псулflцию Ñ о‰но из с е‰ст‚ з‡щиты объекто‚. Все ‚ о‰е бы понflтно, но к‡к же именно ‡бот‡ть с объектом? Если уж „о‚о ить о з‡щите объект‡, то чтобы он‡ ‰ейст‚ительно был‡ эффекти‚ной, 퇉о поз‡ботитьсfl о некоем ст‡н‰‡ тном и безоп‡сном, не 燂исflщим от flзык‡ п о„ ‡мми ниfl способе ‰оступ‡ к объекту. К тому же т‡кой ст‡н‰‡ тный способ ‰оступ‡ ‰олжен быть п остым и с точки з ениfl использниfl, и с точки з ениfl е‡лиз‡ции. Вспомните п име с теле‚изо ом. Н‡жим‡fl кнопки н‡ пульте, мы ож艇ем, что теле‚изо откликнетсfl н‡ это ‰ейст‚ие к‡ким-то оп е‰еленным об ‡зом Ñ именно т‡к, к‡к мы ож艇ем, ‡ не ин‡че. То есть, с о‰ной сто оны, пульт ДУ fl‚- лflетсfl с е‰ст‚ом ‰оступ‡ к ск ытым опе ‡циflм, ‚ыполнflемым теле‚изо-ом, ‡ с ‰ у„ой сто оны Ñ пульт обеспеч肇ет нужное ‰лfl н‡с по‚е‰ение теле‚изо ‡. В ‰‡нном п име е именно пульт fl‚лflетсfl т‡ким ст‡н‰‡ тным с е‰ст‚ом ‰оступ‡ к теле‚изо у. Можно ‰‡же ск‡з‡ть, с е‰ст‚ом ‰оступ‡, не 燂исflщим от конк етной мо‰ели теле‚изо ‡ Ñ ‚спомните об уни‚е - с‡льных пульт‡х и о том, к‡к отключ‡ете з‚ук 퇉ое‰ли‚ой екл‡мы н‡ эк ‡не ‚ ‚‡„оне пое片, используfl КПК!

В том же п име е с теле‚изо ом у н‡с ‚пе ‚ые п омелькнуло сло‚о инте фейс. И не случ‡йно п омелькнуло: именно т‡к н‡зы‚‡ют тот с‡мый ст‡н‰‡ тный способ ‰оступ‡ к объекту. Более ст о„о, инте фейс Ñ это ло„и- ческ‡fl „ упп‡ отк ытых (public) опе ‡ций объект‡. О‰ин и тот же объект может иметь несколько инте фейсо‚. У теле‚изо ‡, н‡п име , их ‰‚‡ Ñ пульт ДУ и кнопки н‡ ко пусе. А может и больше Ñ ‚спомните о ‚озможности уп-‡‚лflть быто‚ой техникой с помощью КПК или уни‚е с‡льно„о пульт‡ ДУ.

Кст‡ти, посмот ите ‚ним‡тельнее н‡ пульт ДУ или н‡ эк ‡н п о- „ ‡ммы у‰‡ленно„о конт олfl. Что ‚ы ‚и‰ите Ñ кнопки? Или кнопки, с„ уппи нные по функцион‡льному п изн‡ку? Д‡, именно т‡к: кнопки, пе еключ‡ющие к‡н‡лы, ‡сположены от‰ельно, fl‰ом Ñ „ упп‡ кнопок, от‚еч‡ющих з‡ е„ули о‚ку „ омкости з‚ук‡, fl‰ом Ñ „ упп‡ п о„ ‡мми уемых кнопок, и т. ‰. В п инципе, можно ск‡з‡ть, что пульте‡лизует не о‰ин, ‡ несколько инте фейсо‚ Ñ по числу функцион‡льных „ упп кнопок. Вп очем, это уже фо м‡лизм: мы п осто хотели п оиллюст и ть сл Çло„ическ‡fl „ упп‡È ‚ оп е‰елении инте фейс‡.

О‰н‡ко инте фейс Ñ это не только и не столько „ упп‡ опе ‡ций объект‡. Инте фейс от ‡ж‡ет ‚нешние п оfl‚лениfl объект‡, пок‡зы‚‡ет, к‡ким об ‡зом осущест‚лflетсfl ‚з‡имо‰ейст‚ие с ним, ск ы‚‡fl ост‡льные ‰ет‡ли, не имеющие отношениfl к п оцессу ‚з‡имо‰ейст‚иfl.

Инте фейс ‚с儉‡ е‡лизуетсfl некото ым кл‡ссом, кото ый ‚ т‡ком случ‡е н‡зы‚‡ют кл‡ссом, пе ж肇ющим инте фейс. К‡к мы уже „о‚о-или ‡нее, о‰ин и тот же объект может иметь несколько инте фейсо‚. Это

60

Соседние файлы в папке ПрИС