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

Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ООП?

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

Достоинства Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования (FP) ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ООП) каТутся бСсконСчными спорами Π½Π° любом тСхничСском ΠΎΠ½Π»Π°ΠΉΠ½-Ρ„ΠΎΡ€ΡƒΠΌΠ΅. Π₯отя слоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… различия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ?

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ†Π΅Π»ΡŒ β€” Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π½Π΅ содСрТат ошибок. Но ΠΎΠ½ΠΈ основаны Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°Ρ….

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования

ООП β€” это ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°, основанная Π½Π° ΠΈΠ΄Π΅Π΅ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²Β», содСрТащих Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΠ»Π΅ΠΉ, часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ; ΠΈ ΠΊΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, объСдиняя Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ связанноС с Π½ΠΈΠΌΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌΒ»).

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ основываСтся Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…:

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

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

FP β€” это процСсс создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΏΡƒΡ‚Π΅ΠΌ составлСния чистых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ нСизмСняСмы, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ созданноС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ β€” Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ ΠΈ для ясности ΠΈΡ… слСдуСт Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ.

FP основываСтся Π½Π° ΡˆΠ΅ΡΡ‚ΠΈ концСпциях:

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ отличия

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

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования

ΠŸΠ»ΡŽΡΡ‹

ООП Ρ‚Π°ΠΊ популярно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ позволяСт Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ ΠΎΡ‚ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внСшнСго использования. Он скрываСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ доступ ΠΈΠ·Π²Π½Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ООП допускаСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ раздСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° нСзависимыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ) ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ состояниями.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π›Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса, Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄.

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

ΠœΠΈΠ½ΡƒΡΡ‹

ООП нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ зависят ΠΎΡ‚ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚, ΠΈΡ… Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ классом. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΌΠ΅Π½Π΅Π΅ эффСктивСн, ΠΈ с Π½ΠΈΠΌ слоТнСС ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ. МногиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для модСлирования массивных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ слоТными.

ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования

ΠŸΠ»ΡŽΡΡ‹

FP ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ прСимущСства, ΠΊΠ°ΠΊ Π»Π΅Π½ΠΈΠ²ΠΎΠ΅ вычислСниС, ΠΊΠΎΠ΄ Π±Π΅Π· ошибок, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ концСнтрируСтся Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ мСньшС Π½Π° Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ, с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ.

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

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

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

ΠœΠΈΠ½ΡƒΡΡ‹

FP β€” это ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΈ для написания ΠΊΠΎΠ΄Π° трСбуСтся Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅. Π₯отя Π»Π΅Π³ΠΊΠΎ ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ сцСнария Π² простой ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… умствСнных усилий.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ЀП Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ, мСньшС людСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, СстСствСнно мСньшС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅.

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

Какая ΠΈΠ· Π½ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅?

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ООП ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ООП β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ FP ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ FP Π»ΡƒΡ‡ΡˆΠ΅.

Π₯отя ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌΠΈ. ΠŸΡ€Π΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ†Π΅Π»ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ понятных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π±Π΅Π· ошибок, ΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹. ООП слСдуСт ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования, основанной Π½Π° Π½Π°Π±ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², прСдоставляСмых языком программирования. FP, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, тСсно связан с Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ стилСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ опрСдСляСтС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π½Π΅ указывая, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ всС согласны с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ООП ΠΈ ЀП эффСктивны Π² любой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ситуации, поэтому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ программирования, которая Π΄Π΅Π»Π°Π΅Ρ‚ процСсс ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ простым. Π”Π°ΠΆΠ΅ Π² этом случаС ΠΌΡ‹ Π½Π΅ ΡƒΡΠ»Ρ‹ΡˆΠΈΠΌ Π² блиТайшСС врСмя ΠΎΠ± ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ этих Π΄Π΅Π±Π°Ρ‚ΠΎΠ².

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

Когда ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° ΠΊΠΎΠ³Π΄Π° ООП β€” ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ экспСрты

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

Когда ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° ΠΊΠΎΠ³Π΄Π° ООП β€” ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ экспСрты

