Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования?

Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ задавались вопросом, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования? Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования ΠΈΠΌΠ΅ΡŽΡ‚ сущСствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π½Π° PHP, ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΡ…, ΠΊΠΎΠ³Π΄Π° ΠΈ Π³Π΄Π΅ ΠΈΡ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования β€” это Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ использованиС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ программирования, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ сталкиваСмся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь. Π¨Π°Π±Π»ΠΎΠ½ проСктирования β€” это Π½Π΅ класс ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π°ΡˆΡƒ систСму. Он β€” ΠΌΠ½ΠΎΠ³ΠΎ большС. Π­Ρ‚ΠΎ β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ ситуации. Он Π½Π΅ зависит ΠΎΡ‚ языка. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ шаблон проСктирования Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ языков (Ссли Π½Π΅ со всСми) Π² зависимости ΠΎΡ‚ характСристик языка. Π§Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ любой шаблон проСктирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ остороТно β€” Ссли ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ Π² Π½Π΅Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΌ мСстС, Ρ‚ΠΎ Π΅Π³ΠΎ дСйствиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ для вас. Однако ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΉ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ врСмя ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ вашим спаситСлСм.

Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ основных Ρ‚ΠΈΠΏΠ° шаблонов проСктирования:

β€’ структурный
β€’ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ
β€’ повСдСнчСский

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС, ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ с ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, облСгчая ΠΈΡ… ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠŸΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ инстанцирования, облСгчая созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ соотвСтствуСт ситуации.

ΠŸΠΎΠ²Π΅Π΄Π΅Π½Ρ‡Π΅ΡΠΊΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, дСлая Π΅Ρ‘ Π±ΠΎΠ»Π΅Π΅ Π»Ρ‘Π³ΠΊΠΎΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΎΠΉ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ программирования. МногиС программисты ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ Ρ€Π°Π½Π΅Π΅ с этими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΈ использовали для прСодолСния эти Β«Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΒ». ВстрСчая ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π·Π°Ρ‡Π΅ΠΌ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΠΏΠΎΡ€ΡƒΡ‡Π΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ способ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… дСйствия Π² зависимости ΠΎΡ‚ ситуации. Π­Ρ‚ΠΈ Π΄Π²Π° класса интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ систСмой Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах, Ρ‡Ρ‚ΠΎ затрудняСт ΠΈΡ… ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ этому ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ всСго ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ‚.ΠΊ. ΠΏΡ€Π°Π²ΠΊΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π² систСмС, построСнной Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда вносит Π½ΠΎΠ²Ρ‹Π΅ ошибки. ВмСсто пСрСчислСнного ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ шаблона «БтратСгия» ΠΈ шаблона «АдаптСр», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ сцСнариСв.

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ просто, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π½Π° шаблон «БтратСгия».

Π¨Π°Π±Π»ΠΎΠ½ «БтратСгия»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования
Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сайта cioinnervoice.wordpress.com

Π¨Π°Π±Π»ΠΎΠ½ «БтратСгия» являСтся повСдСнчСским шаблоном проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ»Π°Π½ дСйствий Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ контСкстС ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. Π’Ρ‹ Π·Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π²ΡƒΡ… классов ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ Π² Ρ…ΠΎΠ΄Π΅ выполнСния, с ΠΊΠ°ΠΊΠΎΠΉ стратСгиСй слСдуСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ стратСгия устанавливаСтся Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹Π»Π° пСрСмСнная $context Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° класс подвСргался ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Если Π²Ρ‹ Π΄Π°Ρ‘Ρ‚Π΅ Π΅ΠΉ контСкст для класса_ΠΎΠ΄ΠΈΠ½, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ использован класс_ΠΎΠ΄ΠΈΠ½ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π³Π΄Π΅ я ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ запись. Π₯отя Π΅ΠΌΡƒ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ самыС Π²Ρ…ΠΎΠ΄Ρ‹ (имя, адрСс, Π½ΠΎΠΌΠ΅Ρ€ мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ Ρ‚.ΠΏ.), Π½ΠΎ Π² зависимости ΠΎΡ‚ ситуации ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΈ создании. Π—Π΄Π΅ΡΡŒ для выполнСния ΠΌΠΎΠΆΠ½ΠΎ, вСроятно, сразу ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ условный ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Β«if-elseΒ», Π½ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ, Ссли этот класс понадобится ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС? Π’ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ вСсь этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°. НС Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΡ‰Π΅ просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ваш контСкст?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Β«ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉΒ» шаблон «БтратСгия» ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс Π±Ρ‹Π» Π±Ρ‹ Π½Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ обязаны Ρ‚ΠΎΡ‡Π½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, ΠΏΠΎΠΊΠ° концСпция остаётся ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ, ΠΈ это Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π¨Π°Π±Π»ΠΎΠ½ «АдаптСр»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования
Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сайта www.uxcell.com

