Π’ΡΠΈ ΡΡΠΎΠΊΠ° Java, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΡΠ²ΠΎΠΈΠ» Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π³ΠΎΡΡΠΊΠΎΠΌ ΠΎΠΏΡΡΠ΅
ΠΡΡΠΎΡΠ½ΠΈΠΊ: Medium ΠΠ·ΡΡΠ°ΡΡ Java ΡΠ»ΠΎΠΆΠ½ΠΎ. Π― ΡΡΠΈΠ»ΡΡ Π½Π° ΡΠ²ΠΎΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ . Π’Π΅ΠΏΠ΅ΡΡ ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΠΈΡΡΡΡ Π½Π° ΠΌΠΎΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ Π³ΠΎΡΡΠΊΠΎΠΌ ΠΎΠΏΡΡΠ΅, ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.1. ΠΡΠΌΠ±Π΄Ρ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΠΈ
ΠΡΠΌΠ±Π΄Ρ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 4 ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π±ΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ. ΠΡΠΎ ΡΡΡΠΆΠ΅Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ Π»ΡΠΌΠ±Π΄Π°? ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠΎΡΠ΅ΠΌΡ? ΠΡΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΡΠ° Π²ΡΠ·ΠΎΠ²Π°, ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ· Π»ΡΠΌΠ±Π΄Ρ. Π Π²ΠΎΡ Happy path Π² Π»ΡΠΌΠ±Π΄Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ. ΠΠΎΡΠ»Π΅ ΡΠ±ΠΎΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ²Π΅Ρ:at [CLASS].lambda$null$2([CLASS].java:85)
at [CLASS]$$Lambda$64/730559617.accept(Unknown Source)
Π‘Π»Π΅Π΄ΠΈΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΡΠ΅ΠΊΠ° Π»ΡΠΌΠ±Π΄Π° ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΌΠ΅Π½Π° Π·Π°ΠΏΡΡΠ°Π½Ρ, ΠΈΡ
ΡΡΡΠ΄Π½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΈΡΡ. ΠΠΎΠ»ΡΡΠ΅ Π»ΡΠΌΠ±Π΄ β Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΠΊΠ°.
ΠΠ°ΠΊΠΎΠΉ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π»ΡΠΌΠ±Π΄? ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
map(elem -> {
int result = elem.getResult();
return result;
});
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ IntelliJ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ TAB Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ, ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠΎ Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ.
βΠΠΎΠ³Π΄Π° ΠΌΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π° ΡΡΡΠΎΠΊΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Π°, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ F7 (step into), ΡΠΎΠ³Π΄Π° IntelliJ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π±Π»ΠΎΠΊ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tab, ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΡΡΠΎ ΡΠ΅ΡΠΈΠΌ, ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠΌΠΈΡΠ΅ F7β.
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΡΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· Π»ΡΠΌΠ±Π΄Ρ? ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ (wrap) ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΌΠ΅ΡΡΠ° Π²ΡΠ·ΠΎΠ²Π°. ΠΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AtomicType, Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΉ type. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ lambda.
ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΡΠ΅ΠΊΠ°? ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (named functions). Π’Π°ΠΊ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡΡΠ΅Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ (responsible) ΠΊΠΎΠ΄, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π²ΡΡΠ΅Π·Π°ΡΡ cryptic stack trace.
ΠΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ Π»ΡΠΌΠ±Π΄Π°? ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π΅ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. Π£ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π΅Π΄ΠΈΠ½Π°Ρ ΡΠΎΡΠΊΠ° ΠΎΡΡΡΠ΅ΡΠ°. ΠΠ°ΠΆΠ΄Π°Ρ Π»ΡΠΌΠ±Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅.
lambda$yourNamedFunction
lambda$0
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ°ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΠ»ΡΡΠΈΠ΅ Π»ΡΠΌΠ±Π΄Ρ. ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π»ΡΠΌΠ±Π΄Ρ, ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
.map(this::namedFunc1).filter(this::namedFilter1).map(this::namedFunc2)
2. ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ (Lists). ΠΠ°ΠΌ Π½ΡΠΆΠ½Ρ HashMap Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΠΎΠ»Π΅ΠΉ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ TreeMap. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ. Π Π²Π°ΠΌ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ. ΠΠ°ΠΊ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ? ΠΠ°ΠΊΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½? ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ? ΠΡΠ΅ ΡΡΠΈ ΠΎΡΠ²Π΅ΡΡ Π²Π»ΠΈΡΡΡ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠ±Π΅ΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΡΠ°Π½Π΅Π΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ Π½Π΅ ΠΆΠ°Π»Π΅ΡΡ. Arrays::asList ΡΠΎΠ·Π΄Π°Π΅Ρ βΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉβ ΡΠΏΠΈΡΠΎΠΊ. Π§ΡΠΎ Π½Π΅Π»ΡΠ·Ρ Π΄Π΅Π»Π°ΡΡ Ρ ΡΡΠΈΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ? ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΠ½ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. Π§ΡΠΎ ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? ΠΠ°Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π½Π΅ Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Arrays::asList ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ β Π½Π΅Ρ. new ArrayList() ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ βΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉβ ΡΠΏΠΈΡΠΎΠΊ. ΠΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ? ΠΡΠ΅, ΠΈ ΡΡΠΎ ΠΏΠΎΠ²ΠΎΠ΄ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½Π΅Π΅. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΈΠ· Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ new ArrayList(). List::of ΡΠΎΠ·Π΄Π°Π΅Ρ βΠ½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΡβ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ. ΠΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ . ΠΡΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ β ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, int, ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.@Test
public void testListOfBuilders() {
System.out.println("### TESTING listOF with mutable content ###");
StringBuilder one = new StringBuilder();
one.append("a");
StringBuilder two = new StringBuilder();
two.append("a");
List<StringBuilder> asList = List.of(one, two);
asList.get(0).append("123");
System.out.println(asList.get(0).toString());
}
### TESTING listOF with mutable content ###
a123
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΈΡ
Π² List::of. ΠΡΠΈ ΡΡΠΎΠΌ List::of Π½Π΅ Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π³Π°ΡΠ°Π½ΡΠΈΠΉ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ.
List::of ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΡ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΡΠ΅Π½ΠΈΡ. ΠΠ½Π°ΠΉΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅, Π° ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ. Π‘ΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΌΠ΅Π½ΡΡΡΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅. ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ. ΠΠΎΠΉΠΌΠΈΡΠ΅, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
3. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ ΡΠ°Π±ΠΎΡΡ
ΠΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ? ΠΡ ΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅? ΠΡ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ? ΠΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Logged Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠΎ Π²Ρ ΠΎΡΠΈΠ±Π°Π΅ΡΠ΅ΡΡ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Logged Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°. Π ΠΌΠΎΠ΅ΠΌΡ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.@Transaction
@Method("GET")
@PathElement("time")
@PathElement("date")
@Autowired
@Secure("ROLE_ADMIN")
public void manage(@Qualifier('time')int time) {
...
}
Π§ΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅? Π’ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΌΠ΅ΡΠ°Π½Π° Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ΅ΠΏΠ»ΠΎΡ
ΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅, Π½ΠΎ Π±ΡΠΎΡΠ°Π΅ΡΡΡ Π² Π³Π»Π°Π·Π°.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ Π½ΡΠΆΠ½Ρ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ endpoint. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ @Transactional. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΎΠΊΡΠ°ΡΠ°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π·Π° ΡΡΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΠ΄Π΅ΡΡ Π½Π΅Ρ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΈΠ³ΡΠ΅ ΡΡΠ°ΡΡΠ²ΡΡΡ ΠΎΠ±Π°. Π― Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ XML ΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠΉΡΡ ΡΠ°Π±Π»ΠΎΠ½, Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π»ΠΎΠ³ΠΈΠΊΡ Π² Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Ρ
ΠΎΡΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠΎΡΠ°Π»Ρ: Π½Π΅ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΠΉΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ XML.
ΠΠΎΠ½ΡΡ: Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Optional
ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ orElse ΠΈΠ· Optional. ΠΠ΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ orElse. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΠΎΠ³Π΄Π° getValue(x) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ getValue(y). ΠΠ΅ΡΠΎΠ΄ Π² orElse Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ getValue(x) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅ΠΏΡΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Optional.getValue(x).orElse(getValue(y)
.orElseThrow(() -> new NotFoundException("value not present")));
public Optional<Value> getValue(Source s)
{
System.out.println("Source: " + s.getName());
// returns value from s source
}
// when getValue(x) is present system will output
Source: x
Source: y
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ orElseGet. ΠΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ Π½Π΅ΠΏΡΡΡΡΡ
Optionals.
getValue(x).orElseGet(() -> getValue(y)
.orElseThrow(() -> new NotFoundException("value not present")));
public Optional<Value> getValue(Source s)
{
System.out.println("Source: " + s.getName());
// returns value from s source
}
// when getValue(x) is present system will output
Source: x
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ·ΡΡΠ°ΡΡ Java ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΡΠΈΡΡ Java Π·Π° 24 ΡΠ°ΡΠ°. ΠΡΡΠ°ΡΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΌΠ°ΡΡΠ΅ΡΡΡΠ²ΠΎ. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΈΡΠ΅ΡΡ ΠΈ ΠΏΡΠ΅ΡΡΠΏΠ΅Π²Π°ΠΉΡΠ΅ Π² ΡΠ°Π±ΠΎΡΠ΅.ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ SOLID Π² ΠΊΠΎΠ΄Π΅
ΠΡΡΠΎΡΠ½ΠΈΠΊ: Cleanthecode ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ SOLID. Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΌ Π²ΡΠ΅ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ. Π Π΄Π°Π²Π°ΠΉΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅ΡΡΠ½ΡΠΌΠΈ. ΠΡ Π±ΡΠ»ΠΈ ΠΠΠ£ΠΠ«. Π Π½Π°Ρ ΠΊΠΎΠ΄ Π±ΡΠ» ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅. Π‘Π»Π°Π²Π° Π±ΠΎΠ³Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ SOLID.ΠΡΠΈΠ½ΡΠΈΠΏΡ SOLID
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ SOLID-ΠΊΠΎΠ΄? ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΈΠΌ ΠΏΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ:- ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ
- ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ-Π·Π°ΠΊΡΡΡΠΎΡΡΠΈ
- ΠΡΠΈΠ½ΡΠΈΠΏ Π·Π°ΠΌΠ΅Π½Ρ ΠΠΈΡΠΊΠΎΠ²
- ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
- ΠΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ
Π ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅ Π ΠΎΠ±Π΅ΡΡ Π. ΠΠ°ΡΡΠΈΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: βΠ£ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΏΡΠΈΡΠΈΠ½Π° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡβ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°.1. Π§Π΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ
Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ User, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΈ:- ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ
- ΠΠ²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ
- ΠΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ
2. Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, FirstUseNotification. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ:- ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΎΡΡ Π»ΠΈ ΡΠΆΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅
- ΠΡΠΌΠ΅ΡΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ-Π·Π°ΠΊΡΡΡΠΎΡΡΠΈ
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ-Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ ΠΠ΅ΡΡΡΠ°Π½ΠΎΠΌ ΠΠ΅ΠΉΠ΅ΡΠΎΠΌ: βΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (ΠΊΠ»Π°ΡΡΡ, ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Ρ. Π΄.) Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π·Π°ΠΊΡΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈβ. ΠΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ΅ΠΉΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ. ΠΡΠΎ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π² ΠΡΠΈΠ½ΡΠΈΠΏΠ°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ ΠΡΠΈΠ½ΡΠΈΠΏΠ°Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΠΠ°ΡΡΠΈΠ½ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. ΠΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΊΡΡΡΡ Π΄Π»Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ°ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π΅Π³ΠΎ.ΠΡΠΈΠ½ΡΠΈΠΏ Π·Π°ΠΌΠ΅Π½Ρ ΠΠΈΡΠΊΠΎΠ²
ΠΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ·ΠΎΠ±ΡΠ΅Π»Π° ΠΠ°ΡΠ±Π°ΡΠ° ΠΠΈΡΠΊΠΎΠ² β Π»Π°ΡΡΠ΅Π°Ρ ΠΏΡΠ΅ΠΌΠΈΠΈ Π’ΡΡΡΠΈΠ½Π³Π° Π·Π° Π²ΠΊΠ»Π°Π΄ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»Π° ΡΠ²ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: βΠΠ±ΡΠ΅ΠΊΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΈΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ² Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡβ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ, ΡΡΠΎ Π·Π²ΡΡΠΈΡ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ β ΡΡΠΎ ΠΎΡΠΎΠ±Π°Ρ ΡΠΎΡΠΌΠ° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π·Π°ΠΌΠ΅Π½Ρ ΠΠΈΡΠΊΠΎΠ². ΠΠ΅Π·Π΄Π΅, Π³Π΄Π΅ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Π°Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ SetWidth ΠΈ SetHeight. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½Ρ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² ΡΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π·Π°ΠΌΠ΅Π½Ρ ΠΠΈΡΠΊΠΎΠ².ΠΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ: βΠΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡβ. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, ΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΏΠΈΡΠ΅Ρ. ΠΠΎ Ρ Π½ΠΈΠΌ Π»Π΅Π³ΠΊΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°? Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΏΠ»Π°Π½: ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΈΠ· ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ setWidth ΠΈ setHeight, ΠΊΠΎΡΠΎΡΡΠ΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ΠΌΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ»ΠΎΠΌΠ°Π»ΠΈ Π±Ρ ΡΡΠΎ-ΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° Π½Π΅ Π±ΡΠ»ΠΈ Π±Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌΠΈ. Π ΡΡΠ°ΡΡΡΡ Π΄Π»Ρ Π½Π°Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½Π°ΡΡΡΠ°Π΅ΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π·Π°ΠΌΠ΅Π½Ρ ΠΠΈΡΠΊΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ Π½Π°ΡΡΡΠ°Π΅ΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΡ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.ΠΡΠΈΠ½ΡΠΈΠΏ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΡΠΎΡΡ: Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ, ΠΈ Π½Π° Π½ΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π»ΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.- A. ΠΠΎΠ΄ΡΠ»ΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ±Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²).
- Π. ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ. ΠΠ΅ΡΠ°Π»ΠΈ (ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ) Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ.
- ΠΠΎΠ΄ΡΠ»Ρ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ
- ΠΠΎΠ΄ΡΠ»Ρ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π·Π°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ ΡΠΎΠΉ ΠΆΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