МногиС ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΏΡ€ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, задавались вопросом: «А Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ ООП?Β». ΠœΡ‹ спросили Ρƒ экспСртов, ΠΊΠΎΠ³Π΄Π° стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ.

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

Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π±Π»ΠΎΠΊΠ° Π˜Π½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Β«Π›ΠΈΠ³Π° Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π­ΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠΈΒ»

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

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

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

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

Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΡƒ для изучСния?

Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ всё сразу Π½Π΅ получится, Π½ΠΎ для быстрого старта ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρ‹, Π½Π° ΠΌΠΎΠΉ взгляд, достаточно Π·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ…, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языках: соврСмСнныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΎΠ»Π΅Π΅ старыС ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹, Π² Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ эффСктивны. Если Π΅ΡΡ‚ΡŒ повСрхностноС Π·Π½Π°Π½ΠΈΠ΅ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” это Π²ΠΎΠΎΠ±Ρ‰Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π—Π½Π°Ρ‡ΠΈΡ‚, Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΅ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€, мСньшС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π·Π°Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ.

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

frontend-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ MediaSoft

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСниС ΠΈ ΠΎΠ± ООП, ΠΈ ΠΎ ЀП, Π·Π½Π°Ρ‚ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ слабыС стороны ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ Π½Π° основС этого ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ бизнСс-Π·Π°Π΄Π°Ρ‡ΠΈ.

ООП-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ написаниС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΌ добавлСния ΠΊ Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ хранятся Π² экзСмплярС класса вмСстС с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ООП зависят ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ содСрТат Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ссылки Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅) ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ с внСшним ΠΌΠΈΡ€ΠΎΠΌ (Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄).

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ООП, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ характСризуСтся слабой связью Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½Π° ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ чтСния ΠΈ измСнСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ЀП Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ для ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

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

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° Node.js, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ЀП. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сам ΠΏΠΎ сСбС запрос Π½Π° сСрвСр β€” это функция с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ (request, response). А Ρ€Π°Π±ΠΎΡ‚Π° с request’ом происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (middleware), ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (response) всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ, Ссли Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ значСния. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ здСсь смотрится СстСствСнно. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли Node.js-сСрвис ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π‘Π”, для описания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ООП-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ слуТит популярная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° sequelize.

На просторах frontend особой ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ, Π½ΠΎ для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ООП, Ρ‚Π°ΠΊ ΠΈ ЀП. Π’Π·ΡΡ‚ΡŒ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Angular: Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ построСн Π½Π° сСрвисах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ классами, содСрТащими Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. Однако ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Redux, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π² ΠΏΠ°Ρ€Π΅ с React, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅ΡˆΡŒΡΡ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ основная идСя Redux β€” использованиС чистых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Π· ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов.

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

Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ iOS-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² FINCH

ООП vs. ЀП β€” вСчная Π΄ΠΈΠ»Π΅ΠΌΠΌΠ°. МнС каТСтся, Ρ‡Ρ‚ΠΎ наибольшСй эффСктивности Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΌΠΈΠΊΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Π’ΠΎΡ‡Π½ΠΎ Π½Π΅ стоит ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ЀП, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ: Π½ΡƒΠΆΠ½ΠΎ постоянно ΠΏΡ€ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ state.

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

ВсСгда стоит Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ, Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° REST API ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ сработаСт, Ρ‚Π°ΠΊ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ рСбята ΠΈΠ· tutu.ru. Π’ΠΎ ΠΆΠ΅ самоС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” Ссли Ρƒ вас ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ сСрвисноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ JSON, Ρ‚ΠΎ особо смысла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ЀП Π½Π΅Ρ‚.

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

ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€-программист ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Java ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ «РСксофт»

«Когда ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° ΠΊΠΎΠ³Π΄Π° ООП?Β» β€” вопрос совсСм нСпростой. Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ€ΡƒΠΌΡ‹, Ρ‚ΠΎ понятно, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΡƒΠΆΠ΅ Π½Π° этапС самого опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

Если ΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· опрСдСлСния, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ β€” это ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° всСгда зависит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΏΠΎΠ΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π²Ρ…ΠΎΠ΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎ я Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π°Ρ‰Π΅. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π΅Π³ΠΎ тСстированиС. Однако ЀП Π±ΠΎΠ»Π΅Π΅ характСризуСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ простыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ Π²ΠΎΡ‚ это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ слоТная Ρ‡Π°ΡΡ‚ΡŒ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΡΠΊΠΎΡ‡ΠΈΡ‚ΡŒ Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вычислСний O(n).

НС ΠΎΡ‡Π΅Π½ΡŒ понятно, ΠΊΠ°ΠΊ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ООП ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ЀП). Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ тСсно ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒΡΡ, Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, ΠΈ Π³Π΄Π΅ ΠΊΠ°ΠΊΡƒΡŽ модСль ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π·Π°Π΄Π°Ρ‡, стоящими ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НапримСр ваш ΠΊΠΎΠ΄ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ транспортного срСдства (Π’Π‘). НуТно ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π’Π‘, Π΅Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ вычислСния Π½Π° основС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вычислСний. Если ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚ΠΎ появляСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ хранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² вычислСний ΠΈ ΠΏΠΎΠ΄Π°Ρ‡ΠΈ ΠΈΡ… ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π° Π²Ρ…ΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π­Ρ‚ΠΎ создаст Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ логичСскиС слоТности, поэтому Π² этой Π·Π°Π΄Π°Ρ‡Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ООП ΠΈ ЀП. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π’Π‘ создаётся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² стилС ООП, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сам Ρ…Ρ€Π°Π½ΠΈΡ‚ свои ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вычислСния. Π’Π°ΠΌ остаётся Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ускорСниС, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния ΠΈ врСмя, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ дСйствовали. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π’Π‘ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° дСсятка ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ΅ состояниС. И Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚ рСкомСндация: ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ простых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ… Π² вычислСния Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ влияниС Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ состояния ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

БСйчас ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π° Π² программисты ΠΎΡ‡Π΅Π½ΡŒ высок, ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Π±Ρ‹Ρ‚ΡŒ вострСбованным Ρƒ программиста вряд Π»ΠΈ получится.

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

ООП-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ написаниС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΌ добавлСния ΠΊ Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ хранятся Π² экзСмплярС класса вмСстС с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ООП зависят ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ характСризуСтся слабой связью Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½Π° ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ чтСния ΠΈ измСнСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

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

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ стоит ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Π΅ΡˆΠ°Π΅ΠΌΡƒΡŽ Π²Π°ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ выбранная сСгодня Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°ΡΒ» ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° Π½Π΅ Π²Ρ‹Π½ΡƒΠ΄ΠΈΡ‚ вас Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»Π³ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π§Ρ‚ΠΎ Π΄ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ стоит ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ООП, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π±ΠΎΠ»Π΅Π΅ «традиционная» ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°, которая ΠΌΠ½ΠΎΠ³ΠΎ Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Но стоит ΠΈΠΌΠ΅Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ ЀП, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρƒ сСбя Π² арсСналС Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ инструмСнт.

НапоминаСм, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ свой вопрос экспСртам, Π° ΠΌΡ‹ собСрём Π½Π° Π½Π΅Π³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, Ссли ΠΎΠ½ окаТСтся интСрСсным. Вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ задавались, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² спискС выпусков Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ числу экспСртов ΠΈ ΠΏΡ€ΠΈΡΠ»Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ вашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ вас, Ρ‚ΠΎ ΠΏΠΈΡˆΠΈΡ‚Π΅ Π½Π° experts@tproger.ru, ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π₯ΠΈΠ½Ρ‚ для программистов: Ссли Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ΡΡŒ Π½Π° сорСвнования Huawei Cup, Ρ‚ΠΎ бСсплатно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ ΠΎΠ½Π»Π°ΠΉΠ½-школС для участников. МоТно ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌ ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ·Ρ‹ Π² самом сорСвновании.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ рСгистрации

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

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

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

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

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