Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ распрСдСлСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 99

Автор Π₯ьюз ΠšΠ°ΠΌΠ΅Ρ€ΠΎΠ½

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ обозначаСтся ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΠΎΠΉ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ (со стрСлкой), которая ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ зависимости слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° конструкция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ. ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ обозначаСтся сплошной Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ со стрСлкой, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс (супСркласс). ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ обобщСния слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° конструкция Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Ассоциация обозначаСтся сплошной Π»ΠΈΠ½ΠΈΠ΅ΠΉ, которая соСдиняСт ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠ»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ конструкции. ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ассоциации слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° конструкция структурно связана с Π΄Ρ€ΡƒΠ³ΠΎΠΉ. НСкоторыС стСрСотипы ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ зависимостям, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 10.2. Π­Ρ‚ΠΈ стСрСотипы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для отобраТСния зависимостСй ΠΌΠ΅ΠΆΠ΄Ρƒ классами, ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, состояниями ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ. Π‘Ρ‚Π΅Ρ€Π΅ΠΎΡ‚ΠΈΠΏΡ‹ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ обобщСниям ΠΈ ассоциациям, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 10.3 ΠΈ 10.4. Если стСрСотипы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ графичСскиС Β«ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ΠΈΡΒ», ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

Π’Π°Π±Π»ΠΈΡ†Π° 10.2. Π‘Ρ‚Π΅Ρ€Π΅ΠΎΡ‚ΠΈΠΏΡ‹, примСняСмыС ΠΊ зависимостям

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ

ОписаниС

<< bind >> (<< ΡΠ²ΡΠ·Π°Ρ‚ΡŒ>>)

источник Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ peΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

<<friend>>(<<Π΄Ρ€ΡƒΠ³>>)

Β Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ источника распространяСтся Π½Π° содСрТимоС приСмника

<<instanceOf>>Β (<<экзСмпляр>>)

источник являСтся экзСмпляром ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°;ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡΒ Π΄Π»Ρ опрСдСлСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

<< instantiate>>(<< ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр>>)

 источник создаСт экзСмпляры ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°;ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

<< refine>>Β (<< ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ >>)

источник прСдставляСт Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡΠ΄Π»Ρ опрСдСлСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классами

<< use >>

источник зависит ΠΎΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ (public) интСрфСйса ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°

(<< ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ>>)

<< become>>(<< ΡΡ‚Π°Ρ‚ΡŒ>>)

Β ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ совпадаСт с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ-источником, Π½ΠΎ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°; ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, состояния ΠΈ ΠΏΡ€.

<<call>>

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-источник Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°

(<< Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ>>)

<< сору >>(<< ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ>>)

Β ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ являСтся Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈ нСзависимой ΠΊΠΎΠΏΠΈΠ΅ΠΉ Β ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-источника

<<access >>(<< ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ>>)

 исходному ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ прСдоставляСтся ΠΏΡ€Π°Π²ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° элСмСнты ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

<<extend>>Β (<< Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ>>)

Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ источника

<<include>>(<< Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ>>)

Β Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ источника ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚ Β ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°

Ассоциации ΠΈΠΌΠ΅ΡŽΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ стСрСотипам, пСрСчислСнным Π² Ρ‚Π°Π±Π». 10.4:

β€’ Имя Ассоциация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ ΠΌ Π΅Ρ‚ΡŒ ΠΈ ΠΌ я (Π½Π°Π·Π²Π°Π½ΠΈΠ΅), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. К ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ имя.

β€’ Роль  Роль ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выполняСт класс, прСдставлСнный Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ Π»ΠΈΠ½ΠΈΠΈ ассоциации, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ класса, прСдставлСнного Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ этой Π»ΠΈΠ½ΠΈΠΈ.

β€’ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мноТСствСнности ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для указания количСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ связаны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ ассоциации. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠ½Ρ†Π°Ρ… Π»ΠΈΠ½ΠΈΠΈ ассоциации.

β€’ ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ассоциации ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 1 связан с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ 2, Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 2 Π½Π΅ связан с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ 1.

Π’Π°Π±Π»ΠΈΡ†Π° 10.3. Π‘Ρ‚Π΅Ρ€Π΅ΠΎΡ‚ΠΈΠΏΡ‹ ΠΈ ΠΎΠ³Ρ€Π° Π½ ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Β  ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΠΎΠ±Ρ‰Π΅ Π½ иям