Π¨Π°Π±Π»ΠΎΠ½ «АдаптСр» являСтся структурным шаблоном проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ класс с Π΄Ρ€ΡƒΠ³ΠΈΠΌ интСрфСйсом, дСлая Π΅Π³ΠΎ доступным для систСмы, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π°.

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π²Ρ…ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΎΡ‚ класса ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, прСвращая Π΅Π³ΠΎ Π² Π½Π΅Ρ‡Ρ‚ΠΎ совмСстимоС с функциями класса Adaptee.

Как ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π”Ρ€ΡƒΠ³ΠΈΠΌ понятиСм для ссылки Π½Π° класс Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° являСтся Β«ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠ°Β», которая ΠΏΠΎ сущСству позволяСт Β«ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒΒ» дСйствия Π² класс ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти дСйствия Π² Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ситуациях. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ созданиС Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ класса для классов Ρ‚Π°Π±Π»ΠΈΡ†. ВмСсто Π²Ρ‹Π·ΠΎΠ²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классов Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ всС эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² ΠΎΠ΄ΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ класс Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ позволяСт Π²Π°ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ дСйствия, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ избавляСт ΠΎΡ‚ нСобходимости ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ дСйствиС Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ эти Π΄Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Π±Π΅Π· Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°

Если Π±Ρ‹ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это снова Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ всё Π·Π°Π½ΠΎΠ²ΠΎ.

Π›ΡƒΡ‡ΡˆΠ΅

Π£ΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎ дСйствиям Π²Ρ€ΠΎΠ΄Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅:

Π’ Π΄Π°Π½Π½ΠΎΠΉ ситуации ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π±Ρ‹ нашим Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΌ классом Account:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½ Account снова Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ трСбуСтся, β€” Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ Π² состоянии ΠΎΠ±Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ вашим Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΌ классом.

Π¨Π°Π±Π»ΠΎΠ½ Β«Π€Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Β»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования
Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сайта www.lankanewspappers.com

Π¨Π°Π±Π»ΠΎΠ½ Β«Π€Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Β» являСтся ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌ шаблоном проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ это слово: этот класс дСйствуСт ΠΊΠ°ΠΊ Ρ„Π°Π±Ρ€ΠΈΠΊΠ° экзСмпляров ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Основной Ρ†Π΅Π»ΡŒΡŽ этого шаблона являСтся Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, которая ΠΌΠΎΠΆΠ΅Ρ‚ свСсти Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ классы Π² ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Если Ρ„Π°Π±Ρ€ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ контСкст, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π² состоянии Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Когда ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΉ ситуациСй для использования шаблона Β«Π€Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Β» являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Допустим, имССтся класс Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β»; Ρƒ этого класса Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ImageButton (ΠΊΠ½ΠΎΠΏΠΊΠ° изобраТСния), InputButton (ΠΊΠ½ΠΎΠΏΠΊΠ° Π²Π²ΠΎΠ΄Π°) ΠΈ FlashButton (Ρ„Π»ΡΡˆ-ΠΊΠ½ΠΎΠΏΠΊΠ°). Π’ зависимости ΠΎΡ‚ мСста ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ β€” ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Ρ„Π°Π±Ρ€ΠΈΠΊΡƒΒ» для создания ΠΊΠ½ΠΎΠΏΠΎΠΊ для вас!

