ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠ΅ΡΡ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π² соврСмСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ООП — наслСдованиС. Π­Ρ‚ΠΎΡ‚ простой ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс, лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ сущСствуСт, Ρ‚ΠΎ Π½Π΅Ρ‚ нСобходимости Π² ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠΈ Π·Π°Π½ΠΎΠ²ΠΎ всСх ΠΏΠΎΠ»Π΅ΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π². Π’Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ класс являСтся ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ (ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классом) ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ класса, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ (ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классом), ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠ΅ΡΡ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π² соврСмСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • ООП ΠΈ Π΅Π³ΠΎ мСсто Π² ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
  • COM — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
  • ActiveX — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
  • ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ описаний ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (UML ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ)
  • Бпособы примСнСния UML
  • ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

ИспользовавшиСся Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠΌΠ΅Π»ΠΈ ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

НС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΎ стандартов для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. ΠžΠ±ΡŠΠ΅ΠΊΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π½Π° Π‘++, скомпилированный ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ скомпилировано Ρ‚Π΅ΠΌ ΠΆΠ΅ компилятором. Π’Π°ΠΊ ΠΊΠ°ΠΊ компиляторы Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΈΡ€ΠΌ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стандарты, приходится ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. А ΡΡ‚ΠΎ Π½Π΅ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ Ρ„ΠΈΡ€ΠΌΠ°ΠΌ — производитСлям ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

Π‘++ - Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ язык программирования. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠΆΠ΅ Π½Π΅ ΡΠ·Ρ‹ΠΊΠΈ, Π° Ρ†Π΅Π»Ρ‹Π΅ срСды программирования: Delphi, Visual Basic ΠΈ Ρ‚. ΠΏ. Но ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, написанныС Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

Если Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, созданном ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ слСдуСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ся ΠΏΠ΅Ρ€Π΅Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

БОМ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ всС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

БОМ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ путями. Π’ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… сосрСдоточСны ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сСрвисы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

БОМ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ ΡΠ·Ρ‹ΠΊΠ° программирования ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий компиляторов ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка. Ни ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π½ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ Π·Π½Π°ΡŽΡ‚ язык описания Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Π’Π°ΠΆΠ½ΠΎ лишь ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π° Π»ΡŽΠ±ΠΎΠΌ языкС программирования Ρ‚ΠΎΡ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт БОМ.

БОМ исповСдаСт Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… сСрвисов. Π“Π΄Π΅ находится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС: Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ процСссС, являСтся Π»ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ ОБ — доступ ΠΊ Π½Π΅ΠΌΡƒ всСгда осущСствляСтся Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ.

Основная Ρ†Π΅Π»ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ COM — обСспСчСниС возмоТности экспорта ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ИдСя экспорта состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ ΡΠ΅Ρ€Π²ΠΈΡΠ°ΠΌ. ЕстСствСнно Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ большиС ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, нСизвСстныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.

БОМ опрСдСляСт мноТСство стандартных интСрфСйсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, поставляСмых ΠΊΠ°ΠΊ Π² ΡΠΎΡΡ‚Π°Π²Π΅ ОБ, Ρ‚Π°ΠΊ ΠΈ Π² ΡΠΎΡΡ‚Π°Π²Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². ЦСль Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ActiveX, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС надстроСк Π½Π°Π΄ БОМ, Ρ‚. Π΅. ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ мноТСство стандартных интСрфСйсов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΈΠ½Ρ‚СрфСйсы БОМ.

ООП ΠΈ Π΅Π³ΠΎ мСсто Π² ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅, ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ основными концСпциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ понятия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ².

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

Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows Π±Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ просто Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ.

ООП прСдставляСт собой Π½ΠΎΠ²Ρ‹ΠΉ этап развития соврСмСнных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ построСния языков программирования. Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ дальнСйшСС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ структурного программирования — структуризация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚. Π΄., Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ИспользованиС возмоТностСй ООП Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΏΡ€ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ся» ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ настраиваСмыми характСристиками.

ООП ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом прСимущСств ΠΏΡ€ΠΈ создании Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’ Ρ‡Π°ΡΡ‚ности, ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ отнСсти:

1. использованиС Π±ΠΎΠ»Π΅Π΅ СстСствСнных с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ повсСднСвной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ понятий, простота ввСдСния Π½ΠΎΠ²Ρ‹Ρ… понятий;

2. ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;

3. Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сокращСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π·Π° ΡΡ‡Π΅Ρ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ (наслСдуСмыС) свойства ΠΈ Π΄Π΅ΠΉΡΡ‚вия ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ; ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, использованиС динамичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² позволяСт Π±ΠΎΠ»Π΅Π΅ эффСктивно Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ;

4. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов; Π² Ρ‡Π°ΡΡ‚ности, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π‘++ Builder ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ;

5. ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±Π΅Π· измСнСния ΡƒΠΆΠ΅ написанных частСй, Π° Π² Ρ€ΡΠ΄Π΅ случаСв ΠΈ Π±Π΅Π· пСрСкомпиляции этих написанных ΠΈ ΡƒΠΆΠ΅ скомпилированных частСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойства наслСдования ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°;

6. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ написания ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя;

7. Π±ΠΎΠ»Π΅Π΅ чСткая локализация свойств ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ класса Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство инкапсуляции), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибки;

8. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ раздСлСния доступа ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚. Π΄.

Π’ ΠΊΠΎΠ½Ρ†Π΅ 60-Ρ… Π³ΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° идСя ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ понятия Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, функция, запись ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. РассмотрСниС Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎΠΉ связи с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ вывСсти Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ = Π”Π°Π½Π½Ρ‹Π΅ + ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

На ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ этой Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° мСтодология ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ООП).

Об ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… сущСствах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ «ΠΆΠΈΠ²ΡƒΡ‚» Π² Π²Π°ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’Ρ‹ Π»Π΅ΠΏΠΈΡ‚Π΅ этих сущСств, распрСдСляСтС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ обязанности ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚вия.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «ΠΏΠΎΠΌΠ½ΠΈΡ‚» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, «ΡƒΠΌΠ΅Π΅Ρ‚» Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ дСйствий ΠΈ Ρ…арактСризуСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ свойств. Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «ΠΏΠΎΠΌΠ½ΠΈΡ‚», хранится Π² Π΅Π³ΠΎ полях. Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «ΡƒΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ», рСализуСтся Π² Π²ΠΈΠ΄Π΅ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ свойствам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌ Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ². ЗначСния свойств ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ свойства Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «ΠΊΠ½ΠΎΠΏΠΊΠ°» ΠΈΠΌΠ΅Π΅Ρ‚ свойство «Ρ†Π²Π΅Ρ‚». Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ²ΠΎΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния свойства «Ρ†Π²Π΅Ρ‚» вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСрисовываСт ΠΊΠ½ΠΎΠΏΠΊΡƒ.

ΠšΡΡ‚Π°Ρ‚ΠΈ, этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄: свойства ΠΈΠΌΠ΅ΡŽΡ‚ пСрвостСпСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для программиста, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡΡƒΡ‚ΡŒ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π²Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ Π΅Π³ΠΎ свойства, ΠΈΠ½ΠΎΠ³Π΄Π° — ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ — поля (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΡΠ°ΠΌ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ).

ΠžΠ‘ΠͺΠ•ΠšΠ’Π« И ΠšΠžΠœΠŸΠžΠΠ•ΠΠ’Π«. Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ графичСских систСм, Π² Ρ‡Π°ΡΡ‚ности Windows, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Ρ€Π΅Π·ΠΊΠΎ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΠ»ΠΎΡΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠ΅Ρ€Π΅ стал Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠΌ, Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΈ ΡƒΠ²ΡΠ·ΠΊΠ° элСмСнтов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΌΠ΅Ρ‚ΠΎΠΊ, строк Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°) Π½Π°Ρ‡Π°Π»ΠΈ ΠΎΡ‚Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. И Ρ‚ΠΎΠ³Π΄Π° программистам ΠΏΡ€ΠΈΡˆΠ»Π° Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ идСя Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, объСдинив ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ прСдставлСниСм Π½Π° ΡΠΊΡ€Π°Π½Π΅ дисплСя Π² ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅. Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π±Ρ‹Π»ΠΎ Π½Π°Π·Π²Π°Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ - это особыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠ°ΠΌΠΈ срСды Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½Ρ‹ ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ установкС свойств. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ разрабатываСтся ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ помСщаСтся Π² ΠŸΠ°Π»ΠΈΡ‚Ρ€Ρƒ ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΡƒΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ· ΠŸΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², располагаСтС Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π° Π² ΠΎΠΊΠ½Π΅ Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π° ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’Π½Π΅ΡˆΠ½Π΅ всС выглядит просто, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ‚Π°ΠΊΠΎΠΉ простоты, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΡƒΠΆΠ΅ Π½Π° ΡΡ‚Π°ΠΏΠ΅ проСктирования прилоТСния! Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростил созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Π³Ρ€Π°Ρ„ичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом ΠΈ Π΄Π°Π» Ρ‚ΠΎΠ»Ρ‡ΠΎΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Π½ΠΎΠ²ΠΎΠΉ индустрии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ΠšΠ›ΠΠ‘Π‘Π« ΠžΠ‘ΠͺΠ•ΠšΠ’ΠžΠ’. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ всСгда ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ классу. Класс — это ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠ΅ (абстрактноС) описаниС мноТСства ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ прСдставитСлями своСго класса, ΠΈΡ… ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ экзСмплярами класса. НапримСр, класс Π‘ΠžΠ‘ΠΠšΠ˜ — понятиС абстрактноС, Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ этого класса ΠœΠžΠ™ ΠŸΠ•Π‘ Π‘ΠžΠ‘Π˜Πš — понятиС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅.

ВРИ ΠŸΠΠ ΠΠ”Π˜Π“ΠœΠ« (ПРИНЦИПА) ООП ООП дСрТится Π½Π° Ρ‚Ρ€Π΅Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…: инкапсуляции, наслСдовании ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ΅.

НаблюдаСмоС Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… объСдинСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅ Π±Ρ‹Π»ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ инкапсуляция (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ООП). ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ инкапсуляции сдСлало ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ Π½Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ»ΠΎ сокрытиС ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ устройства. Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² появилось понятиС интСрфСйса, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ повысило ΠΈΡ… Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ООП — наслСдованиС. Π­Ρ‚ΠΎΡ‚ простой ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс, лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ сущСствуСт, Ρ‚ΠΎ Π½Π΅Ρ‚ нСобходимости Π² ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠΈ Π·Π°Π½ΠΎΠ²ΠΎ всСх ΠΏΠΎΠ»Π΅ΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π². Π’Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ класс являСтся ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ (ΠΈΠ»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классом) ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ класса, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ (ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классом), ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ Π½ΠΎΠ²Ρ‹Π΅ поля, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°. Π˜Π½Ρ‹ΠΌΠΈ словами добавляСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊ Ρ‡Π°ΡΡ‚Π½ΠΎΠΌΡƒ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ пороТдСния Π½ΠΎΠ²Ρ‹Ρ… классов Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов называСтся наслСдованиСм. НовыС классы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°ΠΊ унаслСдованныС ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎΠ²Ρ‹Π΅. НапримСр, класс Π‘ΠžΠ‘ΠΠšΠ˜ унаслСдовал ΠΌΠ½ΠΎΠ³ΠΈΠ΅ свойства своих ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² — Π’ΠžΠ›ΠšΠžΠ’ Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ — это ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ. Он ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классах Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠŸΡ€ΠΈ этом вСсь ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ для управлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса Π±Π΅Π· всякой ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΊΠ½ΠΎΠΏΠΎΠΊ с Ρ€Π΅Π»ΡŒΠ΅Ρ„Π½ΠΎΠΉ надписью, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ отрисовки ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ «ΠΏΠΎΠ΄ΡΡƒΠ½ΡƒΡ‚ΡŒ» вмСсто стандартной Π² ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ отрисовку ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «Π΄ΡƒΠΌΠ°Π΅Ρ‚», Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌΡƒ классу ΠΈ ΠΎΡ‚обраТаСтся Π² Π½ΠΎΠ²ΠΎΠΌ стилС.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½Π°ΡΡ‚оящСС врСмя являСтся Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌ Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (языки Java, C#, C++, JavaScript, ActionScript ΠΈ Π΄Ρ€.). Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ систСмного программирования Π΄ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ программирования, ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ языком программирования являСтся язык C. Π₯отя ΠΏΡ€ΠΈ взаимодСйствии систСмного ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ΅ влияниС стали ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ языки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. НапримСр, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΌ стандартом стала систСма Qt, написанная Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++.

Π‘ΠΈ++ - это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык программирования, Π·Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ приятным для ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ программиста. Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ второстСпСнных Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π‘ΠΈ++ являСтся надмноТСством языка программирования CΠΈ.

COM — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

COM (Π°Π½Π³Π».component Object Model — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²) — это тСхнологичСский стандарт ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Π΅Ρ‚ Π² ΡΠ΅Π±Π΅ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ COM ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ-нСзависимым, Π½ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ»ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах сСмСйства Microsoft Windows. Π’ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… вСрсиях Windows COM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ. На ΠΎΡΠ½ΠΎΠ²Π΅ COM Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: Microsoft OLE Automation, ActiveX, DCOM, COM+, DirectX, Π° Ρ‚Π°ΠΊΠΆΠ΅ XPCOM.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, построСнныС Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π΅ COM, фактичСски Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ся Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π°Π±ΠΎΡ€ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (GUID) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ взаимодСйствуСт с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· COM-интСрфСйсы — Π½Π°Π±ΠΎΡ€Ρ‹ абстрактных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ стандартный интСрфСйс «IUnknown», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ «IUnknown» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Ρ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: QueryInterface, AddRef, Release.

Windows API прСдоставляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC ΠΈ, особСнно, ATL/WTL ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ATL ΠΎΡ‚ Microsoft Π΄ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ остаётся самым популярным срСдством создания COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Но Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ COM-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° остаётся Π΅Ρ‰Ρ‘ довольно слоТным Π΄Π΅Π»ΠΎΠΌ, программистам приходится Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с COM (особСнно это Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° C++). ВпослСдствии (Π² Ρ‚Схнологиях COM+ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ.net) Microsoft ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ COM-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Одной ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ‡Π΅Ρ€Ρ‚ БОМ являСтся Π΅Π΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ стандарт для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎΡ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ стандарт обСспСчиваСт срСдства, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ поставщиками ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ (исполняСмом) ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎ являСтся основным достиТСниСм создатСлСй БОМ ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ насущным потрСбностям сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠœΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠ΅ использованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ся ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ Π΅Π³ΠΎ модулями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… срСдах. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС разрабатываСтся с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ языка программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C++, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ эффСктивно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ C++.

Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ свойство БОМ извСстно ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ нСзависимости ΠΎΡ‚ ΠΌΠ΅ΡΡ‚ополоТСния (Location Transparency). ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΌΠ΅ΡΡ‚ополоТСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ, Π³Π΄Π΅ находится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ сСрвисы БОМ для создания экзСмпляра ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° нСзависимо ΠΎΡ‚ Π΅Π³ΠΎ фактичСского располоТСния. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ нСпосрСдствСнно Π² Π°Π΄Ρ€Π΅ΡΠ½ΠΎΠΌ пространствС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (DLL-Ρ„Π°ΠΉΠ»), Π² ΠΏΡ€ΠΎΡΡ‚ранствС Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (Π•Π₯Π•-Ρ„Π°ΠΉΠ») ΠΈΠ»ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, располоТСнном Π·Π° ΡΠΎΡ‚Π½ΠΈ миль (распрСдСлСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚). Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ БОМ ΠΈ DCOM (Distributed БОМ — распрСдСлСнная БОМ) ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΌΠ΅ΡΡ‚ополоТСния. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ срСдствами, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ эту ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСрвисы распрСдСлСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ взаимодСйствуСт с Π‘ОМ — ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π²Π½Π΅ зависимости ΠΎΡ‚ ΠΈΡ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, интСрфСйс ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ‚ся. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΌΠ΅ΡΡ‚ополоТСния позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ прилоТСния.

ВСхнология COM опрСдСляСт стандартный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ΄Π½Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния прСдоставляСт свои сСрвисы Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ всСх описанных Π²Ρ‹ΡˆΠ΅ случаях. ΠžΠ±Ρ‰Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° сСрвисов Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, прилоТСниях, систСмном ΠΈ ΡΠ΅Ρ‚Π΅Π²ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии позволяСт БОМ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ActiveX — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

НаиболСС популярным Π² Π½Π°ΡΡ‚оящСС врСмя Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ производство ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, являСтся тСхнология ActiveX. ActiveX ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ стандарты ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ просто приобрСсти эту ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, Π½Π΅ Π·Π°Π±ΠΎΡ‚ΡΡΡŒ ΠΎ Π΅Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Автором Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ActiveX являСтся Π»ΠΈΠ΄Π΅Ρ€ ΠΌΠΈΡ€ΠΎΠ²ΠΎΠΉ индустрии программирования — компания Microsoft. Π ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ActiveX ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ OLE вСрсии 1, Π° ΡΡ‚Π°Ρ€ΡˆΠΈΠΌ Π±Ρ€Π°Ρ‚ΠΎΠΌ — OLE 2.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, OLE стало ΠΌΠ°Ρ€ΠΊΠΎΠΉ любой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, созданной Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ COM. Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ эти, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ скорСС стал Π·Π½Π°ΠΊΠΎΠΌ Π½Π΅ΠΊΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½ΠΎΠ²Ρ‹Ρ… пСрспСктивных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ автоматичСского Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Ρ‚Π΅ΠΎΡ€Π΅ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ СстСствСнного языка ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ дСйствий Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠ²).

Π’ 1996 Microsoft «Ρ€ΠΎΠ΄ΠΈΠ»Π°» Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ — ActiveX. Π‘Π½Π°Ρ‡Π°Π»Π° этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ относился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Ρ‚Схнологиям, связанным с Internet. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΡΡ‚Π°Π» «Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ», Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ OLE. И Π½Π° ΠΎΡΠ΅Π½ΡŒ 1997 Π³ΠΎΠ΄Π°, состояниС Π΄Π΅Π» ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ»ΠΎΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

OLE — тСхнология создания составных Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ActiveX — всС сСмСйство Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ COM

Достаточно Ρ‚ΠΎΡ‡Π½ΠΎΠ΅, Π½ΠΎ Π²Π΅ΡΡŒΠΌΠ° «Π·Π°ΡƒΠΌΠ½ΠΎΠ΅» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ActiveX Π·Π²ΡƒΡ‡ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ActiveX — это Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠ°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, основанная Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ элСмСнтарных ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… приспосабливаСмых ΠΊ Ρ‚рСбованиям ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (кастомизируСмых) сСрвисов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… обСспСчиваСт созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сСрвисов любой слоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Π΄Π°Π½Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ. ВсС сСрвисы, Π²Π½Π΅ зависимости ΠΎΡ‚ ΠΈΡ… ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, мСста Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΈ ΠΌΠ΅ΡΡ‚Π° ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ всСми прилоТСниями, ОБ, Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сСрвисами.

ActiveX — это Π½Π΅ Ρ‚Схнология для написания частСй прилоТСния (ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Win32 API). ActiveX примСняСтся для совмСстного использования частСй прилоТСния с Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅ ΠΈ Π΄Π»Ρ доступа ΠΊ Ρ‚Π°ΠΊΠΈΠΌ раздСляСмым ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ понятия Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ActiveX:

БСрвисы ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Под сСрвисом Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ЀизичСски сСрвисы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. НапримСр, сСрвисы ΠžΠ‘ физичСски ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹, сСрвисы Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ — Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ‚. ΠΏ.

Π”Ρ€ΡƒΠ³ΠΎΠΉ взгляд Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ прСпарирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ понимаСтся Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, которая Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Ρƒ ΠΎΠ±Ρ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½ΠΎ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ происходит Π½Π΅ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ, Π° Ρ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния удобства программирования, распространСния, инсталляции ΠΈ Ρ‚. ΠΏ.

РСально сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся сСрвисом. Π’ Π»ΡŽΠ±ΠΎΠΌ случаС, сама ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ обСспСчиваСт свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ интСрфСйсов. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, интСрфСйс содСрТит ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-Ρ‡Π»Π΅Π½ΠΎΠ² (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²). ИмСнно Ρ‡Π΅Ρ€Π΅Π· Π½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ простыС сСрвисы распрСдСлСния памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΎΠ΄ΠΈΠ½ интСрфСйс Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выставляСт нСсколько интСрфСйсов для доступа ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Ρƒ свойств. Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС — практичСская, ориСнтированная Π½Π° ΠΏΠΎΡ‚рСбитСля рСализация ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

Π’.Π΅., это взгляд Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ свойства Π² ΡΠ²ΠΎΠΈ прилоТСния, просто приобрСтая Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄, исповСдуСмый ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, отличаСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, принятого Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ сСрвисов Windows (Windows Open Service Architecture — WOSA). Если Π² WOSA ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ ΡΠ΅Ρ€Π²ΠΈΡΠ°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» находится Π½Π΅ΠΊΠΈΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ управлял Ρ…ΠΎΠ΄ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² MAPI, ODBC ΠΈ Ρ‚. ΠΏ.), Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ БОМ БОМ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ лишь Π·Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ соСдинСния, Π° Π΄Π°Π»ΡŒΡˆΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Бмысл сущСствования Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ActiveX — ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Ρ‹

Как ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, сСрвис ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ свойств ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π°, ΠΈ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ обСспСчиваСт этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ). Π‘ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ:

ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ — Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ обСспСчиваСтся доступ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

сСрвСром — Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программирования сСрвСр — это Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ Π·Π°ΠΏΡ€ΠΎΡΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ DLL ΠΈΠ»ΠΈ EXE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ доступными ΠΈΠ· Π²Π½Π΅ΡˆΠ½Π΅Π³ΠΎ ΠΌΠΈΡ€Π°. Π‘Π΅Π· сСрвСра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π±Ρ‹ скрытыми ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½Π΅Π³ΠΎ ΠΌΠΈΡ€Π°. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΊΠ°ΠΊ Π±Ρ‹ «Π΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΈΡ… Π½Π° ΡΠ΅Ρ€Π΅Π±Ρ€ΡΠ½ΠΎΠΉ Ρ‚Π°Ρ€Π΅Π»ΠΎΡ‡ΠΊΠ΅ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ».

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ описаний ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (UML ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ)

Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык модСлирования (UML) — это сСмСйство графичСских Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ. Он ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм, Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ систСм, построСнных с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹.

ГрафичСскиС языки модСлирования ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ индустрии. Основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΈΡ… ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ языки программирования Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции, способный ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ процСсс проСктирования.

UML прСдставляСт собой ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ стандарт, находящийся ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΡ‹ OMG (Object Management Group), ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ консорциума ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Π“Ρ€ΡƒΠΏΠΏΠ° OMG Π±Ρ‹Π»Π° сформирована для создания стандартов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… мСТсистСмноС взаимодСйствиС, Π² Ρ‡Π°ΡΡ‚ности взаимодСйствиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π³Ρ€ΡƒΠΏΠΏΠ° OMG Π±ΠΎΠ»Π΅Π΅ извСстна ΠΏΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π°ΠΌ CORBA (Common Object Request Broker Architecture).