β€’ Π‘Ρ‚Π΅Ρ€Π΅ΠΎΡ‚ΠΈΠΏ << implementation >> (Β« рСализация Β») ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ наслСлуСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ родитСля, Π½ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ (public) Π΅Π³ΠΎ интСрфСйсы ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ…

β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ { complete } ({ΠΏΠΎΠ»Π½ΠΎΡ‚Π°}) ΠžΠ±ΡƒΡΠ»ΠΎΠ²Π»ΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Π² ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π°, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² большС Π½Π΅ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ

β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ { incomplete }({Π½Π΅ΠΏΠΎΠ»Π½ΠΎΡ‚Π°}) Π½Π΅ всС ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Π² ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π°, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹

β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ { disjoint } ({Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ}) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ родитСля Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² качСствС Ρ‚ΠΈΠΏΠ°

β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ { overlapping }({ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅}) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ родитСля ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°, Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² качСствС Ρ‚ΠΈΠΏΠ°

Π’Π°Π±Π»ΠΈΡ†Π° 10.4. Π‘Ρ‚Π΅Ρ€Π΅ΠΎΡ‚ΠΈΠΏΡ‹ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ ассоциациям

β€’ navigation (ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅) ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ (Π½Π΅Ρ€Π΅Π²Π΅Ρ€ΡΠΈΠ²Π½ΡƒΡŽ) Π°ΡΡΠΎΡ†ΠΈΠ°Ρ†ΠΈΡŽ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 1 связан с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ 2, Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 2 Π½Π΅ связан с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ 1

β€’ aggregation (Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ связь Β«Ρ†Π΅Π»ΠΎΠ΅-Ρ‡Π°ΡΡ‚ΡŒΒ», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Β«Ρ‡Π°ΡΡ‚ΡŒΒ» Π²ΠΎ врСмя своСго сущСствования связана Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΈΠΌ Β«Ρ†Π΅Π»Ρ‹ΠΌΒ»

β€’ composition (композиция) ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ связь Β«Ρ†Π΅Π»ΠΎΠ΅-Ρ‡Π°ΡΡ‚ΡŒΒ», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Β«Ρ‡Π°ΡΡ‚ΡŒΒ» Π²ΠΎ врСмя своСго сущСствования ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связана Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΈΠΌ Β«Ρ†Π΅Π»Ρ‹ΠΌΒ»

β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ { implicit } ({нСявноС}) ΠžΠ±ΡƒΡΠ»ΠΎΠ²Π»ΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ являСтся ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ

β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ { ordered } ({ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ}) ΠžΠ±ΡƒΡΠ»ΠΎΠ²Π»ΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ ассоциации упорядочСны

β€’ Бвойство { changeable } ({ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ}) ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

β€’ Бвойство { addOnly } ({Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ}) ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ связи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π² Π» Π΅Π½Ρ‹ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ ассоциации

β€’ Бвойство { frozen } ({ΠΆΠ΅ΡΡ‚ΠΊΠΎΡΡ‚ΡŒ}) ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ связь, которая послС добавлСния ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ ассоциации Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π°

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Ρ‹Π΅ классы

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Ρ‹ΠΉ класс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ интСрфСйса Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса ΠΈΠ»ΠΈ мноТСства классов. Вакая модификация ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ использованиС класса, Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ, бСзопасным ΠΈΠ»ΠΈ сСмантичСски ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ интСрфСйсных классов ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ шаблонов (Standard Template LibrΠ°rΡƒ β€” STL). АдаптСры ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ (public) интСрфСйс для Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠ°ΠΊ deque (double-ended queue β€” ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ с двусторонни ΠΌ доступо ΠΌ), vector (Π²Π΅ΠΊΡ‚ΠΎΡ€) ΠΈ list (список). Расс ΠΌ ΠΎΡ‚Ρ€ΠΈ ΠΌ ΠΏΡ€ΠΈ ΠΌ Π΅Ρ€. Π’ листин Π³ Π΅ 10.1 прСдставлСно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса stack, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС интСрфСйсно Π³ ΠΎ для ΠΌ ΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ класса vector.

// Листинг 10.1. ИспользованиС класса stack Π² качСствС

// интСрфСйсного класса

template < class Container > class stack {

//...

public:

typedef Container::value_type value_type;

typedef Container::size_type size_type; protected:

Container с;

public: