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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ БОМ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 88

Автор Π”ΠΎΠ½Π°Π»ΡŒΠ΄ Бокс

Одним ΠΈΠ· основных прСимущСств использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ интСрфСйсно– ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, являлась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Β«Ρ‡Ρ‚ΠΎΒ» ΠΈ Β«ΠΊΠ°ΠΊΒ» Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠ°ΠΊ Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ² для Java:

interface IDog {

public void Bark();

};

class Pug implements IDog {

public void Bark( ){…}

};

class Collie Implements IDog {

public void Bark( ){…}

};

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Π° класса – Collie ΠΈ Pug – совмСстимы с интСрфСйсом IDog , Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

void BarkLikeADog(IDog dog) {

dog.Bark(); }

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, эта иСрархия Ρ‚ΠΈΠΏΠΎΠ² практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π½Π° C++. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Bark интСрфСйса IDog Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ интСрфСйса IDog ΠΈ классами Pug ΠΈΠ»ΠΈ Collie Π½Π΅ сущСствуСт связи. Π₯отя ΠΈΠ· этого слСдуСт, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ Pug, Ρ‚Π°ΠΊ ΠΈ Collie Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ своС собствСнноС прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«Π»Π°ΡΡ‚ΡŒΒ» (bark), конструкторы Pug ΠΈ Collie Π½Π΅ обязаны ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты ΠΎΠΊΠ°ΠΆΡƒΡ‚ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы Π½Π° основной Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ IDog.

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

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠΉ стороной систСм Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ»Π½Ρ‹ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ рСализация рассматриваСтся ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ (opaque) для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Часто, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ основанныС Π½Π° интСрфСйсах Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠ°ΠΊ БОМ, Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ свободы, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π°Π΅Ρ‚ эта Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, игнорируСтся, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² вСсьма ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ интСрфСйсом, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Рассмотрим ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Excel, которая выставляСт свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ БОМ. РСализация класса элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel выставляСт ΠΎΠΊΠΎΠ»ΠΎ 25 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… интСрфСйсов БОМ, Ρ‡Ρ‚ΠΎ позволяСт Π΅ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ мноТСство основанных Π½Π° БОМ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (Linking, Embedding, Inplace Activation, Automation, Active Document Objects, Hyperlinking ΠΈ Ρ‚. Π΄.). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ интСрфСйсу трСбуСтся ΠΏΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π±Π°ΠΉΡ‚Π½ΠΎΠΌΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (vptr) Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 100 Π±Π°ΠΉΡ‚ слуТСбными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ для хранСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· вСсьма большого количСства ячССк, эти 100 Π±Π°ΠΉΡ‚ слуТСбных Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ³Π°ΡˆΠ°ΡŽΡ‚ΡΡ сотнями ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ большая Ρ‚Π°Π±Π»ΠΈΡ†Π° для управлСния содСрТимым ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ячСйки.