UML появился Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ процСсса ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ мноТСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков графичСского модСлирования, ΠΏΡ€ΠΎΡ†Π²Π΅Ρ‚Π°Π²ΡˆΠΈΡ… Π² ΠΊΠΎΠ½Ρ†Π΅ 80Ρ…, Π½Π°Ρ‡Π°Π»Π΅ 90Ρ… Π³ΠΎΠ΄ΠΎΠ². Появившись Π² 1997 Π³ΠΎΠ΄Ρƒ, ΠΎΠ½ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» эту Π’Π°Π²ΠΈΠ»ΠΎΠ½ΡΠΊΡƒΡŽ башню Π² Π²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ, Π·Π° Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΅ΠΌΡƒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹.

Бпособы примСнСния UML

ΠžΡΠ½ΠΎΠ²Ρƒ Ρ€ΠΎΠ»ΠΈ UML Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ способы использования языка, Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ пСрСнСсСны ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков графичСского модСлирования. Π­Ρ‚ΠΈ различия ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΡŽΡ‚ дискуссии ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ язык.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ примСнСния ΡˆΠΈΡ€ΠΎΠΊΠΈ ΠΈ Π·Π°Π²ΠΈΡΡΡ‚ ΠΎΡ‚ Π²ΠΊΡƒΡΠΎΠ² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ эти Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Π΅ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Ρ€Π΅ΠΆΠΈΠΌ эскизирования, Ρ€Π΅ΠΆΠΈΠΌ проСктирования ΠΈ Ρ€Π΅ΠΆΠΈΠΌ программирования.

Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ эскизирования, ΠΈΠ»ΠΈ эскизного модСлирования, Π² ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ наброски, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π·Π° Ρ‚Π΅ΠΌ, обсуТдаСтС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ эскизов Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс ΠΎΠ±ΠΌΠ΅Π½Π° идСями, Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ идСю Π½Π° Π±ΡƒΠΌΠ°Π³Π΅.

Напротив, язык UML ΠΊΠ°ΠΊ срСдство проСктирования Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡ‚Ρƒ. ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ разрабатываСтся Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, Ρ‡ΡŒΡ Ρ€Π°Π±ΠΎΡ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ ΠΎΡ‚даСтся ΠΏΠΎ Ρ‡Π°ΡΡ‚ям ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ исполнитСлям ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Вакая модСль Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ достаточно ΠΏΠΎΠ»Π½ΠΎΠΉ Π² Ρ‡Π°ΡΡ‚ΠΈ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌ ΠΏΡ€ΡΠΌΠΎ, Π½Π΅ ΠΎΡΠΎΠ±ΠΎ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡΡΡŒ Π½Π°Π΄ дСталями.

Π§Π΅ΠΌ дольшС Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с UML, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ становится всС Π±ΠΎΠ»Π΅Π΅ мСханичСским, Ρ‚Π΅ΠΌ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π΅Π΅ становится Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ созданию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ UML ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ построСниС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ части систСмы. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Π²Ρ‹ Π΄ΠΎΡΡ‚ΠΈΠ³Π½Π΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° смоТСтС ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ UML всю систСму ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ использования UML Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка программирования.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ UML

UML насчитываСт большоС количСство Ρ‚ΠΈΠΏΠΎΠ² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΈ Ρ‡Π°ΡΡ‚ΠΎΡ‚Π° ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ зависит ΠΎΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ примСнСния ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π’ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ программирования ΠΈΠ³Ρ€ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояний (ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠ²). Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ UML.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов:

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ:

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний:

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

ОписаниС Π·Π°Π΄Π°Ρ‡ΠΈ.

Π—Π°Π΄Π°Π½ΠΈΠ΅: ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘++ Builder ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ActiveX Π² HTML страницу. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ActiveX ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ располоТСния, Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΊΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ оси X ΠΈ ΠΊΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. РасчСтныС значСния для построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ клиСнтскому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ β„–: 17

Ѐункция: Y= (a/X) b

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°-прСдставлСниС систСмы

Анализ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… классов: Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ внСдрСния ΠΈ использования

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ OLE ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС вынСсСны Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Function. Cpp/h Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊ ΡΠ΅Ρ€Π²Π΅Ρ€Ρƒ, Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π΅ выполняСтся расчСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ классов Π½Π° языкС Π‘++ с описаниСм.

Класс — Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ абстрактного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (ООП), Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ способом своСго построСния. Π”Ρ€ΡƒΠ³ΠΈΠ΅ абстрактныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… — мСтаклассы, интСрфСйсы, структуры, пСрСчислСния, — Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ своими, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ особСнностями. Наряду с ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅ΠΌ «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°» класс являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ понятиСм Π² ΠžΠžΠŸ (хотя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π±Π΅ΡΠΊΠ»Π°ΡΡΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Self, Lua; ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ смотритС ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅). Π‘ΡƒΡ‚ΡŒ отличия классов ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… абстрактных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… класс опрСдСляСт ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΈΠ½Ρ‚СрфСйс, ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для всСх своих экзСмпляров, Π° Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°-конструктора обязатСлСн. Π’ΠΎΡ‡Π½Ρ‹ΠΉ смысл этой Ρ„Ρ€Π°Π·Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ раскрыт Π½ΠΈΠΆΠ΅.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сводится ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства классов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ интСрфСйс ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡŽ. ГрафичСскоС прСдставлСниС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства классов ΠΈ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ называСтся Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠΎΠΉ классов. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° Π²Ρ€Π΅ΠΌΡ своСго развития Π½Π°ΠΊΠΎΠΏΠΈΠ» мноТСство Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ (ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²) ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ классов ΠΈ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ классов.

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ, классов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

class ATL_NO_VTABLE TCalculateYImpl:

public CComObjectRootEx,

public CComCoClass,

public IDispatchImpl

РСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ расчСта Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ // Ѐункция расчСта задания Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 17: (a/x)b, Ρ‚. Π΅. pow (Y, b)

double __fastcall TForm1: calculateY (int x, double a, double b)

{

double res = a / x; // выполняСм расчСт согласно Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ ΠΏΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ

if (res < 0) res *= - 1;

return pow (res, b); // Π²ΠΎΠ·Π²ΠΎΠ΄ΠΈΠΌ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ b ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

1. М. Эллис, Π‘. Бтроуструп. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство ΠΏΠΎ ΡΠ·Ρ‹ΠΊΡƒ C++ с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ариями: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — ΠœΠΎΡΠΊΠ²Π°: ΠœΠΈΡ€, 1992.445с.

2. Π“. Π¨ΠΈΠ»Π΄Ρ‚. Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ C++: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³: BHV-Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 1998.620с.

3. Π₯. Π”Π΅ΠΉΡ‚Π΅Π», П. Π”Π΅ΠΉΡ‚Π΅Π». Как ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° C++: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — ΠœΠΎΡΠΊΠ²Π°: Π—ΠΠž «Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π‘Π˜ΠΠžΠœ», 1998.1024с.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Server:

#include

#pragma hdrstop

#include «Unit1. h»

#include «math. h»

// —————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*. dfm»

TForm1 *Form1;

// —————————————————————————————————————;

__fastcall TForm1: TForm1 (TComponent* Owner)

: TForm (Owner)

{

}

// —————————————————————————————————————;

void __fastcall TForm1: Button1Click (TObject *Sender)

{

Close ();

}

// —————————————————————————————————————;

// // Ѐункция расчСта задания Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 17: (a/x)b, Ρ‚. Π΅. pow (Y, b)

double __fastcall TForm1: calculateY (int x, double a, double b)

{

double res = a / x; // выполняСм расчСт согласно Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ ΠΏΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ

if (res < 0) res *= - 1;

return pow (res, b); // Π²ΠΎΠ·Π²ΠΎΠ΄ΠΈΠΌ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ b ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

}

// —————————————————————————————————————;

Ѐайл Класса Function Y:

// CALCULATEYIMPL. H: Declaration of the TCalculateYImpl

#ifndef CalculateYImplH

#define CalculateYImplH

#define ATL_APARTMENT_THREADED

#include «Project1_TLB. H»

// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /

// TCalculateYImpl Implements ICalculateY, default interface of CalculateY

// ThreadingModel: Apartment

// Dual Interface: TRUE

// Event Support: FALSE

// Default ProgID: Project1. CalculateY

// Description: My course work

// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /

class ATL_NO_VTABLE TCalculateYImpl:

public CComObjectRootEx,

public CComCoClass,

public IDispatchImpl

{

public:

TCalculateYImpl ()

{

}

// Data used when registering Object

DECLARE_THREADING_MODEL (otApartment);

DECLARE_PROGID («Project1. CalculateY»);

DECLARE_DESCRIPTION («My course work»);

// Function invoked to (un) register object

static HRESULT WINAPI UpdateRegistry (BOOL bRegister)

{

TTypedComServerRegistrarT

regObj (GetObjectCLSID (), GetProgID (), GetDescription ());

return regObj. UpdateRegistry (bRegister);

}

BEGIN_COM_MAP (TCalculateYImpl)

COM_INTERFACE_ENTRY (ICalculateY)

COM_INTERFACE_ENTRY2 (IDispatch, ICalculateY)

END_COM_MAP ()

// ICalculateY

public:

STDMETHOD (CalculateY (int x, double a, double b, double* y));

};

#endif // CalculateYImplH

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°:

// —————————————————————————————————————;

/*

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ расчСта Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Y

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠšΡ€ΡŽΠΊΠΎΠ² П. Π“, Π³Ρ€ΡƒΠΏΠΏΠ° Π’ΠœΠšΠ‘Π‘-326

*/

#include

#pragma hdrstop

#include «Unit1. h»

#include

// —————————————————————————————————————;

#pragma package (smart_init)

#pragma resource «*. dfm»

TForm1 *Form1;

// —————————————————————————————————————;

__fastcall TForm1: TForm1 (TComponent* Owner)

: TForm (Owner)

{

}

// —————————————————————————————————————;

void __fastcall TForm1: FormCreate (TObject *Sender)

{

CheckBox1->Checked = true;

}

// —————————————————————————————————————;

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Button1

void __fastcall TForm1: Button1Click (TObject *Sender)

{

int x0, xn;

double a, b;

try

{

x0 = LabeledEdit1->Text. ToInt ();

xn = LabeledEdit2->Text. ToInt ();

a = LabeledEdit3->Text. ToDouble ();

b = LabeledEdit3->Text. ToDouble ();

Variant server = CreateOleObject («Project1. CalculateY»);

if (VarType (server) == varDispatch) {

TChartSeries *series = Chart1->GetASeries ();

series->Clear ();

for (int i = x0; i <= xn; ++i)

series->AddXY (i, server. OleFunction («calculateY», i, a, b), «», ColorBox1->Selected);

}

if (VarType (server) == varDispatch) server = Unassigned;

}

catch (Exception &e)

{

ShowMessage (e. Message. c_str ());

}

}

// —————————————————————————————————————;

void __fastcall TForm1: Button2Click (TObject *Sender)

{

TChartSeries *series = Chart1->GetASeries ();

series->Clear ();

}

// —————————————————————————————————————;

void __fastcall TForm1: CheckBox1Click (TObject *Sender)

{

Chart1->Visible = CheckBox1->Checked;

}

// —————————————————————————————————————;

void __fastcall TForm1: Button3Click (TObject *Sender)

{

Close ();

}

// ————————————————————————————————————-;

void __fastcall TForm1: N2Click (TObject *Sender)

{

Button1->Click ();

}

// —————————————————————————————————————;

void __fastcall TForm1: N3Click (TObject *Sender)

{

Close ();

}

// —————————————————————————————————————;

void __fastcall TForm1: N4Click (TObject *Sender)

{

ShowMessage («Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠšΡ€ΡŽΠΊΠΎΠ² П. Π“., Π’ΠœΠšΠ‘Π‘-326»);

}

// —————————————————————————————————————;

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ActiveX Form:

#include

#pragma hdrstop

#include

#include «MyCourseProjectImpl1. h»

USEFORM («MyCourseProjectImpl1. cpp», MyCourseProject); /* TActiveForm: File Type */ /* MyCourseProject: CoClass */

// —————————————————————————————————————;

#pragma package (smart_init)

TComModule MyCourseProjectProj1Module;

TComModule &_Module = MyCourseProjectProj1Module;

// The ATL Object map holds an array of _ATL_OBJMAP_ENTRY structures that

// described the objects of your OLE server. The MAP is handed to your

// project’s CComModule-derived _Module object via the Init method.

BEGIN_OBJECT_MAP (ObjectMap)

OBJECT_ENTRY (CLSID_MyCourseProject, TMyCourseProjectImpl)

END_OBJECT_MAP ()

// Entry point of your Server invoked by Windows for processes or threads are

// initialized or terminated.

int WINAPI DllEntryPoint (HINSTANCE hinst, unsigned long reason, void*)

{

if (reason == DLL_PROCESS_ATTACH)

{

_Module. Init (ObjectMap, hinst);

DisableThreadLibraryCalls (hinst);

}

return TRUE;

}

// _Module. Term is typically invoked from the DLL_PROCESS_DETACH of your

// DllEntryPoint. However, this may result in an incorrect shutdown sequence.

// Instead an Exit routine is setup to invoke the cleanup routine

// CComModule: Term.

void ModuleTerm (void)

{

_Module. Term ();

}

#pragma exit ModuleTerm 63

// Entry point of your Server invoked to inquire whether the DLL is no

// longer in use and should be unloaded.

STDAPI __export DllCanUnloadNow (void)

{

return (_Module. GetLockCount () ==0)? S_OK: S_FALSE;

}

// Entry point of your Server allowing OLE to retrieve a class object from

// your Server

STDAPI __export DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID* ppv)

{

return _Module. GetClassObject (rclsid, riid, ppv);

}

// Entry point of your Server invoked to instruct the server to create

// registry entries for all classes supported by the module

STDAPI __export DllRegisterServer (void)

{

return _Module. RegisterServer (TRUE);

}

// Entry point of your Server invoked to instruct the server to remove

// all registry entries created through DllRegisterServer.

STDAPI __export DllUnregisterServer (void)

{

return _Module. UnregisterServer ();

}

// —————————————————————————————————————;

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2: Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