value ΡΡΠΎ ΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ lvalue ΠΈ rvalue Π² C ΠΈ Π‘++
ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ! ΠΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Eli Bendersky, Understanding of lvalues and rvalues in C and C++.
ΠΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°: ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΠ°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΎΠ± lvalue ΠΈ rvalue Π² ΡΠ·ΡΠΊΠ°Ρ C/C++. Π’Π΅ΠΌΠ° Π½Π΅ Π½ΠΎΠ²Π°, Π½ΠΎ Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ·Π΄Π½ΠΎ. Π‘ΡΠ°ΡΡΡ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° Π½Π° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², Π»ΠΈΠ±ΠΎ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡΠΈΡ Ρ C (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ²) Π½Π° C++. ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄ΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΌΡ ΡΠ°Π·ΠΆΡΠ²ΡΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π΄ΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ
Π’Π΅ΡΠΌΠΈΠ½Ρ lvalue ΠΈ rvalue Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ ΡΠ°ΠΊΠΈΠΌ, Ρ ΡΠ΅ΠΌ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° C/C++, Π° ΠΏΡΠΈ Π²ΡΡΡΠ΅ΡΠ΅ Π½Π΅ ΡΡΠ°Π·Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ½ΡΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°ΡΠ°ΡΡ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ β ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ gcc :
ΠΡ ΡΠ²Π΅Π΄ΠΈΡΠ΅ Π½Π΅ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π΄ΡΠΌΠ°Π½Π½ΡΠΉ, ΠΈ Π²ΡΡΠ΄ Π»ΠΈ ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ lvalue β ΡΠ΅ΡΠΌΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΡ Π² ΡΡΡΠΎΡΠΈΠ°Π»Π°Ρ ΠΏΠΎ C/C++. ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Π³Π»ΡΠ΄Π΅Π½ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ g++ :
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΠΏΡΡΡ ΠΆΠ΅, Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ rvalue. Π§ΡΠΎ ΠΆΠ΅ Π² C ΠΈ C++ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄ lvalue ΠΈ rvalue? ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΡΠΎΡΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΡΠΎΡΠΈΡΠΎ Π΄Π°Π΄ΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ lvalue ΠΈ rvalue Π² ΡΠΏΡΠΎΡΡΠ½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΡΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΠΎΠ΄ ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ΅ΠΊΠ»ΠΎΠΌ.
lvalue (locator value) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅Π΅Ρ Π°Π΄ΡΠ΅Ρ).
rvalue ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΡΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ lvalue, Π»ΠΈΠ±ΠΎ rvalue. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ lvalue ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ rvalue β ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
Π’Π΅ΡΠΌΠΈΠ½Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π²ΡΡΠ΅, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΡΡΠΊΠΈΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΎΠΈΡ ΡΡΠ°Π·Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΠΎΡΡΠ½ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°:
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ lvalue Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΈ var ΡΠ²Π»ΡΠ΅ΡΡΡ lvalue, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΌΠ΅ΡΡΠΎΠΌ Π² ΠΏΠ°ΠΌΡΡΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ:
ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ Π²ΡΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΡΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ Π² C++ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ:
ΠΠ΄Π΅ΡΡ foo Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ lvalue, ΡΠΎ Π΅ΡΡΡ Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠΎΠ±ΡΠ΅, Π² C++ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ lvalue, ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Π° Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ²Π΅Π΄ΡΠΌ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° [] Π² ΠΊΠ»Π°ΡΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ std::map :
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ mymap[10] ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° std::map::operator[] Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ lvalue
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ Π²ΡΠ΅ΠΌ lvalue ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π’Π΅, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ lvalue (modifiable lvalues). Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ C99 ΡΡΠ°Π½Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ lvalue ΠΊΠ°ΠΊ:
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ lvalue ΠΈ rvalue
ΠΠ±ΡΠ°Π·Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ°, ΠΎΠΏΠ΅ΡΠΈΡΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠ΅Π±ΡΡΡ rvalue Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ‘+’ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° rvalue Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ rvalue:
ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°Π½ΡΡΠ΅, a ΠΈ b ΠΎΠ±Π° lvalue. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ Π½Π΅ΡΠ²Π½ΠΎΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ lvalue-Π²-rvalue. ΠΡΠ΅ lvalue, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΈΠΏ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² rvalue.
Π§ΡΠΎ Π½Π°ΡΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄ΡΡΠ³ΡΡ ΡΡΠΎΡΠΎΠ½Ρ? ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ rvalue Π² lvalue? ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π½Π΅Ρ! ΠΡΠΎ Π±Ρ Π½Π°ΡΡΡΠΈΠ»ΠΎ ΡΡΡΡ lvalue, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ (ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ rvalue Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ lvalue).
ΠΡΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ lvalue Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΠΈΠ· rvalue ΡΠ²Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ‘*’ (ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅) ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ rvalue Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ lvalue Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄:
ΠΠ±ΡΠ°ΡΠ½ΠΎ, ΡΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ‘&’ (Π°Π΄ΡΠ΅Ρ) ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ lvalue ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ rvalue:
Π‘ΠΈΠΌΠ²ΠΎΠ» «&» ΠΈΠ³ΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΡΡ ΡΠΎΠ»Ρ Π² C++ β ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΠ»ΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ. ΠΠ³ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° lvalueΒ». ΠΠ΅ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ Π½Π° lvalue Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ rvalue, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ rvalue-Π²-lvalue ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ Π½Π° lvalue ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ rvalue. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ rvalue ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΡ ΠΈΠ΄ΠΈΠΎΠΌ C++ β Π΄ΠΎΠΏΡΡΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
CV-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ rvalues
lvalue (3.10) Π½Π° ΡΠΈΠΏ T, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ, ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π² rvalue. [. ] ΠΡΠ»ΠΈ T Π½Π΅ ΠΊΠ»Π°ΡΡ, ΡΠΈΠΏΠΎΠΌ rvalue ΡΠ²Π»ΡΠ΅ΡΡΡ cv-Π½Π΅ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΠΈΠΏΠ° T. ΠΠ½Π°ΡΠ΅, ΡΠΈΠΏΠΎΠΌ rvalue ΡΠ²Π»ΡΠ΅ΡΡΡ T.
Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠΈΡ Β«cv-Π½Π΅ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉΒ»? CV-ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ β ΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ const ΠΈ volatile ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΈΠΏΠ°.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ cv-Π½Π΅ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»Π½ΡΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ ΠΈΠ»ΠΈ ΡΠΈΠΏΠΎΠΌ void (3.9), ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΈ cv-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ: ΡΠΈΠΏ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ const, ΡΠΈΠΏ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ volatile ΠΈ ΡΠΈΠΏ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ const volatile. [. ] CV-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ cv-Π½Π΅ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ.
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° rvalue (C++11)
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° rvalue ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌ Π² ΡΠ·ΡΠΊ C++11. ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π΄ΠΈΡΠΊΡΡΡΠΈΡ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠΎΠΉ ΡΠΊΡΠΎΠΌΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ (Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΊΡΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ³ΡΠ³Π»ΠΈΠ² Β«rvalue referencesΒ». ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π°Ρ ΠΎΠΆΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ: ΡΡΠΎΡ, ΡΡΠΎΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²ΠΎΡ ΡΡΠΎΡ), Π½ΠΎ Π²ΡΡ ΠΆΠ΅ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ Π³Π»Π°Π²Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΠΌΠ΅ΡΡΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ lvalue ΠΈ rvalue ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π½Π°ΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΡΠΆΠ΄Π°ΡΡ ΠΎ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ ΡΠ·ΡΠΊΠ°.
ΠΠΎΠ±ΡΠ°Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΡΠ°ΡΡΠΈ Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π° Π½Π° ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ Π³Π»Π°Π²Π½ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ lvalue ΠΈ rvalue ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ lvalue ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ rvalue β Π½Π΅Ρ. Π§ΡΠΎ ΠΆΠ΅, C++11 Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΎΠ΄Π½Ρ Π²Π°ΠΆΠ½Π΅ΠΉΡΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠΈ, ΡΠ°Π·ΡΠ΅ΡΠ°Ρ Π½Π°ΠΌ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° rvalue ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ .
ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π°ΠΈΠΏΡΠΎΡΡΠ΅ΠΉΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π»ΠΈΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΠ΅ ΠΊ ΡΠ΅ΠΌΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ:
ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ v1 Π² v2 :
Π Π²ΠΎΡ, ΡΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ:
Π§ΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ. ΠΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ v2 Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ rvalue:
Π₯ΠΎΡΡ Π·Π΄Π΅ΡΡ Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ Π²Π΅ΠΊΡΠΎΡΡ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΉ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ rvalue ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ v2 (ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΠΊΡΠΎΡ). ΠΠΎΡ ΡΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½Π΅:
ΠΠ³ΠΎ! ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ Ρ Π»ΠΎΠΏΠΎΡΠ½ΠΎ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π·Π΄Π΅ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ°ΡΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Ρ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π ΡΡΠΎ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΏΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π·Π° Π·ΡΡ.
ΠΠΎ, Π½Π΅Ρ! C++11 Π΄Π°ΡΡ Π½Π°ΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° rvalue, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Β«ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°Β», Π° Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Β«ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡΒ» (ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π²ΡΡ Π²ΡΠ΅ΠΌΡ Π½Π°Π·ΡΠ²Π°Π» operator= ΠΊΠΎΠΏΠΈΡΡΡΡΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ. Π C++11 ΡΡΠ° ΡΠ°Π·Π½ΠΈΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ). ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ operator= Π² IntVec :
ΠΠ²ΠΎΠΉΠ½ΠΎΠΉ Π°ΡΠΏΠ΅ΡΡΠ°Π½Π΄ β ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° rvalue. ΠΠ½ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΎ, ΡΡΠΎ ΠΈ ΠΎΠ±Π΅ΡΠ°Π΅Ρ β Π΄Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° rvalue, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠΎ Β«ΡΡΠ°ΡΠΈΡΡΒ» Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ rvalue β ΠΎΠ½ΠΈ Π΅ΠΌΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅ Π½ΡΠΆΠ½Ρ! ΠΠΎΡ, ΡΡΠΎ Π²ΡΠ²Π΅Π΄Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½:
Π₯ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅ΡΡ ΡΠ°Π·, ΡΡΠΎ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠ½Π° Π°ΠΉΡΠ±Π΅ΡΠ³Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΈ ΡΡΡΠ»ΠΎΠΊ Π½Π° rvalue. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΠ΅ΠΌΠ° Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΈ Π·Π°Π³Π°Π΄ΠΎΠΊ. Π― ΠΏΡΡΠ°Π»ΡΡ Π»ΠΈΡΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ lvalue ΠΈ rvalue Π² C++. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ C++ ΠΊΠΎΠ΄Π°, Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡ ΠΎ ΡΠ°Π·Π½ΠΎΠ³Π»Π°ΡΠΈΡΡ rvalue ΠΈ lvalue, ΠΎΠΏΡΡΠΊΠ°Ρ ΠΈΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΆΠ°ΡΠ³ΠΎΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ Ρ ΠΏΡΡΠ°Π»ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π»ΡΡΡΠ΅Π΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ΅ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ C++, ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠ°ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C++ ΠΈ Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ Π²Π°Ρ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ.
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ C++11 ΡΡΠ° ΡΠ΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ C++11 Π²Π²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° rvalue ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°. Π§ΡΠΎΠ±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°, ΡΡΡΠΎΠ³ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ rvalue ΠΈ lvalue ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
DTO vs POCO vs Value Object
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ DTO, POCO ΠΈ Value Object
ΠΠ½Π°ΡΠ°Π»Π΅ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ΅ΠΌΠ°ΡΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ Value Object. Π C# ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΡ ΠΎΠΆΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Value Type. ΠΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄Π΅ΡΠ°Π»Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΊΠ°ΡΠ°ΡΡΡΡ ΡΡΠΎΠ³ΠΎ. Value Object, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ, β ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΈΠ· ΡΡΠ΅Π΄Ρ DDD (Domain-Driven Design).
ΠΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ. ΠΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠ°ΠΊ DTO, Value Object ΠΈ POCO ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ. ΠΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅?
DTO β ΡΡΠΎ ΠΊΠ»Π°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π»ΠΎΠ³ΠΈΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ. DTO ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π»ΠΈΠ±ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΡΠΌΠΈ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Value Object β ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ»Π΅Π½ Π²Π°ΡΠ΅ΠΉ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ½ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, ΡΡΠΎ ΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ (Entities). ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Value Object ΠΈ Entity Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Value Object-Π° Π½Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π²Π° Value Object-Π° Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄Π²Π΅ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
Value Object-Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
POJO Π±ΡΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΠ°ΡΡΠΈΠ½ΠΎΠΌ Π€Π°ΡΠ»Π΅ΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π΄Π»Ρ JavaBeans ΠΈ Π΄ΡΡΠ³ΠΈΡ Β«ΡΡΠΆΠ΅Π»ΡΡ Β» enterprise-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ Π² ΡΠ°Π½Π½ΠΈΡ 2000-Ρ .
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ POJO Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΄ΠΎΠΌΠ΅Π½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ JavaBeans. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, JavaBeans Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ.
ΠΡΡΠ³ΠΎΠΉ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π°Π½ΡΠΈ-POCO ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° β Entity Framework Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 4.0. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ EF, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π» ΠΎΡ EntityObject, ΡΡΠΎ ΠΏΡΠΈΠ²Π½ΠΎΡΠΈΠ»ΠΎ Π² Π΄ΠΎΠΌΠ΅Π½ Π»ΠΎΠ³ΠΈΠΊΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ EF. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 4, Entity Framework Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ POCO ΠΌΠΎΠ΄Π΅Π»ΡΡ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ EntityObject.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠ½ΡΡΠΈΠ΅ POCO ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² YAGNI, KISS ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ best practices. POCO ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
ΠΠΎΡΡΠ΅Π»ΡΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ
ΠΡΡΡ Π»ΠΈ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΌΡ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ? Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, DTO ΠΈ Value Object ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, POCO β ΡΡΠΎ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ DTO ΠΈ Value Object:
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Value Object ΠΈ DTO Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²Π»ΡΡΡΡΡ POCO. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, POCO β ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Value Object, Entity, DTO ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠΈΠΌΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ Π²Π°ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅.
ΠΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ :
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ POCO-ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈ ΠΈΠΌΠ΅ΡΡ, ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ, Ρ.ΠΊ. ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ Value Object, ΡΠ°ΠΊ ΠΈ Entity. Π’Π°ΠΊΠΆΠ΅, POCO ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ. ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ POCO DTO.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΡΡΠ°ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² (Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² C#)
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ»Π΅ΠΉ, ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ref ΠΈΠ»ΠΈ out.
Π‘Π²ΠΎΠΉΡΡΠ²Π° Π½Π°ΡΠ»ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ; Π΄Π»Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ; Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ).
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Month ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, Π° ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° set ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Month Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 1 Π΄ΠΎ 12. ΠΠ»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Month ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ «ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ». ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ. ΠΠΎΠ»Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠ½ΠΎΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° get
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° get Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ return ΠΈΠ»ΠΈ throw, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΈΠ· ΡΠ΅Π»Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° get ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ:
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° set
ΠΡΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° set Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅Ρ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ( value ) Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ° set ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° init
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° virtual. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° override. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅.
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΠΌ (sealed). ΠΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ (abstract). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΈ Π·Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² virtual, abstract ΠΈΠ»ΠΈ override Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ (static) ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΡΠΈΠΌΠ΅ΡΡ
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈΠΌΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NumberOfEmployees Π½Π° 1, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠΌΡ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°.
ΠΡΠΈΠΌΠ΅Ρ ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΡΡΡΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ:
ΠΠ° ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Name Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Name Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ new :
ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΊΡΡΡΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (Employee) :
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΊΡΡΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ new.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°
Entity vs Value Object: ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠ»ΠΈΡΠΈΠΉ
Π’ΠΈΠΏΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ entities ΠΈ value objects, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ (equality), ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠΏΠ°ΡΡ Π² ΡΠΈΠ»Ρ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ.
Reference equality (ΡΡΡΠ»ΠΎΡΠ½Π°Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ) ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°Π²Π½Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΊΡΡΠ΅:
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ Π² C#:
Identifier equality (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²) ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ Ρ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Id ΠΏΠΎΠ»Π΅. ΠΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄ΡΡ ΡΠ°Π²Π½Ρ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ:
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»Π΅ΠΆΠΈΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΡΡΠ½ΠΎΡΡΡΠΌ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠ°Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ β ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΡΠ½ΠΎΡΡΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ β Π½Π΅Ρ.
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Ρ-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ Π΅ΡΠ»ΠΈ Π΄Π²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΈΡΠ°ΡΡ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² Π΄Π²ΡΡ ΡΡΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Id ΠΏΠΎΠ»Ρ), ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ½ΠΎΡΡΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ»ΡΡΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎ Π΄Π²ΡΡ Π»ΡΠ΄ΡΡ , Π½ΠΎΡΡΡΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ. ΠΡ Π½Π΅ ΡΡΠΈΡΠ°Π΅ΠΌ ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ. ΠΠ½ΠΈ ΠΎΠ±Π° ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ (Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»ΠΈΠΌΠΎΠΉ) ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡΡ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ 1 ΡΡΠ±Π»Ρ, Π½Π°ΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠ° ΠΆΠ΅ Π»ΠΈ ΡΡΠΎ ΠΌΠΎΠ½Π΅ΡΠ°, ΡΡΠΎ Π±ΡΠ»Π° Ρ Π½Π°Ρ Π²ΡΠ΅ΡΠ°. Π’ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° ΡΡΠ° ΠΌΠΎΠ½Π΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ½Π΅ΡΠΎΠΉ ΡΠ΅Π½Π½ΠΎΡΡΡΡ Π² 1 ΡΡΠ±Π»Ρ, ΠΌΡ Π½Π΅ ΠΏΡΠΎΡΠΈΠ² Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ Π΄ΡΡΠ³ΠΎΠΉ, ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄Π΅Π½Π΅Π³ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ»
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ². Π‘ΡΡΠ½ΠΎΡΡΠΈ ΠΆΠΈΠ²ΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ½ΡΡΠΌΠ΅. ΠΠ½ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ (Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ Ρ ΡΠ°Π½ΠΈΠΌ ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ) ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½ΠΈ.
ΠΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½ΡΠ»Π΅Π²ΡΠΌ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ. ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΠΌ ΠΈΡ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ. ΠΡΠΎ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠ΅Π΅ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡ. ΠΡΠ»ΠΈ ΡΡΠ±Π»Π΅Π²Π°Ρ ΠΌΠΎΠ½Π΅ΡΠ° β ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π΄ΡΡΠ³Π°Ρ ΡΡΠ±Π»Π΅Π²Π°Ρ ΠΌΠΎΠ½Π΅ΡΠ°, ΡΠΎ ΠΊΠ°ΠΊΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ°? ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΈ Π·Π°Π±ΡΡΡ ΠΎ Π½Π΅ΠΌ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ.
ΠΠ°ΠΉΠ΄Π»Π°Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠΈΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅, ΠΎΠ½ΠΈ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΡΡΠ½ΠΎΡΡΡΠΌ. ΠΠ°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΡΡΠ½ΠΎΡΡΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΌΠΎΠ½Π΅ΡΠ°ΠΌΠΈ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅, Π²ΠΎΠΏΡΠΎΡ Β«Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π½Π΅Π³?Β» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°, Ρ.ΠΊ. ΠΎΠ½ Π½Π΅ Π½Π΅ΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π²ΠΎΠΏΡΠΎΡ Β«Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π½Π΅Π³ Ρ ΠΠ΅ΡΠΈ?Β» ΠΈΠ»ΠΈ Β«Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π½Π΅Π³ Ρ Π²ΡΠ΅Ρ ΡΠ·Π΅ΡΠΎΠ² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ?Β» ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²Π°Π»ΠΈΠ΄Π½Ρ.
ΠΡΡΠ³ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π·Π΄Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π½Π΅ Ρ ΡΠ°Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΡΡ (ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ) ΠΈΡ ΠΊ ΡΡΡΠ½ΠΎΡΡΡΠΌ ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π² ΠΠ (ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΈΠΆΠ΅).
ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ β Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠΌΠΎΡΡΡ. ΠΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ. Π ΠΏΡΠΎΡΠΈΠ²ΠΎΠ²Π΅Ρ ΡΡΠΎΠΌΡ, ΡΡΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π½Π΅ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎΡ Π³Π°ΠΉΠ΄Π»Π°ΠΉΠ½ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠΎΠ³ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ . Π― ΡΠΎΠΆΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»ΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π»Π΅ΠΆΠΈΡ Π³Π»ΡΠ±ΠΆΠ΅ ΡΠ΅ΠΌ Ρ Π΄ΡΠΌΠ°Π». ΠΠ·ΠΌΠ΅Π½ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΌΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠ°Π²Π½ΡΠΉ Π½ΡΠ»Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ». Π ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π²Π΅Π΄Π΅Ρ ΠΊ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ.
ΠΡΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ», Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠ»Π΅ΠΏΠΊΠΎΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π½ΠΈΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π½Π°Ρ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ΠΌΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ: Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ, Π·Π½Π°ΡΠΈΡ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ?
ΠΠ΅ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π² Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΡΡΠ½ΠΎΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΌΡ ΡΡΠ΄ΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ. Π―Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ: ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠ½ΠΎΡΡΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΌ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π΄Π΅Π½ΡΠ³ΠΈ ΠΊΠ°ΠΊ Π½Π΅ΡΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΊΡΠΏΡΡ Π² ΡΡΡΠ°Π½Π΅, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΌΠ°ΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π±Π°Π½ΠΊΠ½ΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎ Π½Π΅ΠΉ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π΄Π΅Π½Π΅Π³ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ½ΠΎΡΡΡΡ.
ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΌΡ Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ ΠΊ ΡΡΡΠ½ΠΎΡΡΡΠΌ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ. ΠΡ ΡΠΆΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ ΡΡΠΈ Π²ΠΈΠ΄Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ: Π΅ΡΠ»ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Π΄ΡΡΠ³ΠΈΠΌ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΡΠΎ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ Π·Π½Π°ΠΊ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΡΡΠ»Π΅Π½Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΊΠ»Π°ΡΡ Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ (integer). ΠΠ°ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π±Π΅Π·ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ° 5 ΡΠΎΠΉ ΠΆΠ΅ ΡΠΈΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅. ΠΡΠ΅ ΠΏΡΡΠ΅ΡΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ, Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠΈΠΏ integer ΠΏΠΎ ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π΅ΠΏΠ΅ΡΡ, Π·Π°Π΄Π°ΠΉΡΠ΅ ΡΠ΅Π±Π΅ Π²ΠΎΠΏΡΠΎΡ: Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π»ΠΈ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΊΠ°ΠΊ integer? ΠΡΠ»ΠΈ ΠΎΡΠ²Π΅Ρ Π΄Π°, ΡΠΎ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ?
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ° Π² Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ: ΡΡΡΠ½ΠΎΡΡΡ Person ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Address:
ΠΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΠ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅? Π Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ β ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²:
Π’Π°ΠΊΠΎΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΠΏΠΎΠ»Π½ΡΡ Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΠ, ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ°Π±Π»ΠΈΡΠ° Address ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Id Π² ΠΊΠ»Π°ΡΡ Address ΡΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. ΠΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ. Π ΡΡΠΎ ΡΠΆΠ΅ Π½Π°ΡΡΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΎΡΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π·Π΄Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ. Address ΠΌΠΎΠΆΠ΅Ρ ΠΆΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΡΡ, Ρ.ΠΊ. ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ Person ΠΈΠ· ΠΠ Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ Address. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π³ΠΎΠ²ΠΎΡΡΡΠ΅Π³ΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΠΈΠ»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Β«Π·Π°ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΡΡΒ» ΠΏΠΎΠ»Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Address Π² ΡΠ°Π±Π»ΠΈΡΡ Person:
ΠΡΠΎ ΡΠ΅ΡΠΈΡ ΠΎΠ±Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: Address Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ Person.
ΠΡΠΎΡ Π΄ΠΈΠ·Π°ΠΉΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΅ΡΠ»ΠΈ Π²Ρ ΠΌΡΡΠ»Π΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Address, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ integer, ΠΊΠ°ΠΊ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠ°Π½Π΅Π΅. Π‘ΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π½Π΅Ρ, Π²Ρ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΡΡ ΡΠ°Π±Π»ΠΈΡΡ. Π’Π΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ. ΠΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΈΡ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ.
ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΡΠΌ
Π Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΡΠΌ. ΠΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ ΠΈ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π ΠΈΠ΄Π΅Π°Π»Π΅, Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π‘ΡΡΠ½ΠΎΡΡΠΈ Π² ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π±ΡΠ΄ΡΡ ΡΠ»ΡΠΆΠΈΡΡ ΠΎΠ±Π΅ΡΡΠΊΠ°ΠΌΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.
Π’Π°ΠΊΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΡΡΡΠ½ΠΎΡΡΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ»Π°ΡΡ Address Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΡΡΡΠ½ΠΎΡΡΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Id ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΠ. ΠΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡ Π²Ρ Π·Π°ΠΌΠ΅ΡΠ°Π΅ΡΠ΅, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ Π²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ½ΠΎΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.