ЀактичСская рСализация элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel ослоТняСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйкС элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы БОМ. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния БОМ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· интСрфСйсов ячСйки прСдставляСт собой ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ БОМ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ опросов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ QueryInterface. ВмСсто этого интСрфСйсы ячССк ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… интСрфСйсов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, IOleItemContainer), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ выставляСт для своих ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ каТдая ячСйка раскрываСтся для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы БОМ, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Excel Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Π½Π΅Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠΈ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ количСства слуТСбных Π΄Π°Π½Π½Ρ‹Ρ…, относящихся ΠΊ БОМ. Рассмотрим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, состоящСй ΠΈΠ· 1000 ячССк. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ для простоты вычислСний, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС трСбуСтся Π² срСднСм ΠΏΠΎ 16 Π±Π°ΠΉΡ‚ памяти для хранСния исходного состояния ячСйки Excel. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ· 1000 элСмСнтов потрСбляСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 16 000 Π±Π°ΠΉΡ‚ памяти, Π½Π΅ связанной с БОМ. Для этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 100 Π±Π°ΠΉΡ‚ слуТСбных записСй указатСля Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… интСрфСйсами Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ уровня, ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎΠ΅ влияниС Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти. Однако ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ каТдая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ячСйка ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ восСмь ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… интСрфСйсов БОМ, Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки 32 Π±Π°ΠΉΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ заняты для слуТСбных записСй, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ управлСния указатСлями Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ячСйки. ΠŸΡ€ΠΈ использовании простых Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ БОМ, 1000-ячССчной элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ понадобится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 32 100 Π±Π°ΠΉΡ‚ памяти для ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π²Π΄Π²ΠΎΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ объСм памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ исходными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Excel. Ясно, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ слуТСбныС записи Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½Ρ‹.




Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Excel Ρ€Π΅ΡˆΠΈΠ»Π° Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ расхода памяти Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ vptr , ΠΏΠΎΠ»Π΅Π·Π½ΠΎ вновь ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ состояниСм ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² БОМ. На рис. A.1 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ БОМ Π² памяти. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊ памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, состоит ΠΈΠ· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ vptr ΠΈ элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…. МоТно Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ этот рисунок, считая, Ρ‡Ρ‚ΠΎ элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ – Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² эти Π΄Π²Π° аспСкта ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° записаны Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ памяти. Однако БОМ Π½Π΅ настаиваСт Π½Π° этом. БОМ просто ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ с указатСлями vptr , Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ. БОМ Π²ΠΏΠΎΠ»Π½Π΅ счастлив, Ссли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅ΡˆΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ vptr Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… памяти, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. А.2. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Ρ‚ΠΎ, ΠΊΠ°ΠΊ происходит ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, являСтся всСго лишь ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, скрытой ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π·Π° стСной интСрфСйсов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’Π°ΠΊ ΠΊΠ°ΠΊ БОМ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ рядом с Π΅Π³ΠΎ указатСлями vptr, ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Excel смогла Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти. Рассмотрим ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ячСйку элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π₯отя для записи содСрТимого ячСйки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ 16 Π±Π°ΠΉΡ‚ памяти, Π½ΠΎ 32 Π±Π°ΠΉΡ‚Π° памяти, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для vptr ячСйки, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ памяти вмСстС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ячСйки. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΊ ячСйкС Π½Π΅ осущСствляСтся доступ Ρ‡Π΅Ρ€Π΅Π· Π΅Π΅ БОМ-интСрфСйсы, Ρ‚ΠΎ эти 32 Π±Π°ΠΉΡ‚Π° памяти для vptr Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Excel ΠΌΠΎΠΆΠ΅Ρ‚ просто динамичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ памяти для vptr, ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ «ячСйка ΠΊ ячСйкС» (cell-by-cell). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊ большСй части ячССк обращСния Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы БОМ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π°, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ фактичСски Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° vptr. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ создания «нСвСсомых» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (flyweight objects), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для обСспСчСния повСдСния ΠΏΠΎ нСобходимости, являСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ «отдСляСмой» (tearoff) Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, которая Π±Ρ‹Π»Π° Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π² Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠšΡ€ΠΈΡΠΏΠΈΠ½Π° ГосвСлла Β«Π‘Π±ΠΎΡ€Π½ΠΈΠΊ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² программиста БОМ» (Crispin Goswell. БОМ Programmer's Cookbook) ( http://www.microsoft.com/oledev). ОбС эти Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ вычислСниС (lazy evaluation) для Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ выдСлСния памяти указатСлям vptr.

НСвСсомыС ΠΈ отдСляСмыС элСмСнты ΡΠ²Π»ΡΡŽΡ‚ΡΡ тСхнологиями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ БОМ, ΠΎΠ΄Π½Π°ΠΊΠΎ сама БОМ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ явно. Π­Ρ‚ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΈΠ· нСобходимости эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ состояниСм. ΠŸΡ€ΠΈ использовании БОМ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ управлСния состояниСм, Π² Ρ‚ΠΎΠΌ числС исправлСниС распрСдСлСнных ошибок, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ, ΡƒΡ€Π°Π²Π½ΠΎΠ²Π΅ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. К соТалСнию, БОМ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ управляСт своим состояниСм, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΌΠ°Π»ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π₯отя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ свои собствСнныС схСмы управлСния состояниСм, ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ явныС прСимущСства Π² построСнии ΠΎΠ±Ρ‰Π΅ΠΉ инфраструктуры для развития ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² со Π·Π½Π°Π½ΠΈΠ΅ΠΌ своСго состояния. Одной ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… инфраструктур являСтся Microsoft Transaction Server (Π‘Π΅Ρ€Π²Π΅Ρ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft – MTS).

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