ΠΠ΅ΠΊΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π£Π·ΠΎΡ ΠΠ· ΠΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΠΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ 8 ΠΡΠΊΠ²
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΡΠΎΡΡΠ²ΠΎΡΠ΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 8 Π±ΡΠΊΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π±ΡΠΊΠ²Ρ Π
ΠΠΈΠΆΠ΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ Π½Π° ΠΠ΅ΠΊΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΠΎΡ ΠΈΠ· ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ 8 Π±ΡΠΊΠ², Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠΌΠΎΡΡ Π² Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΊΡΠΎΡΡΠ²ΠΎΡΠ΄Π°, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΎΡΠ²Π΅Ρ Π½Π° ΠΊΡΠΎΡΡΠ²ΠΎΡΠ΄ ΠΈ ΡΠΊΠ°Π½Π²ΠΎΡΠ΄

ΠΠ ΠΠΠΠΠΠ’
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
ΡΡ Π·Π½Π°Π΅ΡΡ ΠΎΡΠ²Π΅Ρ ?
ΠΎΡΠ²Π΅Ρ:
ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΡΠΎΡΡΠ²ΠΎΡΠ΄Ρ
- ΠΡΠ½Π°ΠΌΠ΅Π½Ρ
- ΠΠ΅ΠΊΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΠΎΡ ΠΈΠ· ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ
ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡ.
, Π»ΠΈΡΡΡΠ΅Π², ΡΠ²Π΅ΡΠΎΠ² ΠΈ Ρ. ΠΏ.)
- ΠΡΠ½Π°ΠΌΠ΅Π½Ρ
- Π£Π·ΠΎΡ 8 Π±ΡΠΊΠ²
- Π£ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Π»Ρ 8 Π±ΡΠΊΠ²
- ΠΠΈΠ²ΠΎΠΏΠΈΡΠ½ΠΎΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ»ΠΈ ΡΠΊΡΠ»ΡΠΏΡΡΡΠ½ΠΎΠ΅ ΡΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ 8 Π±ΡΠΊΠ²
Π‘ΡΠ΅ΠΊΠ»ΠΎ ΡΠ΅ΡΠΈΠΈ Crystalite Bohemia — ΠΠ²Π°Π΄ΡΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π£Π·ΠΎΡ
HyggeΠΠ΅ΠΆΠ΅Π²Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠ΅Π»Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠΈΡΡΠ·ΠΎΠ²Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠΎΡΠ΄ΠΎΠ²Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠΎΠ»ΡΠ±Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠ΅Π»ΡΠ°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠ΅Π»Π΅Π½Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠΎΠ»ΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠΎΡΠΈΡΠ½Π΅Π²Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΡΠ°ΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΡΠ°Π½ΠΆΠ΅Π²Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠ΅ΡΠ»Π°ΠΌΡΡΡΠΎΠ²Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΡΠΎΠ·ΡΠ°ΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΄Π°Π Π°Π·Π½ΠΎΡΠ²Π΅ΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΄Π°Π ΠΎΠ·ΠΎΠ²Π°Ρ ΠΏΠΎΡΡΠ΄Π°Π‘Π΅ΡΠ°Ρ ΠΏΠΎΡΡΠ΄Π°Π‘Π΅ΡΠ΅Π±ΡΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΄Π°Π‘ΠΈΠ½ΡΡ ΠΏΠΎΡΡΠ΄Π°Π‘ΠΈΡΠ΅Π½Π΅Π²Π°Ρ ΠΏΠΎΡΡΠ΄Π°Π€ΠΈΠΎΠ»Π΅ΡΠΎΠ²Π°Ρ ΠΏΠΎΡΡΠ΄Π°Π§Π΅ΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΄Π°Π§Π΅ΡΠ½ΠΎ-Π±Π΅Π»Π°Ρ ΠΏΠΎΡΡΠ΄Π°ΠΠ½Π³Π΅Π»ΡΠΠΏΠ΅Π»ΡΡΠΈΠ½ΡΠΠ°Π±ΠΎΡΠΊΠΈΠΠ°ΠΌΠ±ΡΠΊΠΠ°Π½ΡΠΈΠΊΠΈΠΠΎΠΆΡΠΈ ΠΊΠΎΡΠΎΠ²ΠΊΠΈΠΠΈΡΠ½ΡΠΡΠ·Π°Π½ΡΠΉ ΡΠ·ΠΎΡΠΠ΅ΡΠ±ΠΠΎΡΠΎΡΠ΅ΠΊΠΡΡΠΈΠΠ΅ΡΠ΅Π²Π½ΡΠΠ΅ΡΠΈΠΠΈΠ½ΠΎΠ·Π°Π²ΡΡΠΠ΅ΠΌΡΡΠ³ΠΠΈΠ²ΠΎΡΠ½ΡΠ΅ΠΠ°ΠΉΡΡΠΠ»ΠΈΠΌΡΠΠ»ΡΠ±Π½ΠΈΠΊΠ°ΠΠΎΡΠΎΠ½Π°ΠΠΎΡΡΠΡΠΎΠ»ΠΈΠΊΠΈΠΡΡΡΠΠ°Π²Π°Π½Π΄Π°ΠΠΈΠ»ΠΈΠΈΠΠΈΠΌΠΎΠ½ΡΠΠΈΡΡΠΠΎΡΡΠΡΠ³ΡΡΠΊΠΈΠΠ°ΠΊΠΈΠΠ΅Π΄Π²Π΅Π΄ΠΈΠΠΈΡΠΊΠΈΠΠΎΡΠ΅ΠΡΠ»ΡΡΡΠΈΠ»ΡΠΌΡΠΡΠΌΠΈ Π’ΡΠΎΠ»Π»ΡΠΠΎΠ²ΡΠΉ Π³ΠΎΠ΄ΠΠ»Π΅Π½ΠΈΠΠ»ΠΈΠ²ΠΊΠΈΠΡΡ ΠΈΠ΄Π΅ΠΈΠΡ ΠΎΡΠ°ΠΠ°Π²Π»ΠΈΠ½ΠΠ°Π½Π΄Π°ΠΠ΅ΡΡΡ ΠΈΠΠΎΠ²Π°ΡΠ°ΠΠΎΠ΄ΡΠΎΠ»Π½ΡΡ ΠΈΠΠΎΠ»ΠΎΡΠΊΠ°ΠΠΎΠΌΠΈΠ΄ΠΎΡΡΠΡΠΈΠ½ΡΠ΅ΡΡΡΠΡΠΈΡΡΠΡΠ΅Π»ΠΊΠΈΠ Π°ΡΡΠ΅Π½ΠΈΡΠ ΠΎΠ·ΡΠ ΠΎΠΌΠ°ΡΠΊΠΈΠ ΡΠ±ΡΠ‘ΠΊΠ°Π½Π΄ΠΈΠ½Π°Π²ΡΠΊΠΈΠΉ ΡΡΠΈΠ»ΡΠ‘ΠΈΡΠ΅Π½ΡΠ‘ΠΎΠ±Π°ΠΊΠΈΠ‘ΠΎΠ²ΡΠ‘ΡΡΠ°Π·ΡΠ’ΡΠ»ΡΠΏΠ°Π½ΡΠ€Π»Π°ΠΌΠΈΠ½Π³ΠΎΠ€ΡΡΠΊΡΡΠ¦Π²Π΅ΡΡΠ―Π±Π»ΠΎΠΊΠΈΠ―Π³ΠΎΠ΄Ρ
- ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ 0
- ΠΠ·Π±ΡΠ°Π½Π½ΠΎΠ΅ 0
- ΠΠΎΡΠ·ΠΈΠ½Π° ΠΠΎΡΠ·ΠΈΠ½Π° 0 0 Π
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ
/ Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ / Π‘ΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ: ΠΠ±Π΅ΡΡΠΊΠ°
Intent Decorator Β β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΠΏΠΎΠΌΠ΅ΡΠ°Ρ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ ΡΠ²ΠΎΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΡΡ .
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±ΡΠ»Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΊΠ»Π°ΡΡΠ΅ Notifier
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π» Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ send
. ΠΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ
ΠΏΠΈΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΠ΅Π»Ρ ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. Π‘ΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΡΡΡΠΏΠ°ΡΡΠ΅Π΅ Π² ΡΠΎΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΠ΅Π»Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΡΠΎ-ΡΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΈΡΠ΅ΠΌ.
Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ
Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ SMS ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
. ΠΡΡΠ³ΠΈΠ΅ Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π½Π° Facebook ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Slack.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΠ΅Π»Ρ.
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ? ΠΡ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ Notifier
ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ
ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.
ΠΠΎ ΡΡΡ ΠΊΡΠΎ-ΡΠΎ ΡΠ΅Π·ΠΎΠ½Π½ΠΎ ΡΠΏΡΠΎΡΠΈΠ» Π²Π°Ρ: Β«ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ? ΠΡΠ»ΠΈ Π²Π°Ρ Π΄ΠΎΠΌ Π³ΠΎΡΠΈΡ, Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌΒ».
ΠΡ ΠΏΠΎΠΏΡΡΠ°Π»ΠΈΡΡ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΎΠ·Π΄Π°Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΡΡΡΡΠΎ ΡΡΠ°Π»ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π΄ΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΏΡΠΈΡΠ΅ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠΉ, Π½ΠΎ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ.
ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΎΡΠ½ΡΠΉ Π²Π·ΡΡΠ² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΈΡ
ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ±ΠΈΠ»ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΠΊΠΎΡΠ΄ ΠΠΈΠ½Π½Π΅ΡΠ°.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° β ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠΉ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ.
- ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΠΌ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°.
- ΠΠΎΠ΄ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ³ΡΠ΅Π³Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π‘ΠΎΡΡΠ°Π² Π²ΠΌΠ΅ΡΡΠΎ ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ . ΠΠ±Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΡΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ: ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π΅ΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ β ΡΡΠΎ , ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΡΠ»Π΅Π΄ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π½ΠΎΠ²ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Β«Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉΒ» ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΡΡΠ³ΠΈΠΌ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈΠΌΠ΅Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡΡΡ ΠΈΠΌ Π²ΡΠ΅ Π²ΠΈΠ΄Ρ ΡΠ°Π±ΠΎΡΡ. ΠΠ³ΡΠ΅Π³Π°ΡΠΈΡ/ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Decorator. ΠΠ° ΡΡΠΎΠΉ Π½ΠΎΡΠ΅ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
Β«ΠΠ±Π΅ΡΡΠΊΠ°Β» β Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° Β«ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΒ», ΡΡΠΊΠΎ Π²ΡΡΠ°ΠΆΠ°ΡΡΠ΅Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°. ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ΅Π»Π΅Π²ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ . ΠΠ±Π΅ΡΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΡ ΠΆΠ΅ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΡΠΎ ΠΈ ΡΠ΅Π»Ρ, ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π΅ΠΉ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π»ΠΈΠ±ΠΎ Π΄ΠΎ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ΅Π»ΠΈ.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠ°Ρ ΠΎΠ±Π΅ΡΡΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ? ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π», ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΡΠΎ ΠΈ ΠΎΠ±Π΅ΡΠ½ΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ. ΠΠ°ΡΡΠ°Π²ΡΡΠ΅ ΠΏΠΎΠ»Π΅ ΡΡΡΠ»ΠΊΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π° ΡΡΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°ΠΌΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΠΌΠΈ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅ Π²Π½ΡΡΡΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Notifier
, Π½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠΌ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ.
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ.
ΠΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π±Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Π½Π°Π±ΠΎΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±ΡΠ΄ΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΡΡΠ΅ΠΊ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅ΠΊΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ Π² ΡΡΠ΅ΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΡΠΎ ΠΈ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΠ΅Π»Ρ, ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌΡ ΠΊΠΎΠ΄Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ ΠΎΠ½ Ρ Β«ΡΠΈΡΡΡΠΌΒ» ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΠ΅Π»Ρ ΠΈΠ»ΠΈ Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ.
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π»ΡΠ±ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ»Π΅Π΄ΡΡΡ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΡΠ΅ΠΊΡ ΠΎΡ Π½ΠΎΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠ² ΠΎΠ΄Π΅ΠΆΠ΄Ρ.
ΠΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π΅ΠΆΠ΄Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ². ΠΠΎΠ³Π΄Π° ΡΠ΅Π±Π΅ Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎ, ΡΡ Π·Π°ΠΊΡΡΡΠ²Π°Π΅ΡΡΡΡ Π² ΡΠ²ΠΈΡΠ΅Ρ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π²ΡΠ΅ ΠΆΠ΅ Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎ ΡΠΎ ΡΠ²ΠΈΡΠ΅ΡΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π΄Π΅ΡΡ ΡΠ²Π΅ΡΡ Ρ ΠΊΡΡΡΠΊΡ. ΠΡΠ»ΠΈ ΠΈΠ΄Π΅Ρ Π΄ΠΎΠΆΠ΄Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π΄Π΅ΡΡ ΠΏΠ»Π°Ρ. ΠΡΠ΅ ΡΡΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ ΠΎΠ΄Π΅ΠΆΠ΄Ρ Β«ΠΏΡΠΎΠ΄Π»Π΅Π²Π°ΡΡΒ» Π²Π°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ Π²Π°Ρ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ½ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΎΠ΄Π΅ΠΆΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½.
Π‘ΡΡΡΠΊΡΡΡΠ°ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ΅ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ β ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΠΎΠ±Π΅ΡΡΡΠ²Π°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ.
ΠΠ»Π°ΡΡ Base Decorator ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±Π΅ΡΠ½ΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π’ΠΈΠΏ ΠΏΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ°ΠΊ ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ. ΠΠ°Π·ΠΎΠ²ΡΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
Concrete Decorators ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ Π΄ΠΎ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ΅Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 9Π¨Π°Π±Π»ΠΎΠ½ 0011 Decorator ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΆΠΈΠΌΠ°ΡΡ ΠΈ ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅.
ΠΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΆΠ°ΡΠΈΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΡΠΎΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ². ΠΠ±Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ Π΄ΠΈΡΠΊΠ°:
ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΠΈΡΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π΄ΠΈΡΠΊ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΡΠΈΡΡΡΡΡ ΠΈ ΡΠΆΠΈΠΌΠ°ΡΡ ΠΈΡ . ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ», Π½Π΅ Π·Π½Π°Ρ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ.
Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΈΡΠ°Π½Ρ Ρ Π΄ΠΈΡΠΊΠ° , ΠΎΠ½ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ ΠΆΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡ.
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΈ ΠΊΠ»Π°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅.
// ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ
// ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ DataSource
ΠΌΠ΅ΡΠΎΠ΄ writeData(Π΄Π°Π½Π½ΡΠ΅)
ΠΌΠ΅ΡΠΎΠ΄ readData():Π΄Π°Π½Π½ΡΠ΅
// ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ
// ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠΈΡ
// ΠΊΠ»Π°ΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΊΠ»Π°ΡΡ FileDataSource ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ DataSource
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ FileDataSource(ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°) { ... }
ΠΌΠ΅ΡΠΎΠ΄ writeData(Π΄Π°Π½Π½ΡΠ΅)
// ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ».
ΠΌΠ΅ΡΠΎΠ΄ readData():Π΄Π°Π½Π½ΡΠ΅
// Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΡΠ°ΠΉΠ»Π°.
// ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΡΠΎ ΠΈ ΠΊΠ»Π°ΡΡ
// Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ
// ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ².
// Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ
// ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ.
ΠΊΠ»Π°ΡΡ DataSourceDecorator ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ DataSource
ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ: DataSource
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ DataSourceDecorator (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ: DataSource)
ΠΎΠ±Π΅ΡΡΠΊΠ° = ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
// ΠΠ°Π·ΠΎΠ²ΡΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΏΡΠΎΡΡΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ
// ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π²
// Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π±Π΅ΡΠΎΠ½Π°.
ΠΌΠ΅ΡΠΎΠ΄ writeData(Π΄Π°Π½Π½ΡΠ΅)
wrappee.writeData(Π΄Π°Π½Π½ΡΠ΅)
// ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
// ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
// Π½Π°ΠΏΡΡΠΌΡΡ.
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°
// ΠΊΠ»Π°ΡΡΡ.
ΠΌΠ΅ΡΠΎΠ΄ readData():Π΄Π°Π½Π½ΡΠ΅
Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ±Π΅ΡΡΠΊΡ.readData()
// ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°,
// Π½ΠΎ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ²ΠΎΠ΅. ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
// ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ Π΄ΠΎ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅
// ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΊΠ»Π°ΡΡ EncryptionDecorator ΡΠ°ΡΡΠΈΡΡΠ΅Ρ DataSourceDecorator.
ΠΌΠ΅ΡΠΎΠ΄ writeData(Π΄Π°Π½Π½ΡΠ΅)
// 1. ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
// 2. ΠΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² writeData ΠΎΠ±Π΅ΡΡΠΊΠΈ
// ΠΌΠ΅ΡΠΎΠ΄.
ΠΌΠ΅ΡΠΎΠ΄ readData():Π΄Π°Π½Π½ΡΠ΅
// 1. ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° readData ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
// 2. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½.
// 3. ΠΠ΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
// ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ»ΠΎΡΠΌΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ².
ΠΊΠ»Π°ΡΡ CompressionDecorator ΡΠ°ΡΡΠΈΡΡΠ΅Ρ DataSourceDecorator
ΠΌΠ΅ΡΠΎΠ΄ writeData(Π΄Π°Π½Π½ΡΠ΅)
// 1. Π‘ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
// 2. ΠΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠΆΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² writeData ΠΎΠ±Π΅ΡΡΠΊΠΈ
// ΠΌΠ΅ΡΠΎΠ΄.
ΠΌΠ΅ΡΠΎΠ΄ readData():Π΄Π°Π½Π½ΡΠ΅
// 1. ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° readData ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
// 2. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ°Ρ.
// 3. ΠΠ΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
// ΠΠ°ΡΠΈΠ°Π½Ρ 1. ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°.
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°
ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠΏΠΎΠΉUsageExample() ΡΠ²Π»ΡΠ΅ΡΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ = Π½ΠΎΠ²ΡΠΉ FileDataSource("somefile.dat")
source.writeData(salaryRecords)
// Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» Π·Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ = Π½ΠΎΠ²ΡΠΉ CompressionDecorator(ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
source.writeData(salaryRecords)
// Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» Π·Π°ΠΏΠΈΡΠ°Π½ ΡΠΎ ΡΠΆΠ°ΡΡΠΌ
// Π΄Π°Π½Π½ΡΠ΅.
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ = Π½ΠΎΠ²ΡΠΉ EncryptionDecorator (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
// ΠΡΡ
ΠΎΠ΄Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΎ:
// Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ > Π‘ΠΆΠ°ΡΠΈΠ΅ > FileDataSource
source.writeData(salaryRecords)
// Π€Π°ΠΉΠ» Π±ΡΠ» Π·Π°ΠΏΠΈΡΠ°Π½ ΡΠΎ ΡΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΈ
// Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
// ΠΠ°ΡΠΈΠ°Π½Ρ 2. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ
.
// ΠΠ±ΡΠ΅ΠΊΡΡ SalaryManager Π½Π΅ Π·Π½Π°ΡΡ ΠΈ Π½Π΅ Π·Π°Π±ΠΎΡΡΡΡΡ ΠΎ Π΄Π°Π½Π½ΡΡ
// ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ° Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ.
ΠΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ
// ΠΈΡΡΠΎΡΠ½ΠΈΠΊ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΊΠ»Π°ΡΡ SalaryManager
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΠΎΠ»Ρ: DataSource
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ SalaryManager(ΠΈΡΡΠΎΡΠ½ΠΈΠΊ: DataSource) { ... }
ΠΌΠ΅ΡΠΎΠ΄ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ()
Π²Π΅ΡΠ½ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ.readData()
ΠΌΠ΅ΡΠΎΠ΄ save() Π΅ΡΡΡ
source.writeData(salaryRecords)
// ...ΠΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ...
// ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ΅ΠΊΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² Π½Π°
// Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Ρ.
ΠΊΠ»Π°ΡΡ ApplicationConfigurator ΡΡΠΎ
ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ()
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ = Π½ΠΎΠ²ΡΠΉ FileDataSource ("salary.dat")
Π΅ΡΠ»ΠΈ (enabledEncryption)
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ = Π½ΠΎΠ²ΡΠΉ EncryptionDecorator (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
Π΅ΡΠ»ΠΈ (Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠΆΠ°ΡΠΈΠ΅)
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ = Π½ΠΎΠ²ΡΠΉ CompressionDecorator(ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡ = Π½ΠΎΠ²ΡΠΉ SalaryManager (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ)
Π·Π°ΡΠΏΠ»Π°ΡΠ° = logger.load()
// ...
ΠΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡΡ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Decorator, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π·Π½Π°ΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π΅ Π½Π°ΡΡΡΠ°Ρ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎ ΡΠ»ΠΎΡΠΌ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠΌΠΈ ΡΡΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ final
, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΊΠ»Π°ΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Decorator.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π΄ΠΎΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ»ΠΎΡΠΌΠΈ Π½Π°Π΄ Π½ΠΈΠΌ.
ΠΡΡΡΠ½ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»ΠΎΠ΅Π². Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΠ°ΠΌ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π² Π½Π΅ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°. Π Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±Π΅ΡΠ½ΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ Ρ ΡΠΈΠΏΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ²ΡΠ·Ρ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΠ°Π·ΠΎΠ²ΡΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, ΡΠ°ΡΡΠΈΡΡΡ ΠΈΡ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° (ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅Π³Π΄Π° Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ).
ΠΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ.
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°.
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
- ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π·Π°ΠΊΠ»ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ².
- ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
- Π’ΡΡΠ΄Π½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΎΠ±Π΅ΡΡΠΎΠΊ.
- Π’ΡΡΠ΄Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Π»ΠΎ ΠΎΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π² ΡΡΠ΅ΠΊΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ².
- ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ»ΠΎΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠΎΠ΄Π»ΠΈΠ²ΠΎ.
ΠΠ΄Π°ΠΏΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Decorator ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° .
- ΠΠ΄Π°ΠΏΡΠ΅Ρ
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Proxy ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΠΌΡ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π° Decorator ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Chain of Responsibility ΠΈ Decorator ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ±Π° ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΡΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ CoR ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π°Π»ΡΡΠ΅ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΅Π³ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΡΡΠ°ΡΡ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠ°.
Composite ΠΈ Decorator ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠΆΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π° ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Composite , Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅: Decorator Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π° Composite ΠΏΡΠΎΡΡΠΎ Β«ΡΡΠΌΠΌΠΈΡΡΠ΅ΡΒ» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ²ΠΎΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Decorator Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Composite Π΄Π΅ΡΠ΅Π²Π΅.
ΠΡΠΎΠ΅ΠΊΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Composite ΠΈ Decorator, ΡΠ°ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π²ΡΠΈΠ³ΡΠ°ΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Prototype. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΡ Ρ Π½ΡΠ»Ρ.
Decorator ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Strategy ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΠ°ΡΡΡ.
Decorator ΠΈ Proxy ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠΆΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π»ΠΈ. ΠΠ±Π° ΠΏΠ°ΡΡΠ΅ΡΠ½Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ, Π³Π΄Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ.
Π Π°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Proxy ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Decorators Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ.
Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Decorator Π² Java Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ Java
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, ΡΠ΅Π±ΡΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Decorator Π² Java, ΡΠΎ Π²Ρ ΠΏΠΎΠΏΠ°Π»ΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ. Π― Π΄ΡΠΌΠ°Π» Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² Π½Π° Java , ΠΊΠΎΠ³Π΄Π° Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π» 10 Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ Singleton Π½Π° Java. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Ρ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ Core Java, Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½Π°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Java. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈ ΠΈΠ·ΡΡΠΈΠΌΒ Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Decorator Π² Java , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π² ΡΠ°ΠΌΠΎΠΌ JDK.
JDK ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π» ΠΊΠ»Π°ΡΡΡ Reader ΠΈ Writer Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, BufferedReader ΠΈ BufferedWriter ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java.
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ JDK, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ HashMap ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Java ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ SubString Π² Java, ΡΡΠΎ Π΄Π°ΡΡ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ Π²Π΅ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° Java. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π¨Π°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java .
ΠΡΡΠ°ΡΠΈ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ Ρ. Π΄. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ, Π½ΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π΄ΠΎΠ±Π΅ΡΠ΅ΡΠ΅ΡΡ ΡΡΠ΄Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΡ
, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ²ΡΠΈΡΡ ΠΊ ΡΡΠΈΠΌ ΠΊΡΡΡΠ°ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ Java ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ:
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java?
- ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java?
- ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java?
- ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°
- ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java
Β·Β Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ «ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ.
Β·Β Β Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΡΠΎΠ½ΡΡ ΡΡΠΈΠΌ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠ»ΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
Β·Β Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΌΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°.
Β· Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Decorator ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ , ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ· ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²,
Β·Β ΠΡΠΎ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² ΡΠΎΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, ΠΏΡΠΎΡΡΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ ΡΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π²Π°Π»ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ ΠΏΠΎ Core Java Π² ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΠΎΠ½Π½ΡΡ
Π±Π°Π½ΠΊΠ°Ρ
9.0004
Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡ Π² ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ, ΡΡΠΎ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ? ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠ²Π΅Ρ ΡΠ°ΠΊΠΎΠ²: Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Ρ ΠΎΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ Π¨Π°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ° Π² Java.
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΡΠΌΠΈ, ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΠ»ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π° Π½Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°.
ΠΠΎΠ΄ ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°:Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π² Java . ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³Π»ΡΠ½ΡΡΡ Π²Π½ΡΡΡΡ JDK ΠΈ Π½Π°ΠΉΡΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°.
// ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Decorator
public abstract class Currency {
String description = «ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ Π²Π°Π»ΡΡΠ°»;
Β public String getCurrencyDescription () {
Β return ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅;
Β }
ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°Π±Ρ ΡΡΠ°ΠΊΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΡ (Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ) ;
}
// ΠΠ΅ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
public class Rupee extends Currency {
double value ;
public Rupee () {
Β Β description = «ΠΈΠ½Π΄ΠΈΠΉΡΠΊΠΈΠ΅ ΡΡΠΏΠΈΠΈ»;
Β }
Β ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π΄Π²ΠΎΠΉΠ½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ (Π΄Π²ΠΎΠΉΠ½Π°Ρ v){
Β value=v;
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ;
Β }
}
//ΠΡΡΠ³ΠΎΠΉ Π±Π΅ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
public class Dollar extends {
Β double value ;
public Dollar () {
Β description = «ΠΠΎΠ»Π»Π°Ρ»;
Β }
ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΡ (Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ v){
Β value=v;
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ;
}
// ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ
public abstract class Decorator extends Currency {
public abstract String getDescription () ;
}
// ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ Π±Π΅ΡΠΎΠ½Π°
ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ USDDecorator ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Decorator {
ΠΠ°Π»ΡΡΠ½Π°Ρ Π²Π°Π»ΡΡΠ°;
Β
public USDDecorator ( Currency currency ){
Β this . currency = Π²Π°Π»ΡΡΠ°;
Β }
public String getDescription (){
Β return currency.getDescription () +» ,ΡΡΠΎ Π΄ΠΎΠ»Π»Π°Ρ Π‘Π¨Π»;
Β }
//ΠΡΡΠ³ΠΎΠΉ Concrete Decorator
public class SGDDecorator extends Decorator {
Β Currency currency;
public SGDDecorator ( Currency currency ){
Β this .currency = Π²Π°Π»ΡΡΠ°;
Β }
public String getDescription (){
Β return currency.getDescription () +» ,Π΅Π³ΠΎ ΡΠΈΠ½Π³Π°ΠΏΡΡΡΠΊΠΈΠΉ Π΄ΠΎΠ»Π»Π°Ρ»;
Β }
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²Π°Π»ΡΡΡ.
ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ CurrencyCheck {
public static void main ( String [] args ) {
// Π±Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ²
ΠΠ°Π»ΡΡΠ° curr = Π½ΠΎΠ²ΡΠΉ ΠΠΎΠ»Π»Π°Ρ () ;
System. out.println ( curr.getDescription ()+»Π΄ΠΎΠ»Π».»+Π²Π°Π».ΡΠ΅Π±Π΅ΡΡΠΎΠΈΠΌΠΎΡΡΡ (2.0)) ;
//Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ²
ΠΠ°Π»ΡΡΠ° curr2 = Π½ΠΎΠ²ΡΠΉ USDDecorator (Π½ΠΎΠ²ΡΠΉ Π΄ΠΎΠ»Π»Π°Ρ () ) ;
Β System.out.println ( curr2.getDescription () +» Π΄ΠΎΠ»Π»Π°Ρ. «+curr2.cost (4.0)) ;
ΠΠ°Π»ΡΡΠ° curr3 = Π½ΠΎΠ²ΡΠΉ SGDDecorator (Π½ΠΎΠ²ΡΠΉ Π΄ΠΎΠ»Π»Π°Ρ () ) ;
Β System.out.println ( curr3.getDescription ()+»Π΄ΠΎΠ»Π».»+curr3.cost (4.0)) ;
}
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° :ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ :
1. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° : Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²Π°Π»ΡΡΡ β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅, ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ.
2. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ: ΠΎΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈ ΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ.