Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ООП, Π° ΠΊΠΎΠ³Π΄Π° β€” ЀП?

Π“Ρ€ΡƒΠ±ΠΎ говоря, Ρƒ ЀП ΠΈ ООП схоТиС возмоТности Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ слоТных конструкций ΠΈ инкапсуляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΌΠ΅Π»ΠΊΠΈΠ΅ куски, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

Бамая большая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя этими «философиями» состоит Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ соотносятся с опСрациями Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Основной Π΄ΠΎΠΊΡ‚Ρ€ΠΈΠ½ΠΎΠΉ ООП являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ сильно связаны: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Он скрываСт всё это ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· интСрфСйс – Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ сообщСний, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ модСлью абстракции ΡΠ²Π»ΡΡŽΡ‚ΡΡ сами Π΄Π°Π½Π½Ρ‹Π΅, спрятанныС Π·Π° нСбольшим API Π² Π²ΠΈΠ΄Π΅ интСрфСйса.

ΠŸΡ€ΠΈ ООП ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ программист составляСт Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡƒΡ‚Ρ‘ΠΌ добавлСния ΠΊ Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Основной Π΄ΠΎΠΊΡ‚Ρ€ΠΈΠ½ΠΎΠΉ ЀП являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ слабо связаны с функциями. Над ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ дСйствия, Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ модСлью абстракции являСтся функция, Π° Π½Π΅ структура Π΄Π°Π½Π½Ρ‹Ρ…. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прячут ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° абстракции языка ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ с функциями.

ΠŸΡ€ΠΈ ЀП ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ программист ΠΏΠΈΡˆΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ ΠΏΠΎΠ΅Π΄ΠΈΠ½ΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Π΄Π²Π΅Π΄Π΅ΠΌ ΠΈ ΠΊΡ€ΠΎΠΊΠΎΠ΄ΠΈΠ»ΠΎΠΌ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ выступаСт ΠΌΠ΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ.

Π’Π°ΠΊ ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π»ΠΎΠ³ посвящён практичСским рСализациям, я ΠΎΡ‚ΠΌΠ΅Ρ‚Π°ΡŽ тСорСтичСскиС построСния Π²Ρ€ΠΎΠ΄Π΅ возмоТности мСханичСски Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ ΠΊΠΎΠ΄Π΅ ΠΈ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎ всякиС ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, ΠΏΠΈΡΠ°Ρ‚ΡŒ бизнСс-ΠΊΠΎΠ΄ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ всСго ΠΏΡ€ΠΈ нСдостаткС рСсурсов ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π΄Π²ΡƒΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ Π² бизнСс ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ? ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π½ΡŒΠΊΠΎ, ΠΏΠΎΠΊΠ° я Π·Π°Π²Π°Ρ€ΡŽ сСбС Ρ‡Π°ΡˆΠ΅Ρ‡ΠΊΡƒ эспрСссо…

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² бизнСс-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ модСль. Π‘ΡŽΡ€ΠΏΡ€ΠΈΠ·? Π‘ΡŽΡ€ΠΏΡ€ΠΈΠ·, Ссли Π²Ρ‹ рассматриваСтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊΠΈΠ΅ языки, ΠΊΠ°ΠΊ Java, C++, C# ΠΈ Ruby.

Если ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‚ΠΎ всё это ООП – тонкая прослойка для доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ SQL, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ – Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ язык. Π₯отя ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· встроСнныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ PL/SQL, это создаёт ΡƒΠ·ΠΊΠΎΠ΅ мСсто, ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ стоит Ρ‚ΠΎΠ³ΠΎ.

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… – Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с трСбованиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹, Π²Ρ‹ просто ΠΈΡ… ΠΏΠΈΡˆΠ΅Ρ‚Π΅. Π Π°Π·Π½Ρ‹Π΅ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π±Π°Π·Π΅. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π²ΠΎ всСх прилоТСниях.

ΠžΡ‚ΠΎΠΉΠ΄Ρ Π½Π°Π·Π°Π΄, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… – это большая структура Π΄Π°Π½Π½Ρ‹Ρ…, Π° прилоТСния – Π½Π°Π±ΠΎΡ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π½ΠΈΠΌΠΈ. Π’ сСрдцС любого бизнСс-прилоТСния Π»Π΅ΠΆΠΈΡ‚ большая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….

И Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ‹ хватаСмся Π·Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² прилоТСниях. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ слСдованиС ΠΌΠΎΠ΄Π΅? Или Π΅ΡΡ‚ΡŒ нСкая Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² прилоТСниях, ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…?

ΠžΡ‚Π²Π΅Ρ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ООП, Π° Ρ‡Ρ‚ΠΎ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ООП-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° позволяСт Π»Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Π΅Ρ‰ΠΈ связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ взаимодСйствиС частСй. ΠŸΡ€Π°Π²Π΄Π°, Π² ООП Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ дСйствия.

Но Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ бизнСс-процСсс размСщСния Π·Π°ΠΊΠ°Π·Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рСфакторят Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… бизнСс-ΠΏΡ€Π°Π²ΠΈΠ» – Ρ‚ΡƒΡ‚ ООП встаёт Π²ΠΎ всСй красС. Π’Π΅ части ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ происходящих измСнСниях, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚ Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ Π·Π½Π°Ρ‚ΡŒ ΠΎ Π½ΠΈΡ… Π½Π°Π΄ΠΎ.

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

ΠœΠ΅Π½ΡΡ‚ΡŒ связи слоТно. Если Π²Ρ‹ мСняСтС структуру управлСния, ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Π½Π° ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠΊ систСмС Β«ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ», это сломаСт ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли ΠΌΡ‹ запишСм всё, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π² бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…, Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, ΠΈΠ΄ΡƒΡ‚ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠ΄ΡƒΡ‚ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Набор Β«ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊΒ» (элСмСнтов прилоТСния) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π° Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ Π½Π°Π±ΠΎΡ€Π° элСмСнтов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Всё мСняСтся, бизнСс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, расти ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ насчёт ЀП – ΠΊΠΎΠ΄, написанный Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС? Π§Ρ‚ΠΎ насчёт простой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ООП-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π½Π°Π΄ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…?

Допустимо ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ всСгда Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ – Π½Π°Π΄ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ связСй. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ вряд Π»ΠΈ помСняСтся, ΠΏΡ€ΠΈ этом Π½Π°Π΄ этим Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π²Π΅Ρ‰ΠΈ – Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π² ЀП-стилС. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ мСняСтся часто, это Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ООП.

Если Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ², Π° Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вряд Π»ΠΈ стоит ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ Π·Π° API, Π³Π΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ manager скрытым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊΡƒΡŽ Π²Π΅Ρ‰ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ производятся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Но ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ насчёт стоимости доставки скорСС всСго помСняСтся, ΠΈ Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ посильнСС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΠΎΠΈΡ… стилСй, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

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

ЀП vs ООП

НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ Π½Π° Ρ…Π°Π±Ρ€Π΅ появилось нСсколько постов ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ²ΡˆΠΈΡ… Π² коммСнтариях Π±ΡƒΡ€Π½ΠΎΠ΅ обсуТдСниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ это Ρ‚Π°ΠΊΠΎΠ΅ β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ отличаСтся ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ. Π―, ΠΏΡƒΡΡ‚ΡŒ ΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠΏΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ, Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΡƒΠΌΠ°Π΅Ρ‚ ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Π ΠΎΠ±Π΅Ρ€Ρ‚ ΠœΠ°Ρ€Ρ‚ΠΈΠ½, Ρ‚Π°ΠΊΠΆΠ΅ извСстный, ΠΊΠ°ΠΊ Π”ΡΠ΄ΡŽΡˆΠΊΠ° Π‘ΠΎΠ±.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π€ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

Π—Π° послСдниС нСсколько Π»Π΅Ρ‚ ΠΌΠ½Π΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ доводилось ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠ°Ρ€Π΅ с людьми, ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ прСдвзято настроСны ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ООП. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π²Ρ‹Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ Π² Ρ„ΠΎΡ€ΠΌe ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ°: β€œΠΡƒ это слишком ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅.”

Π― Π΄ΡƒΠΌΠ°ΡŽ это происходит ΠΈΠ· убСТдСния, Ρ‡Ρ‚ΠΎ ЀП ΠΈ ООП Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. МногиС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ, Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ориСнтированная. Полагаю, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ мнСния β€” Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ слСдствиС изучСния Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ.

Когда ΠΌΡ‹ бСрёмся Π·Π° Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ, ΠΌΡ‹ часто Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ старых Ρ‚Π΅Ρ…Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовали Ρ€Π°Π½ΡŒΡˆΠ΅. Π­Ρ‚ΠΎ СстСствСнно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Π΅Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ новая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° β€œΠ»ΡƒΡ‡ΡˆΠ΅β€ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ старая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ β€œΡ…ΡƒΠΆΠ΅β€.

Π’ этом постС я ΠΎΠ±ΠΎΡΠ½ΡƒΡŽ ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ хотя ООП ΠΈ ЀП ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹, это Π½Π΅ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ понятия. Π§Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ (ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π°) Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ. И Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ориСнтированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ (ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π°) Π±Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ. Но для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΌ придётся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ООП?

Π― ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρƒ ΠΊ вопросу с рСдукционистских ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ООП ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ мноТСство ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², Ρ‚Π΅Ρ…Π½ΠΈΠΊ, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² ΠΈ философий. Π― Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° самой соли. Π Π΅Π΄ΡƒΠΊΡ†ΠΈΠΎΠ½ΠΈΠ·ΠΌ Ρ‚ΡƒΡ‚ Π½ΡƒΠΆΠ΅Π½ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ всё это богатство возмоТностСй, ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π΅ ООП Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ являСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ спСцифичным для ООП; это просто Ρ‡Π°ΡΡ‚ΡŒ богатства возмоТностСй Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Ρ†Π΅Π»ΠΎΠΌ. Π’ΡƒΡ‚ я ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΡƒΡΡŒ Π½Π° части ООП, которая являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈ нСустранимой.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Π΄Π²Π° выраТСния:

Никакой сСмантичСской Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ явно Π½Π΅Ρ‚. Вся Ρ€Π°Π·Π½ΠΈΡ†Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² синтаксисС. Но ΠΎΠ΄Π½ΠΎ выглядит ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ для выраТСния 2. нСявно подразумСваСтся особая сСмантика повСдСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Ρ‚ Ρƒ выраТСния 1. Π­Ρ‚Π° особая сСмантика повСдСния β€” ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.

Когда ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1. ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f, которая вызываСтся Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ пСрСдаётся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ o. ΠŸΡ€ΠΈ этом подразумСваСтся, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ f, ΠΈ Π½Π΅ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ стандартной ΠΊΠΎΠ³ΠΎΡ€Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΡ… o.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2. ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ o ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ сообщСниС с ΠΈΠΌΠ΅Π½Π΅ΠΌ f. ΠœΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ сообщСниС f ΠΈ поэтому ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ повСдСния ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ f послС Π²Ρ‹Π·ΠΎΠ²Π°. ПовСдСниС зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° o. Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ f β€” ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π΅Π½.

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π‘ΠΈ ΠΈ Паскаль (ΠΈ Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни Π΄Π°ΠΆΠ΅ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΠΈ Кобол) всСгда создавали систСмы инкапсулированных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ структур. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ структуры Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ ΠΈ Π΄Π°ΠΆΠ΅ простоС наслСдованиС Π² Ρ‚Π°ΠΊΠΈΡ… языках ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ ΠΈ СстСствСнны. (Π’ Π‘ΠΈ ΠΈ ПаскалС Π±ΠΎΠ»Π΅Π΅ СстСствСнно, Ρ‡Π΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ…)

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ООП ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚ Π½Π΅ ООП ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ это ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΈΡ„ΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ f switch ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ if/else. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²Π΄Π°, поэтому ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ для ООП Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

ИспользованиС ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ зависимости Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Ρ‘ Ρ€Π°Π· посмотрим Π½Π° выраТСния. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1: f(o), ΠΏΠΎΡ…ΠΎΠΆΠ΅ зависит ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходного ΠΊΠΎΠ΄Π°. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ f Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈ Ρ‡Ρ‚ΠΎ поэтому Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ.

Однако, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ смотрим Π½Π° Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2. o.f() ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ f ΠΈ ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ какая ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ f Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° Π½Π° самом Π΄Π΅Π»Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ исходный ΠΊΠΎΠ΄, содСрТащий Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2 Π½Π΅ зависит ΠΎΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходного ΠΊΠΎΠ΄Π°.

Если ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅Π΅, Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Ρ„Π°ΠΉΠ»Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Ρ„Π°ΠΉΠ»Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… include ΠΈΠ»ΠΈ use ΠΈΠ»ΠΈ require ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π˜Ρ‚Π°ΠΊ, нашС рСдукционистскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ООП это:

Π’Π΅Ρ…Π½ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ динамичСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π°Ρ зависимостСй Π²Ρ‹Π·Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ исходного ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ЀП?

И ΠΎΠΏΡΡ‚ΡŒ я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСдукционистский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π£ ЀП Π΅ΡΡ‚ΡŒ Π±ΠΎΠ³Π°Ρ‚Ρ‹Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ ΠΈ история, ΠΊΠΎΡ€Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π³Π»ΡƒΠ±ΠΆΠ΅, Ρ‡Π΅ΠΌ само ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡ‹, философии ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ½ΠΈΠ·Π°Π½Π° эта ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°. Π― всё это ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρƒ сразу ΠΊ самой сути, ΠΊ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΌΡƒ свойству ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отдСляСт ЀП ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… стилСй. Π’ΠΎΡ‚ ΠΎΠ½ΠΎ:

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π΄Π°Ρ‘Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π­Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

Из сказанного Π²Ρ‹ΡˆΠ΅ Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ слСдствиС, Ρ‡Ρ‚ΠΎ f Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΌΠ΅Π½ΡΡ‚ΡŒ части глобального состояния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ f. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΌΡ‹ скаТСм, Ρ‡Ρ‚ΠΎ f прСдставляСт всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² систСмС β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² систСмС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ β€” Ρ‚ΠΎΠ³Π΄Π° Π½ΠΈ ΠΎΠ΄Π½Π° функция Π² систСмС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ глобальноС состояниС. Ни ΠΎΠ΄Π½Π° функция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ другая функция ΠΈΠ· систСмы Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ….

Π£ этого Π΅ΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ слСдствиС β€” Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСльзя ΠΌΠ΅Π½ΡΡ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания Π½Π΅Ρ‚.

Если Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π΄ΡƒΠΌΠ°Ρ‚ΡŒ это ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, состоящая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ любоС ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы мСняСт состояниС Ρ‡Π΅Π³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ; Π΄Π°ΠΆΠ΅ Ссли это просто состояниС ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ дисплСя. Однако, Ссли ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ прозрачности ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΈ всС элСмСнты ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΌΠΈΡ€Π° оказываСтся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ систСмы.

Ѐокус, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² рСкурсии. Рассмотрим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ структуру с состояниСм Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ состоит ΠΈΠ· всСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии, которая Π½ΡƒΠΆΠ½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹. Когда Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π°, функция создаёт Π½ΠΎΠ²ΡƒΡŽ структуру с состояниСм, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ отличаСтся ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. И послСдним дСйствиСм функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ саму сСбя с Π½ΠΎΠ²ΠΎΠΉ структурой Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· простых Ρ‚Ρ€ΡŽΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния состояния Π±Π΅Π· нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС [1].

Π˜Ρ‚Π°ΠΊ, рСдукционистскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования:

Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ β€” ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ значСния нСльзя.

ЀП ΠΏΡ€ΠΎΡ‚ΠΈΠ² ООП

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΠΈ сторонники ООП ΠΈ сторонники ЀП ΡƒΠΆΠ΅ смотрят Π½Π° мСня Ρ‡Π΅Ρ€Π΅Π· оптичСскиС ΠΏΡ€ΠΈΡ†Π΅Π»Ρ‹. Π Π΅Π΄ΡƒΠΊΡ†ΠΈΠΎΠ½ΠΈΠ·ΠΌ Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ завСсти Π΄Ρ€ΡƒΠ·Π΅ΠΉ. Но ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, я Π΄ΡƒΠΌΠ°ΡŽ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΎΠ»ΠΈΡ‚ΡŒ свСт Π½Π° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡƒΡ‚ΠΈΡ…Π°ΡŽΡ‰ΠΈΠΉ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€ ЀП ΠΏΡ€ΠΎΡ‚ΠΈΠ² ООП.

Ясно, Ρ‡Ρ‚ΠΎ Π΄Π²Π° рСдукционистских опрСдСлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π²Ρ‹Π±Ρ€Π°Π», ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ. Они Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ.

Но ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (спроситС ДТСймса ΠšΠ»Π΅Ρ€ΠΊΠ° МаксвСлла). Π’ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ систСму, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ динамичСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ!

ΠŸΠΎΡ‡Π΅ΠΌΡƒ эта комбинация Ρ…ΠΎΡ€ΠΎΡˆΠ°? По Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° Π΅Ρ‘ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°! БистСмы построСнныС Π½Π° динамичСском ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒΡŽ. Зависимости ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ стороны Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π³Ρ€Π°Π½ΠΈΡ†. Π­Ρ‚ΠΈ систСмы ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Моки ΠΈ Π€Π΅ΠΉΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ ВСстовых Π”ΡƒΠ±Π»Π΅ΠΉ. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ внося измСнСния Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π°ΠΊΠΈΠ΅ систСмы ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ.

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

Главная ΠΌΡ‹ΡΠ»ΡŒ Ρ‚ΡƒΡ‚ такая:

НСт Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€Π° ЀП ΠΏΡ€ΠΎΡ‚ΠΈΠ² ООП

ЀП ΠΈ ООП Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС. И Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² соврСмСнных систСмах. БистСма, которая построСна Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ООП ΠΈ ЀП максимизируСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ, простоту ΠΈ ΠΏΡ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. Если ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Ρ€Π°Π΄ΠΈ добавлСния Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ структуру систСмы.

[1] Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Π€ΠΎΠ½ НСймана ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ячСйки памяти, состояниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π° самом Π΄Π΅Π»Π΅ измСняСтся. Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ рСкурсии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я описал, оптимизация хвостовой рСкурсии Π½Π΅ даст ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ стСкфрСймы ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ стСкфрСйм. Но это Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ прозрачности (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ) скрыто ΠΎΡ‚ программиста ΠΈ Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ Π½Π΅ влияСт.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ООП?

Часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Ρ‹ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΡ‰ΠΈΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€ΡƒΠ»ΠΈΡ‚, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ это Ρ‚Ρ€Π΅Ρˆ. НС Π±ΡƒΠ΄Π΅ΠΌ здСсь Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‰ΠΈΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΡ‰ΠΈΠΊΠΈ. НС Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡ… Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΊ ΠΊΠΎΠΌΡƒ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ½ΠΈ ΠΏΠΎΡ€ΠΎΠΉ Π½Π΅ относятся (ΠΈ ΠΏΠΎ этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠ΄ΡƒΡ‚ лСсом). РазбСрёмся, Ρ‡Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ ΠΈ для Ρ‡Π΅Π³ΠΎ это всё Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ людьми для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ спСцифичСских Ρ†Π΅Π»Π΅ΠΉ ΠΈ для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π”Π°-Π΄Π°, ΠΊΠ°ΠΊ я ΠΈ сказал ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅:

АрхитСктуру ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ для упрощСния слоТного ΠΊΠΎΠ΄Π°, Π° Π½Π΅ для услоТнСния Π»Ρ‘Π³ΠΊΠΎΠ³ΠΎ.

КакиС ΠΆΠ΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ? На ассСмблСрС ΠΌΡ‹ пишСм нСчасто, поэтому Π² самый Π½ΠΈΠ· ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. Π›Π°ΠΏΡˆΠ΅ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚ΠΎΠΆΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ всё понятно. ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° высокоуровнСвых ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°Ρ…, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½Ρ‹Ρ… ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот лапшСкод.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

Когда ΠΊΠΎΠ΄Π° становится ΠΌΠ½ΠΎΠ³ΠΎ, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ. Когда ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ становится ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚ΠΎ ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ обязанностям ΠΈ разнСсти ΠΏΠΎ модулям. Если нСсколько ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠ°ΠΊ-Ρ‚ΠΎ связаны Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ ΠΈΡ… ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ вмСстС с этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Но Ссли просто Π²ΠΎΠ·ΡŒΠΌΡ‘Ρ‚Π΅ Π³Ρ€ΡƒΠ΄Ρƒ ΠΊΠΎΠ΄Π° ΠΈ просто пСрСнСсётС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² классы, ΠΊΠ°ΠΊ я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π½Π° итСнсивС, Ρ‚ΠΎ Π½Π΅ станСтС сразу ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ программистом. Π­Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅ ΠΊΠΎΠ΄Π°. Π¦Π΅Π»Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΆΠΈΠ·Π½ΠΈ ΠΈ мыслСй.