Начнём с создания Π½Π°ΡˆΠΈΡ… Ρ‚Ρ€Ρ‘Ρ… классов:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ наш Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ класс:

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

Π’Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ HTML всСх Π²Π°ΡˆΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² зависимости ΠΎΡ‚ ситуации, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ условиС.

Π¨Π°Π±Π»ΠΎΠ½ Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сайта www.decoratorsdarlington.co.uk

Π¨Π°Π±Π»ΠΎΠ½ Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β» являСтся структурным шаблоном проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π½Π°ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π² Ρ…ΠΎΠ΄Π΅ выполнСния Π² зависимости ΠΎΡ‚ ситуации.

ЦСлью являСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ экзСмпляру ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ экзСмпляр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ этих Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для ΠΎΠ΄Π½ΠΎΠ³ΠΎ экзСмпляра, благодаря Ρ‡Π΅ΠΌΡƒ отсутствуСт привязка ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра. Π­Ρ‚ΠΎΡ‚ шаблон являСтся Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ созданию подкласса, Ρ‡Ρ‚ΠΎ относится ΠΊ созданию класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ созданию подкласса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ добавляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΎ врСмя компиляции, Β«Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β» позволяСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ…ΠΎΠ΄Π΅ выполнСния, Ссли ситуация Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ этого.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β», ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

1. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ класс Β«ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β» ΠΊΠ°ΠΊ подкласс класса Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β».
2. Π’ классС Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β» Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Β«ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β» ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅.
3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Β«ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β» Π² конструктор Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Β«ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β».
4. Π’ классС Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β» ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Β«ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β» Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Β«ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β».
5. Π’ классС Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β» ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ любой ΠΌΠ΅Ρ‚ΠΎΠ΄ (Π»ΡŽΠ±Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹) Β«ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β», ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.

Π”Π°Π½Π½Ρ‹Π΅ этапы Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сайта en.wikipedia.org/wiki/Decorator_pattern

Когда ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

НаиболСС ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β» для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ повСдСния, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π½Π° это имССтся запрос ΠΏΠΎ ситуации. Допустим, имССтся HTML-элСмСнт ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ссылка Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· систСмы, ΠΈ Π²Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π΄Π΅Π»Π°Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ дСйствия, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ страницС. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β».

Π‘Π½Π°Ρ‡Π°Π»Π° Π·Π°Π΄Π°Π΄ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Β«Π΄Π΅ΠΊΠΎΡ€Π°Ρ†ΠΈΠΈΒ»:

β€’ Если ΠΌΡ‹ находимся Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС ΠΈ зарСгистрированы, Ρ‚ΠΎ эта ссылка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Β«ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Π°Β» Π² Ρ‚Π΅Π³ΠΈ h2.
β€’ Если ΠΌΡ‹ находимся Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ страницС ΠΈ зарСгистрированы, Ρ‚ΠΎ эта ссылка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Β«ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Π°Β» Π² Ρ‚Π΅Π³ΠΈ подчёркивания.
β€’ Если ΠΌΡ‹ зарСгистрированы, Ρ‚ΠΎ эта ссылка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Β«ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Π°Β» Π² Ρ‚Π΅Π³ΠΈ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½ΠΎΠ³ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚Π°.
ПослС задания Π½Π°ΡˆΠΈΡ… Β«Π΄Π΅ΠΊΠΎΡ€Π°Ρ†ΠΈΠΉΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² состоянии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ оказываСмся Π² состоянии ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ссли это трСбуСтся. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ°Π³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ __call, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ всё Π΅Ρ‰Ρ‘ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Если ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ находимся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ страницы ΠΈ зарСгистрированы, Ρ‚ΠΎ HTML-Π²Ρ‹Ρ…ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

Π¨Π°Π±Π»ΠΎΠ½ Β«ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ°Β»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² сайта intoxicologist.wordpress.com

Π¨Π°Π±Π»ΠΎΠ½ проСктирования Β«ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ°Β» являСтся ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌ шаблоном проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ СдинствСнного экзСмпляра ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ класса Π²ΠΎ врСмя выполнСния ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа ΠΊ этому СдинствСнному экзСмпляру.

Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Β«ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈΒ» для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹ΠΉ СдинствСнный экзСмпляр, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ для Π»ΡŽΠ±Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

Когда ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π‘Π΄Π΅Π»Π°Π² Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ экзСмпляру сСанса ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй нашСго ΠΊΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… классах. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСх Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² getInstance.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ шаблонов проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ; Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я остановился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Если Π΅ΡΡ‚ΡŒ интСрСс ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… проСктирования, Ρ‚ΠΎ страница Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ Design Patterns (Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования) содСрТит ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± этом. Если этого нСдостаточно, Ρ‚ΠΎ Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Β«Design Patterns: Elements of Reusable Object-Oriented SoftwareΒ» (Β«Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования: элСмСнты ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния»), которая считаСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠΎ рассматриваСмой Ρ‚Π΅ΠΌΠ΅.

И послСднСС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования, всСгда провСряйтС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Как я ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Ρ€Π°Π½Π΅Π΅, эти ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ остороТно: ΠΎΠ½ΠΈ β€” ΠΏΡ€ΠΈ использовании Π² Π½Π΅Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΌ контСкстС β€” ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании ΠΎΠ½ΠΈ просто ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹.

Если Π²Ρ‹ нашли Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ PHP-скриптов Π½Π° Envato Market. Π’Π°ΠΌ прСдставлСны тысячи ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ систСмы бронирования, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ AJAX, систСмы ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½Π΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования простым языком. Π§Π°ΡΡ‚ΡŒ пСрвая. ΠŸΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования простым языком. Π§Π°ΡΡ‚ΡŒ пСрвая. ΠŸΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования β€” это руководства ΠΏΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Ρ‚ΠΎ Π½Π΅ классы, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΡΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Ρ‡ΡƒΠ΄Π°. Они скорСС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуациях.

ВикипСдия описываСт ΠΈΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π¨Π°Π±Π»ΠΎΠ½ проСктирования, ΠΈΠ»ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния β€” повторяСмая архитСктурная конструкция, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ проСктирования, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ контСкста.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны

Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½ΠΈΠΆΠ΅ написаны Π½Π° PHP 7. Но это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ вас ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, вСдь ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅.

Π’ΠΈΠΏΡ‹ шаблонов

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄ΠΎΠ²:

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ простыми словами, Ρ‚ΠΎ это ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для создания экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ связанных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ β€” ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ процСсс инстанцирования. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ систСму нСзависимой ΠΎΡ‚ способа создания, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ прСдставлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π¨Π°Π±Π»ΠΎΠ½, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ классы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ наслСдованиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ наслСдуСмый класс, Π° шаблон, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ инстанцированиС Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹:

ΠŸΡ€ΠΎΡΡ‚Π°Ρ Ρ„Π°Π±Ρ€ΠΈΠΊΠ° (Simple Factory)

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (ООП), Ρ„Π°Π±Ρ€ΠΈΠΊΠ° β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для создания Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ„Π°Π±Ρ€ΠΈΠΊΠ° β€” это функция ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ класса ΠΈΠ· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСтся Β«Π½ΠΎΠ²Ρ‹ΠΌΒ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠΌ, ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄Π²Π΅Ρ€ΠΈ. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π³Π»ΡƒΠΏΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄Π²Π΅Ρ€ΠΈ, Π½Π°Π΄Π΅Π²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ ΡΡ‚ΠΎΠ»ΡΡ€Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π΅Ρ€ΡŒ. ВмСсто этого Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π΅Ρ‘ Π½Π° Ρ„Π°Π±Ρ€ΠΈΠΊΠ΅.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: ΠŸΡ€ΠΎΡΡ‚Π°Ρ Ρ„Π°Π±Ρ€ΠΈΠΊΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ экзСмпляр для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π½Π΅ раскрывая Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΊΠΎΠ΄Ρƒ. Π£ нас Π΅ΡΡ‚ΡŒ интСрфСйс Door ΠΈ Π΅Π³ΠΎ рСализация:

И Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всё это:

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: Когда созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” это Π½Π΅ просто нСсколько присвоСний, Π° какая-Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ°, Ρ‚ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„Π°Π±Ρ€ΠΈΠΊΡƒ вмСсто повторСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ.

Π€Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ (Fabric Method)

Π€Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ шаблон проСктирования, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ подклассам интСрфСйс для создания экзСмпляров Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания наслСдники ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ класс ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ. Π˜Π½Ρ‹ΠΌΠΈ словами, Π΄Π°Π½Π½Ρ‹ΠΉ шаблон Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² наслСдникам Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ спСцифичСскиС классы, Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ абстрактными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ высоком ΡƒΡ€ΠΎΠ²Π½Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΏΠΎ Π½Π°ΠΉΠΌΡƒ. НСвозмоТно ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ провСсти собСсСдования со всСми ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌΠΈ Π½Π° всС вакансии. Π’ зависимости ΠΎΡ‚ вакансии ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ этапы собСсСдования ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ людьми.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ прСдоставляСт способ дСлСгирования Π»ΠΎΠ³ΠΈΠΊΠΈ создания экзСмпляра Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классам.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ ΠΊΠΎΠ΄Ρƒ. Рассмотрим ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎ HR-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ интСрфСйс Interviewer ΠΈ нСсколько Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ для Π½Π΅Π³ΠΎ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим нашСго HiringManager :

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ любой Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽΠ΅Ρ€Π°:

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: ПолСзСн, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ нСкоторая общая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² классС, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ подкласс динамичСски опрСдСляСтся Π²ΠΎ врСмя выполнСния. Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ подкласс Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ.

Абстрактная Ρ„Π°Π±Ρ€ΠΈΠΊΠ° (Abstract Factory)

Абстрактная Ρ„Π°Π±Ρ€ΠΈΠΊΠ° β€” ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ шаблон проСктирования, прСдоставляСт интСрфСйс для создания сСмСйств взаимосвязанных ΠΈΠ»ΠΈ взаимозависимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π΅ спСцифицируя ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… классов. Π¨Π°Π±Π»ΠΎΠ½ рСализуСтся созданиСм абстрактного класса Factory, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой интСрфСйс для создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ интСрфСйса ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ). Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΈΡˆΡƒΡ‚ΡΡ классы, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ этот интСрфСйс.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: Π Π°ΡΡˆΠΈΡ€ΠΈΠΌ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎ Π΄Π²Π΅Ρ€ΠΈ ΠΈΠ· простой Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ. Π’ зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… Π½ΡƒΠΆΠ΄ Π²Π°ΠΌ понадобится дСрСвянная Π΄Π²Π΅Ρ€ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, ТСлСзная Π΄Π²Π΅Ρ€ΡŒ β€” ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ пластиковая β€” ΠΈΠ· Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΌ понадобится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ спСциалист: столяр для дСрСвянной Π΄Π²Π΅Ρ€ΠΈ, сварщик для ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠΉ Π΄Π²Π΅Ρ€ΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‚ΡƒΡ‚ Π΅ΡΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π΅Ρ€ΡŒΠΌΠΈ.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: Π€Π°Π±Ρ€ΠΈΠΊΠ° Ρ„Π°Π±Ρ€ΠΈΠΊ. Π€Π°Π±Ρ€ΠΈΠΊΠ°, которая Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅, Π½ΠΎ связанныС/зависимыС Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ Π±Π΅Π· указания ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… классов.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌΡΡ ΠΊ ΠΊΠΎΠ΄Ρƒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎ Π΄Π²Π΅Ρ€ΠΈ. Π‘Π½Π°Ρ‡Π°Π»Π° Ρƒ нас Π΅ΡΡ‚ΡŒ интСрфСйс Door ΠΈ нСсколько Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ:

