Π‘Π»ΠΎΠΆΠ½Π΅Π΅ ΠΎΠ±ΡΡΠΎΠΈΡ Π΄Π΅Π»ΠΎ Ρ ΡΠ΅ΠΌΠΈ, ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ. ΠΡΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎ ΡΡΡΠ΄Π° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠΌΡΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠΊΡΡΡΡΠΎΠ²ΠΎ Π»ΠΎΠΆΠ΅ Π΄ΠΈΠΊΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ΠΎΠΊΡΠ΅ΠΏΡΠ΅ΠΌΡ Π·Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π΄ΠΎ Π½Π°ΡΡΠΈΡΡΡΡ ΡΠ°ΠΌΠΎΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΡΠΈ ΠΊ Π½ΠΈΠΌ. ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Β«ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ΡΒ», Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΡΠ°Π·Ρ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΡΠΆΠΈΠ΅. ΠΠ° ΡΡΠΆΠΈΠ΅ Π½Π°Π΄ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ Π½Π΅ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π΅Π½, ΠΈ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΏΡΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΈΠΉΡΠΈ ΠΊ Π»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΡΠ°ΠΌ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ½ΠΈΠ³Π° Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π΄Π°Π»Π° Π²ΡΠΏΠ»Π΅ΡΠΊ, ΠΈ ΠΏΠΎ Π²ΠΎΠ΄Π΅ ΠΏΠΎΡΠ»ΠΈ ΠΊΡΡΠ³ΠΈ. Π. ΠΠ»Π΅ΠΊΡΠ°Π½-Π΄ΡΠ΅ΡΠΊΡ Π² ΠΊΠ½ΠΈΠ³Π΅ Β«Modern C++ designΒ» Π½Π°ΡΠ°Π» ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π½Π° C++ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡ Π² ΠΌΠ°ΡΡΡ ΡΠ²ΠΎΠΈ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ. ΠΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΈΠ·Π΄Π°Π½ΠΈΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π°Π±ΡΡΡΠ΄Π½ΡΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«Π¨Π°Π±Π»ΠΎΠ½Ρ Π½Π° C#Β». ΠΠΎΡΡΠΎΠΉΡΠ΅, ΠΊΠΎΠ»Π»Π΅Π³ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Π½Π° C#? ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΡΠ³ΡΠ°Π»ΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΠΊΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π»ΡΡ ΡΡΡΠΊΡ: ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π΅ΡΡ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ, ΠΏΡΠΎΡΠΈΡΠ°Π² Β«Π±Π°Π½Π΄Ρ ΡΠ΅ΡΡΡΡΡ Β», ΠΏΠΈΡΠ°Π²ΡΠΈΡ ΡΠ²ΠΎΠΉ ΡΡΡΠ΄ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ C++, ΡΡΠΎΡΠ½ΠΎ Π±Π΅Π³ΠΈΡΠ΅ Π·Π° Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΡΠΎ Π΄Π»Ρ Java, ΠΊΡΠΎ Π΄Π»Ρ C#. Π₯ΠΎΡΡ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Ρ ΠΎΠ±ΠΎΠ±ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ΅Π»ΡΡ.
ΠΠΎΡΡΠ½Ρ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Visitor. Π£ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ΅ΡΠΊΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π³ΠΎΠ² ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π°Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ (Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»Π° ΡΠ΅ΡΡ ΠΎ ΡΠ±ΠΎΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ), Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±
void DocStats::UpdateStats(DocElement& elem)
{
if (Paragraph* p = dynamic_cast<Paragraph*>(&elem))
{
chars_ += p->NumChars();
words_ += p->NumWords();
}
else if (dynamic_cast<RasterBitmap*>(&elem))
{
++images_;
}
elseβ¦
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ if Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
}
ΠΠ²ΡΠΎΡΠΎΠΌ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°: ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π΄Π»Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π»Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΠ°Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² if, ΠΈ Π½Π° Π²Π΅ΡΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡΡ.
ΠΠΎΠ±Π°Π²Π»Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ, ΡΠΎ Π·Π°Π΄Π°ΡΠ° Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΒ» ΠΈ Β«ΡΠΎΡΠΌΡΠ»Π°Β» ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ NumChars.
ΠΠΎΡΠ»Π΅ ΡΠ°ΡΡΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²ΡΠ½ΠΎΡΠΈΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΡΡΠΌ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² Π½Π΅Ρ. Π’ΠΎ Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° Visitor, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π° Π΄ΠΎΠ±ΡΡΡ Π΄Π²ΡΡ Π΄Π΅ΡΡΡΠΊΠ°Ρ (!) ΡΡΡΠ°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΠΊΠ½ΠΈΠΆΠΊΠ΅. ΠΡΠ»ΠΈ ΠΎΡΠ΅Π½Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·ΡΠΊ Ρ ΡΠ°Π·Π²ΠΈΡΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (reflection) Π΄Π»Ρ. NET. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Β«Π»ΠΎΠ±ΠΎΠ²ΠΎΠ΅Β» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
class DocStats
{
β¦
void UpdateStats(DocElement elem)
{
Type elemType = typeof(DocElement);
BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance;
if (elemType.GetMethod("NumChars")!= null)
chars += (int) elemType.InvokeMember("NumChars", flags | BindingFlags.
InvokeMethod,
null, elem, null);
if (elemType.GetMethod("NumWords")!= null)
words += (int) elemType.InvokeMember("NumWords", flags | BindingFlags.
InvokeMethod, null, elem, null);
if (elemType.GetProperty("Image")!= null)
images++;
β¦
ΠΎΠ±ΡΠ»Π΅Π΄ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ Π½Π°Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠΎΠ²
}
}
ΠΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠΉ Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ Π΄Π»Ρ Π‘++, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈ ΡΠ°ΠΌ ΡΠ°Π±Π»ΠΎΠ½! ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΡΡΠΌ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ: ΠΈΠ·Π²Π»Π΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π² Π½Π΅ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² ΡΠ²Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, if (elemType is IParagraph), is IImage, is IFormula ΠΈ Ρ. Π΄. Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π±Π΅Π· ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ΅ Π΄Π»Ρ C++ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ, Π΄Π°Π»Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, Β«ΠΏΠΎΠ΄ΠΌΠ΅ΡΠ°ΡΡΒ» ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ-ΠΌΠΈΠΊΡΡΡ.
ΠΠ΅ΡΡΠΌΠ° ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ class helpers Π΅ΡΡΡ Π² Delphi. ΠΡ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΠΏΡΠΈΡΡΠΌ ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ.
ΠΡΠΎΠ³ΠΎ Π½Π° ΠΏΡΠΎΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠΌΠ΅Π΅ΠΌ ΡΠ΅Π»ΡΠΉ Π±ΡΠΊΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ. ΠΠΎΠΏΡΡΠ°Π²ΡΠΈΡΡ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²Π»ΡΠΊΡΠ΅ΠΌΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ, Ρ Π½Π΅ Π²ΡΡΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Ρ Π½Π°ΡΠΊΠ½ΡΠ»ΡΡ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Π½Π° ΠΊΠ½ΠΈΠ³Ρ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΡΡΠΈΠΌ Π½Π° Π·Π²Π°Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°Π±ΡΡΡΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²ΡΡΡΠ΅ΡΠ°Π²ΡΠΈΡ ΡΡ. ΠΠ½ΠΎ Π·Π²ΡΡΠ°Π»ΠΎ ΠΊΠ°ΠΊ Β«Thinking in patternsΒ». Π ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Π½Π° ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ β Β«ΠΡΡΠ»ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΒ». ΠΡΡ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡΠΈΠ²ΡΡΠΊΠ° ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎ ΠΌΡΡΠ»ΠΈΡΡ ΡΡΠΈΡΠ°Π»Π°ΡΡ Π² ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²ΡΡ Π·Π°Π΄Π°Ρ Ρ 9 ΡΡΡΠ° Π΄ΠΎ 6 Π²Π΅ΡΠ΅ΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π»ΡΠ΅ ΠΊΠ½ΠΈΠΆΠΊΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΠΈΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠΌΡ ΠΌΡΡΠ»Π΅Π½ΠΈΡβ¦
ΠΡΠΌΠ°ΡΡ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ
Π‘Π΅ΡΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΈΡ Π·Π°ΠΌΠ΅ΡΠΎΠΊ Π±ΡΠ»Π° Π·Π°Π΄ΡΠΌΠ°Π½Π°, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΈΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΎΠ²Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°ΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄ΡΠΌΠ°ΡΡ Π½Π°Π΄ΠΎ Π½Π΅ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ, Π° Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ. ΠΠ°ΡΠ½ΡΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ.
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½Π° Β«Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΊΠ°ΠΆΠ°Π΅Ρ ΡΠΌΡΡΠ» Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡ ΠΎΠ±ΠΎΠ±ΡΠ°Π΅ΠΌ. ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅) ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² β Π²Π΅ΡΡΠΌΠ° Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ‘ΠΠΠΠΠΠ ΠΠ ΠΠΠΠΠ
ΠΠ±ΠΎΠ±ΡΠ°Π΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠ΄Π½ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ»Π°ΡΡΠ°:
β’ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ;
β’ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΠ΅ΠΉΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ;
β’ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄ΡΡΠ³ΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ ΠΈΠ»ΠΈ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ.
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅, ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΈ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΌΠΈ: (1) β Β«ΡΠ°Π±ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄Β» (factory method), (2) β Β«ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΒ» (strategy), Β«ΡΠ°Π±Π»ΠΎΠ½ ΠΌΠ΅ΡΠΎΠ΄Π°Β» (template method) ΠΈ (3) β Β«Π°Π΄Π°ΠΏΡΠ΅ΡΒ» (adapter). Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ»ΡΡΠ°Ρ (1) Π΅ΡΡ ΠΈ Β«ΠΏΡΠΎΡΠΎΡΠΈΠΏΒ» (prototype) Π·Π°ΠΏΠΈΡΠ°ΡΡ: Π΅ΡΠ»ΠΈ Π² ΡΡΠ΅Π΄Π΅ Π½Π΅Ρ ΡΠ°Π·Π²ΠΈΡΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (reflection), ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΡΠΈΠ΄ΡΡΡΡ Π² ΠΏΠΎΡΠΎΠΌΠΊΠ°Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ°. ΠΠ°Π»Π΅Π΅, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² (Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ ) Π²ΠΌΠ΅ΡΡΠΎ Β«ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΡΒ» (visitor) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΎΡ ΠΆΠ΅ Β«ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄Β» ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· reflection, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅. ΠΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΠΌ.
ΠΠΎΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Β«Π²Π΄ΡΡΠ³Β» ΡΡΠ°Π»ΠΈ Π½Π΅Π½ΡΠΆΠ½ΡΠΌΠΈ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΡΠΌ Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅Π΄Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΈ ΡΡΡΡΠΊΡΡΡΡ, Π±Π»ΠΈΠ·ΠΊΡΡ ΠΊ ΡΠΎΠΉ, ΡΡΠΎ Π²Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π·Π°Π·ΡΠ±ΡΠΈΡΡ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π°Π²ΡΠΎΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
ΠΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΈ ΡΡΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΡ ΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ»ΡΡΠ°Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΠΆΠ΅Π»ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΈ ΡΠ΅ΠΊΡΡ ΡΠ΅ΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° β ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π΅ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΠΎΠ±ΡΠ°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ»ΠΈ Π·Π°ΠΊΠ°Π·Ρ Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΡ ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ Π½Π° ΠΎΡΠ³ΡΡΠ·ΠΊΡ. ΠΠ»ΠΈ ΡΠ±Π»ΠΎΠΊΠΈ Ρ ΡΠ΅Π½Π½ΠΈΡΠ½ΡΠΌΠΈ ΠΌΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Ρ, ΠΎΠ½ΠΈ ΠΆΠ΅ ΡΠ°Π·Π½ΠΎΡΠ²Π΅ΡΠ½ΡΠ΅, ΠΊΡΡΠ³Π»ΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄Π°ΡΡΡΡ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ ?
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΏΠΎ Π½Π΅ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΡ. ΠΠΎΠ³Π΄Π° Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π½Π°ΠΉΠ΄ΡΡΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠ·Π½Π°ΠΊ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΎΠ±ΠΎΠ±ΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ΄Π°ΡΡΡΡ: ΠΏΡΠΈΠ΄ΡΡΡΡ Π»ΠΎΠΌΠ°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΠ»Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠ΅ΠΉ.
ΠΠ΅ ΡΠ²Π»Π΅ΠΊΠ°ΠΉΡΠ΅ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΈΠ±ΠΊΠΈ ΡΠΎΠΆΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΈ ΡΠΆΠ΅ Π² ΠΏΡΡΠΌΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ½ΠΎΡΠ° ΡΡΠ°ΡΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠΠΠ¬ΠΠΠ’Π ΠΠ ΠΠΠΠΠ ΠΠ§ΠΠ‘ΠΠΠ ΠΠ ΠΠΠΠΠ
ΠΠ»ΡΠ±ΠΈΠ½Π° Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΏΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π²Π΅ΡΠΎΡΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠΉ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΡΡΡΠ·Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π²Π΅Π΄Ρ Π½Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ β ΡΠ»ΠΎΠΆΠ½Π°Ρ Π½Π°ΡΡΠ½ΠΎ-ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΊΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ. ΠΠΎ ΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠ»ΡΠΆΠ±Ρ) Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΌΠ΅ΠΆΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ . ΠΠ»Π°ΡΡ Β«ΠΠ½ΠΈΠ³Π°Β» Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»Ρ β ΡΡΠΎ ΡΡΠΈ ΡΠ°Π·Π½ΡΡ Π²Π·Π³Π»ΡΠ΄Π° Π½Π° ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΡΡΠ½ΠΎΡΡΡ Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠΌΠΈΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΡΠΌΠΈ ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π΄Π΅Π»ΠΎ ΠΎΠ±ΡΡΠΎΠΈΡ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Β«ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΒ». ΠΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΠΏΠ΅ΡΠΈΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Β«ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°Β» ΠΈ Β«ΠΎΡ ΡΠ°Π½Π½ΠΈΠΊΠ°Β» ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Β«ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΒ» Π²Π½Π΅ ΡΠ°ΠΌΠΎΠΊ ΡΡΡΡΠ° ΠΊΠ°Π΄ΡΠΎΠ², Π²Π΅Π΄Ρ ΠΎΠ½ΠΈ Π΅ΡΡ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ-ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠ΅ Π»ΠΈΡΠ°, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠ΅ Π»ΠΈΡΠ°, Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΡΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠ²ΠΎΠΈΡ ΡΠ°Π΄, Π½Π°Π»ΠΎΠ³ΠΎΠΏΠ»Π°ΡΠ΅Π»ΡΡΠΈΠΊΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΈ, Π²ΠΊΠ»Π°Π΄ΡΠΈΠΊΠΈ, Π·Π°ΡΠΌΡΠΈΠΊΠΈ, Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈΡΡΡβ¦