НастоящСС ООП Π½Π°Ρ†Π΅Π»Π΅Π½ΠΎ Π½Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ обязанностСй ΠΈ сокрытиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π­Ρ‚ΠΎ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°, придуманная для модСлирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°. Как ΠΎΠ½Π° это Π΄Π΅Π»Π°Π΅Ρ‚? Π£Π΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π°Ρ… ΠΈ аналогиях, поэтому рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ с тостСром ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ²ΠΎΠ»Π½ΠΎΠ²ΠΊΠΎΠΉ:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π€ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

Π•ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ всСми запчастями Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΌΠΈ стрСлками ΠΈ подписанный Π½Π° состояниС ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠΎ Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ. Как этот Π°Π³Ρ€Π΅Π³Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

Если Π²Π΄Ρ€ΡƒΠ³ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ, Ρ‚ΠΎ всСго лишь Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Β«ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒΒ» Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

А Ссли Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€, дисплСй ΠΈ GSM-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ SMS-ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ? Запросто ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΡ… ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ своими Β«Ρ€ΠΎΠ΄Π½Ρ‹ΠΌΠΈΒ» Ρ€Π°Π·ΡŠΡ‘ΠΌΠ°ΠΌΠΈ ΠΈ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события истСчСния ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΌΡ‹ послС остановки ΠΏΠ΅Ρ‡ΠΊΠΈ отправляСм SMS ΠΎ готовности. Или автоматичСски Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±Π΅Π΄ ΠΈ постим Π² Instagram. Но ΡΡƒΡ‚ΡŒ здСсь ΠΎΠ΄Π½Π°:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π€ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ дисплСй ΠΈ подписываСт Π΅Π³ΠΎ Π½Π° события Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· сСбя. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° дисплСй ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ совмСстимы. Π§Ρ‚ΠΎ это Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚?

Π­Ρ‚ΠΎ классичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Model-View-Controller (MVC), часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… прилоТСниях, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ½ΠΎΠΏΠΎΠΊ, дисплССв ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… элСмСнтов.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС всС связи ΠΈΠ΄ΡƒΡ‚ Π½Π΅ хаотичСски, Π° ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ΠΠ°Π³Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ, Ρ‚Π°ΠΉΠΌΠ΅Ρ€, дисплСй ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ ΠΎ Π΄Ρ€ΡƒΠ³Π΅. Кнопки ΡƒΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠšΠ°ΠΆΠ΄ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π·Π°ΠΏΡ‡Π°ΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ.

Π’ Ρ‚Π°ΠΊΠΎΠΉ систСмС ΠΌΠΎΠΆΠ½ΠΎ вмСсто нагрСватСля Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ…ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ ΠΈΠ»ΠΈ ΡˆΠ»Π°Π³Π±Π°ΡƒΠΌ. И Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ:

лишь Π±Ρ‹ это Β«Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎΒ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ интСрфСйс:

Π’ΠΎΠ³Π΄Π° просто создаём всС устройства ΠΈ Π·Π°ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ ΠΈΡ… Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€:

И Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ всСх ΠΈΡ… Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ.

Π’ хозяйствС это Π²Π΅Ρ‰ΡŒ вСсьма полСзная. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π€ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

А Ρ‡Ρ‚ΠΎ Ссли Ρƒ нас Π² хозяйствС появилась Π±Π΅Π½Π·ΠΎΠΏΠΈΠ»Π°? Она заводится особым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

Если Ρƒ Π±Π΅Π½Π·ΠΎΠΏΠΈΠ»Ρ‹ Π½Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π²ΠΊΠ» ΠΈ Π²Ρ‹ΠΊΠ» ΠΊΠ°ΠΊ Ρƒ элСктропилы, Ρ‚ΠΎ просто напишСм Π°Π΄Π°ΠΏΡ‚Π΅Ρ€:

Он снаруТи Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ, Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ вСсь этот слоТный процСсс. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ для ядСрного Ρ€Π΅Π°ΠΊΡ‚ΠΎΡ€Π° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ссли Π²Π΄Ρ€ΡƒΠ³ это понадобится.

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π°ΠΌ пригодился Π±Ρ‹ скромный Π½Π°Π±ΠΎΡ€ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π€ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°Ρ…ΠΎΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±Π΅Π½Π·ΠΎΠΏΠΈΠ»Ρƒ Π² Ρ€Π°Π·ΡŠΡ‘ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°:

Π‘Π΅Π½Π·ΠΎΠΏΠΈΠ»Π° с Arduino-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ нагрСватСля. ΠœΠΎΡ‰ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° πŸ™‚

Всё ΠΊΠ°ΠΊ Π² ΠΆΠΈΠ·Π½ΠΈ. ΠΠ±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΡƒΡΡΡŒ ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ всСго этого, для нас ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ это всСго лишь ящик с ΠΏΠ°Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ². Π“Ρ€ΡƒΠ΄Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΈ транзисторов Π² Π²ΠΈΠ΄Π΅ элСмСнтов ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ассоциативного массива ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ нСчаянно ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄. А Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ толстым ΠΊΠΎΠΆΡƒΡ…ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠ°Ρ€ΠΎΠΉ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈΠ»ΠΈ Ρ€Π°Π·ΡŠΡ‘ΠΌΠΎΠ² с этим справится идСально.

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ спСциализированными ящиками, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ сообщСниями.

Π£ΠΌΠ΅Π»ΠΎ раздСляя систСму Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ продумывая сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½ΠΈΡ€Π²Π°Π½Ρ‹ Π² ООП. А влСзая Π² это ΠΊΡ€ΠΈΠ²Ρ‹ΠΌΠΈ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ структурС ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСсиво:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°. Π€ΠΎΡ‚ΠΎ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΎΠΏ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°

Π—Π΄Π΅ΡΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ соСдинСны ΠΊΡƒΡ‡Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡŽΠ΄Ρƒ Π²ΠΏΠ°ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ ΡƒΠΌΠ΅Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с дисплССм ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ‡ΠΊΡƒ. Π‘Π΅Π½Π·ΠΎΠΏΠΈΠ»Ρƒ сюда ΡƒΠΆΠ΅ Ρ‚Π°ΠΊ просто Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡˆΡŒ. ΠœΡ‹ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ нСзависимых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ сайта с интСрСсными ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

Если просто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎ ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ успСли ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ хотя Π±Ρ‹ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ООП, Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ЀП Ρ‚ΠΎΠΆΠ΅ ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ обязанностСй ΠΈ Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΈΠ·Π²Π°Π½ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лапшСкод, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ссли Π’Ρ‹ Π΅ΡΡ‚ΡŒ Π² соцсСтях, Ρ‚ΠΎ вас постоянно парсят ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΎΠ»ΠΎΠ³ΠΈ:

И ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π³ΠΎΡ€ΠΎΠ΄ Π²Π½Π°Ρ‡Π°Π»Π΅:

ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ здСсь Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ впишСшь.

Π—Π΄Π΅ΡΡŒ вмСсто ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, всё разнСсСно Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎ Π½Π° сами Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π½Π° ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прСдставляСт ΠΈΠ· сСбя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΡƒΡŽ исходныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π—Π΄Π΅ΡΡŒ идСально подходят ассоциативныС массивы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ структуры. Они Π½Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΡƒ ΠΈ процСссор созданиСм тысяч ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. Но Ρ‡Ρ‚ΠΎ Ссли Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ? Π”Π°Π±Ρ‹ Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π½Ρ‹Π΅ массивы снова ΠΈ снова, ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ всС значСния ΠΏΠΎ ссылкС. Или ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ структуры Π² Π²ΠΈΠ΄Π΅ классов с полями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС значСния Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π² памяти Π² ΠΎΠ΄Π½ΠΎΠΌ экзСмплярС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈΡΡŒ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ.

Π§Π΅ΠΌ это отличаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°?

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ слуТит ΠΊΠ°ΠΊ инструмСнт абстракции Π² Ρ€ΡƒΠΊΠ°Ρ… ΡƒΠΌΠ΅Π»Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для избавлСния ΠΎΡ‚ копипасты Π² Ρ€ΡƒΠΊΠ°Ρ… ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚. Π’Π΅Π΄ΡŒ Π½Π΅Ρ‚ смысла Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, которая Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚.

Π’ нашСм парсСрС Π½ΠΈΡ‡Π΅Π³ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ ΠΈ импСративная ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΠΎΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½Π°. ΠœΡ‹ просто Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½Π΅ пСрСзаписывая старыС значСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΊΠΈΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π° Π½Π΅Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ лишь константы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, прогоняя ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· спСциализированныС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Ρ‹.

Π£ΠΌΠ΅Π»ΠΎ раздСляя расчёты Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½ΠΈΡ€Π²Π°Π½Ρ‹ Π² ЀП. А влСзая Π² это ΠΊΡ€ΠΈΠ²Ρ‹ΠΌΠΈ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ структурС ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСсиво.

Но ΠΊΠ°ΠΊ Π½Π° ЀП ΠΏΠΈΡˆΡƒΡ‚ сайты?

ΠŸΠΎΡ‚ΠΎΠΊ вычислСний

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ вСсь сайт Π½Π° ЀП. На сайтС с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ расчёты, Π³Π΄Π΅ ООП Π½Π΅ΡƒΠ΄ΠΎΠ±Π΅Π½. ИмСнно эти Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ.

НапримСр, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅ Π½Π°Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ скидку Π½Π° ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°Π»ΠΈ большС Ρ‚Ρ€Ρ‘Ρ…. ВмСсто Π²ΠΎΠ·Π½ΠΈ с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ мусором ΠΌΡ‹ просто опрСдСляСм, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹:

Если ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с коллСкциями вмСсто простых массивов, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса CartItem скрипт считываСт Ρ†Π΅Π½Ρƒ ΠΈ количСство. А ΠΊΠ°ΠΊ собираСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚? ΠŸΠΎΡ‚ΠΎΠΊΠΎΠΌ:

По этому ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» скринкаст ΠΎ подсчётС скидок. Π—Π° Π½ΠΈΠΌ Π΅Ρ‰Ρ‘ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎ написании ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ парсСра, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·Ρƒ нСизмСняСмых Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ распараллСливании процСссов. ΠšΡ‚ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ подписался Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ€Ρ‹, Ρ‚ΠΎΡ‚, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΏΡ€ΠΎΠ»Ρ‘Ρ‚Π΅.

Π Π°Π±ΠΎΡ‚Π° сайта

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π½ΠΈΡ‚ΡŒ исполнСния самого сайта. Он выглядит ΠΊΠ°ΠΊ слоТная функция ΠΎΡ‚ запроса:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

ΠΈ Π²ΠΈΠ΄ΠΈΠΌ сгСнСрированный ΠΎΡ‚Π²Π΅Ρ‚ Π² Π²ΠΈΠ΄Π΅ массива:

ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Response.

Π’Ρ‹ это ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ скриптС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° web/app.php Π½Π° Symfony:

Π² public/index.php Π² Laravel:

ΠΈ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ run() класса прилоТСния yii\base\Application Π² Yii2:

БоотвСтствСнно, здСсь фактичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Π±Π°Π·Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΎΠΌ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Π²ΠΈΠ΄Π΅ Response-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. БлоТности Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ лишь ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, поэтому сущности Π²Ρ€ΠΎΠ΄Π΅ User ΠΈΠ»ΠΈ Product ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ с измСняСмым состояниСм.

Π’Ρ‹Π²ΠΎΠ΄

Если рассматриваСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ «ящиков», Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ООП. Если ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ЀП. Если это Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π³ΠΈΠ±Ρ€ΠΈΠ΄ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’Π΅ΡΡŒΠΌΠ° Π·Π°Π±Π°Π²Π½ΠΎ выглядят ΠΏΠΎΡ€ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ «ящики» Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ООП. И ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· этого Π³Π»Π°Π²Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄?

Π§Π΅ΠΌ большС ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² знаСшь (ΠΈ ΡƒΠΌΠ΅Π΅ΡˆΡŒ), Ρ‚Π΅ΠΌ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Π΅Π΅ моТСшь ΠΈΡ… ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ.

Пока Π½Π° этом всё. А попрактикуСмся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡƒΠΆΠ΅ Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ€Π°Ρ…. Π—Π°ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° эфир, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ свои вопросы ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ всСх ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ записи скринкастов. И оставляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ.

НС пропускайтС Π½ΠΎΠ²Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, бонусы ΠΈ мастСр-классы:

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

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

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