Π—Π°Ρ‚Π΅ΠΌ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько DoorFittingExpert для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π²Π΅Ρ€Π΅ΠΉ:

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ„Π°Π±Ρ€ΠΈΠΊΠ° дСрСвянных Π΄Π²Π΅Ρ€Π΅ΠΉ инкапсулируСт столяра ΠΈ Π΄Π΅Ρ€Π΅Π²ΡΠ½Π½ΡƒΡŽ Π΄Π²Π΅Ρ€ΡŒ, Π° Ρ„Π°Π±Ρ€ΠΈΠΊΠ° ΠΆΠ΅Π»Π΅Π·Π½Ρ‹Ρ… Π΄Π²Π΅Ρ€Π΅ΠΉ инкапсулируСт ΠΆΠ΅Π»Π΅Π·Π½ΡƒΡŽ Π΄Π²Π΅Ρ€ΡŒ ΠΈ сварщика. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π°ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π²Π΅Ρ€ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ экспСрта.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: Когда Π΅ΡΡ‚ΡŒ взаимосвязанныС зависимости с Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ простой Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ создания.

Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ (Builder)

Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ β€” ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ шаблон проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт способ создания составного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° «ВСлСскопичСский конструктор».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ Π² McDonalds ΠΈ Π·Π°ΠΊΠ°Π·Π°Π»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘ΠΈΠ³ΠœΠ°ΠΊ, ΠΈ Π²Π°ΠΌ готовят Π΅Π³ΠΎ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… вопросов. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простой Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ. Но Π΅ΡΡ‚ΡŒ случаи, ΠΊΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΠΊΠ° создания ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя большС шагов. НапримСр, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сэндвич Π² Subway: Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ сдСлан. Какой Ρ…Π»Π΅Π± Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅? КакиС соусы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? Какой сыр? Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ шаблон Β«Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΒ».

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: Π¨Π°Π±Π»ΠΎΠ½ позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, избСгая засорСния конструктора. Он ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π²ΠΈΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ мноТСство шагов, связанных с Π΅Π³ΠΎ созданиСм.

Π”Π°Π²Π°ΠΉΡ‚Π΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «ВСлСскопичСский конструктор». Когда-Ρ‚ΠΎ ΠΌΡ‹ всС Π²ΠΈΠ΄Π΅Π»ΠΈ конструктор Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ:

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² конструктора ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π·ΠΊΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΈ станСт слоТно ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ располоТСниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ расти, Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ «ВСлСскопичСский конструктор».

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ «БтроитСля»:

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: Когда ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π²ΠΈΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°Π΄ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ «тСлСскопичСского конструктора». Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Β«Ρ„Π°Π±Ρ€ΠΈΠΊΠΈΒ» β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° созданиС Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ шаг, Π° Β«ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΒ» примСняСтся ΠΏΡ€ΠΈ мноТСствС шагов.

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ (Prototype)

Π—Π°Π΄Π°Ρ‘Ρ‚ Π²ΠΈΠ΄Ρ‹ создаваСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ экзСмпляра-ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° ΠΈ создаёт Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡƒΡ‚Ρ‘ΠΌ копирования этого ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ°. Он позволяСт ΡƒΠΉΡ‚ΠΈ ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ позволяСт ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Β«ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы». Π’ качСствС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° указываСтся интСрфСйс / абстрактный класс Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ, Π° классы-наслСдники ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° наслСдника, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ этот Ρ‚ΠΈΠΏ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Π”ΠΎΠ»Π»ΠΈ? ΠžΠ²Π΅Ρ‡ΠΊΠ°, которая Π±Ρ‹Π»Π° ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π°. НС Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ, Π³Π»Π°Π²Π½ΠΎΠ΅ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ здСсь всС вращаСтся Π²ΠΎΠΊΡ€ΡƒΠ³ клонирования.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, основанный Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ клонирования.

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ позволяСт Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ копию ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ согласно вашим Π½ΡƒΠΆΠ΄Π°ΠΌ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°Π½ΠΎΠ²ΠΎ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌΡΡ ΠΊ ΠΊΠΎΠ΄Ρƒ. Π’ PHP это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ с использованиСм clone :

Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ __clone для измСнСния ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ повСдСния.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: Когда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° созданиС Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΡ€ΠΎΠΆΠ΅ клонирования.

ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ° (Singleton)

ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ° β€” ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ шаблон проСктирования, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π² однопроцСссном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ СдинствСнный экзСмпляр Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа ΠΊ этому экзСмпляру.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: Π’ странС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚. Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°. ΠŸΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ здСсь являСтся ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠΎΠΉ.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами: ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ создаваСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ являСтся СдинствСнным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ своСго класса.

Π’ΠΎΠΎΠ±Ρ‰Π΅ шаблон ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΈΠ·Π½Π°Π½ Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ использования. Он Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ»ΠΎΡ… ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ примСнСния, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π°Π΄ΠΎ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²Π²ΠΎΠ΄ΠΈΡ‚ глобальноС состояниС Π² вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части прилоТСния, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ трудности ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅. Π”Ρ€ΡƒΠ³ΠΎΠΉ минус β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ ваш ΠΊΠΎΠ΄ связанным.

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π². ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… камнях шаблона ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ° Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΊΠΎΠ΄Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ, сдСлайтС конструктор ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈ создайтС ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для хранСния экзСмпляра:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½ Π½Π° Ρ‚Ρ€ΠΈ части. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ссылкам:

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования, Ρ‚ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных шаблонов Π½Π° PHP.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ проСктирования β€” это ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ использованию Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π² повсСднСвном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡. Π­Ρ‚ΠΎ Π½Π΅ класс ΠΈ Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, это Π½Π΅Ρ‡Ρ‚ΠΎ большСС. Π¨Π°Π±Π»ΠΎΠ½ проСктирования, подходящий ΠΏΠΎΠ΄ Π·Π°Π΄Π°Ρ‡Ρƒ, рСализуСтся Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ Π½Π΅ зависит ΠΎΡ‚ языка программирования. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ шаблон Π»Π΅Π³ΠΊΠΎ рСализуСтся Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅, Ссли Π½Π΅ Π²ΠΎ всСх языках, Π² зависимости ΠΎΡ‚ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств языка. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ шаблон, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ ΠΊ нСподходящСй Π·Π°Π΄Π°Ρ‡Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ принСсти Π½Π΅ΠΌΠ°Π»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ шаблон ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π»Π΅Π³ΠΊΠΎ ΠΈ просто.

БущСствуСт Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° шаблонов:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, позволяя ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ совмСстно.

ΠŸΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, позволяя ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом.

ΠŸΠΎΠ²Π΅Π΄Π΅Π½Ρ‡Π΅ΡΠΊΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ сущностями.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования

Π¨Π°Π±Π»ΠΎΠ½ проСктирования, ΠΏΠΎ своСй сути, это ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с извСстной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² зависимости ΠΎΡ‚ ситуации. Π­Ρ‚ΠΈ классы интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ систСмой, Ρ‡Ρ‚ΠΎ Π½Π΅ позволяСт ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌ ошибкам. ВмСсто этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ «БтратСгия» ΠΈ «АдаптСр» ΠΈ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ.

ΠŸΡ€ΠΎΡΡ‚ΠΎ, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ? Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ Π½Π° шаблон «БтратСгия».

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ проСктирования «БтратСгия»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

БтратСгия β€” повСдСнчСский шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² процСссС выполнСния Π² зависимости ΠΎΡ‚ контСкста ΠΏΡƒΡ‚Π΅ΠΌ инкапсуляции Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² Ρ€Π°Π·Π½Ρ‹Ρ… классах.

Π“Π΄Π΅ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ запись Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ (имя, адрСс, Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ Ρ‚. ΠΏ.), Π½ΠΎ, Π² зависимости ΠΎΡ‚ ситуации, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для обновлСния ΠΈ создания записи. МоТно ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ условиС if/else, Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ контСкст:

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ шаблон «БтратСгия» ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² классы, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это излишнС. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ обязаны ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ слово Π² слово. Π›ΡŽΠ±Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ допустимы, Ссли ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ.

Π¨Π°Π±Π»ΠΎΠ½ «АдаптСр»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

АдаптСр β€” структурный шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ нСподходящий интСрфСйс.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для совмСстимости с интСрфСйсом Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ класса.

Как Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π”Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° β€” Β«ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠ°Β». Он Β«ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Β» Π½ΠΎΠ²Ρ‹ΠΉ интСрфСйс Π²ΠΎΠΊΡ€ΡƒΠ³ класса для Π΅Π³ΠΎ использования. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, имСя классы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌ классам Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π² Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π΅. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½ΠΎ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ вас ΠΎΡ‚ постоянного пСрСписывания большого количСства ΠΊΠΎΠ΄Π°, Ссли Π²Π°ΠΌ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ дСйствий Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Π‘Π΅Π· Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°:

Если Π½Π°ΠΌ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ всС это Π·Π°Π½ΠΎΠ²ΠΎ.

Π‘ использованиСм Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ Account :

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс Account ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π¨Π°Π±Π»ΠΎΠ½ Β«ΠœΠ΅Ρ‚ΠΎΠ΄-Ρ„Π°Π±Ρ€ΠΈΠΊΠ°Β»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π€Π°Π±Ρ€ΠΈΠΊΠ° β€” ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой класс с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ для создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Основная Ρ†Π΅Π»ΡŒ этого шаблона β€” ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классов Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π² зависимости ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ контСкста Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Как Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

20–22 дСкабря, Онлайн, Π‘Π΅cΠΏΠ»Π°Ρ‚Π½ΠΎ

Π‘Π½Π°Ρ‡Π°Π»Π° создадим Ρ‚Ρ€ΠΈ класса:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Ρ„Π°Π±Ρ€ΠΈΠΊΡƒ:

На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ HTML со всСми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

Π¨Π°Π±Π»ΠΎΠ½ Β«Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Β»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ β€” это структурный шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² зависимости ΠΎΡ‚ ситуации.

ЦСль β€” Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ повСдСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Π΅Π· нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π­Ρ‚ΠΎΡ‚ шаблон β€” Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° наслСдованию. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ наслСдования, Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ добавляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° Π½Π°ΠΌ понадобится:

Как Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ситуации. НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ HTML-ссылка для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ страницС ΠΌΡ‹ находимся. Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‚ самый случай, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π‘Π½Π°Ρ‡Π°Π»Π° опрСдСлимся, ΠΊΠ°ΠΊΠΈΠ΅ Β«Π΄Π΅ΠΊΠΎΡ€Π°Ρ†ΠΈΠΈΒ» Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сами Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚Π°ΠΊ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. ВсС ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ __call для Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Если ΠΌΡ‹ Π²ΠΎΠΉΠ΄Π΅ΠΌ Π² Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ страницу, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ:

Π¨Π°Π±Π»ΠΎΠ½ Β«ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ°Β»

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ° β€” ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр класса с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ доступом.

Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΡƒ Β«ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈΒ» для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ поля Β«ΠžΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠΈΒ» Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ для всСх, ΠΊΡ‚ΠΎ Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚.

Как Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся шаблоном проСктирования

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ сСссии ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… участков ΠΊΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. ΠœΠ΅Ρ‚ΠΎΠ΄ getInstance всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ сСссию.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ· мноТСства. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… проСктирования, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ достаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ. Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ Β«ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования» Β«Π‘Π°Π½Π΄Ρ‹ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Β».

И послСднСС: ΠΏΡ€ΠΈ использовании Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ шаблона ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ способом. Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ большС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‡Π΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. Но ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ β€” ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·Ρƒ нСльзя ΠΏΠ΅Ρ€Π΅ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *