Java Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° | Spring Boot Backend & Architecture. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΠΆΠ°Π²Π° Π΄Π»Ρ Developer. IT Π‘ΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ Coding Π·Π°Π΄Π°ΡΠΈ. Π£ΡΠΎΠΊΠΈ ΠΈ ΠΊΡΡΡΡ Π΄Π»Ρ ΡΠΎΡΡΠ° Π² Tech.
ΠΠ°ΡΠΊΠ° Β· 1 ΠΈΡΠ½Ρ 2026 Π³.
π οΈ SOLID: ΠΠΎΡΠ΅ΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ?
π οΈ SOLID: ΠΠΎΡΠ΅ΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ? Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ SOLID β ΠΏΡΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡ Ρ ΠΎΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΠ΅ΡΠ½Π΅Ρ ΠΏΠΎ ΡΠ²Π°ΠΌ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΡ ΠΌΠ΅ΡΡΡΠ΅Π², ΡΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ β ΡΠ²ΠΎΠΈ Π»ΡΡΡΠΈΠ΅ Π΄ΡΡΠ·ΡΡ. 1. Single Responsibility Principle (SRP) ΠΠ΄Π½Π° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ β ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ. ΠΡΠ»ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ° Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ, Π·Π½Π°ΡΠΈΡ, ΠΎΠ½ Π½Π°ΡΡΡΠ°Π΅Ρ SRP. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ»ΠΎΠΌΠ°ΡΡ Π΄ΡΡΠ³ΡΡ. β ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ: class ReportGenerator { void generateReport() { /* ΠΠΎΠ³ΠΈΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΡΠ΅ΡΠ° */ } } class ReportSaver { void saveReport() { /* ΠΠΎΠ³ΠΈΠΊΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° */ } } β ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ (Π²ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅): class ReportService { void generateAndSaveReport() { /* ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ + ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ° */ } } 2. Open/Closed Principle (OCP) ΠΠΎΠ΄ ΠΎΡΠΊΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π·Π°ΠΊΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄, Π° Π½Π΅ ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ. β ΠΡΠΈΠΌΠ΅Ρ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ: interface Payment { void process(); } class CreditCardPayment implements Payment { public void process() { /* ΠΠΎΠ³ΠΈΠΊΠ° ΠΎΠΏΠ»Π°ΡΡ ΠΊΠ°ΡΡΠΎΠΉ */ } } class PayPalPayment implements Payment { public void process() { /* ΠΠΎΠ³ΠΈΠΊΠ° ΠΎΠΏΠ»Π°ΡΡ PayPal */ } } Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΠ»Π°ΡΡ, ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π² Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ. 3. Liskov Substitution Principle (LSP) ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅. ΠΡΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°. β ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ LSP: class Bird { void fly() { /* ΠΠ΅ΡΠ°Π΅Ρ */ } } class Penguin extends Bird { void fly() { throw new UnsupportedOperationException("ΠΠΈΠ½Π³Π²ΠΈΠ½Ρ Π½Π΅ Π»Π΅ΡΠ°ΡΡ!"); } } ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Penguin Π½Π°ΡΡΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. β ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ: interface Bird { } interface FlyingBird extends Bird { void fly(); } class Sparrow implements FlyingBird { public void fly() { /* ΠΠ΅ΡΠ°Π΅Ρ */ } } class Penguin implements Bird { // ΠΠΈΠ½Π³Π²ΠΈΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Π° fly() } 4. Interface Segregation Principle (ISP) ΠΡΡΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠ»ΡΡΠΎΠΉ. β ΠΠ»ΠΎΡ ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: interface Worker { void work(); void eat(); } class Robot implements Worker { public void work() { /* Π Π°Π±ΠΎΡΠ°Π΅Ρ */ } public void eat() { throw new UnsupportedOperationException("Π ΠΎΠ±ΠΎΡΡ Π½Π΅ Π΅Π΄ΡΡ!"); } } β Π Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ: interface Workable { void work(); } interface Eatable { void eat(); } class Robot implements Workable { public void work() { /* Π Π°Π±ΠΎΡΠ°Π΅Ρ */ } } 5. Dependency Inversion Principle (DIP) ΠΠΎΠ΄ΡΠ»ΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ±Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ. β ΠΡΡΡΠΊΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ: class Lamp { void turnOn() { /* ΠΠΊΠ»ΡΡΠΈΡΡ */ } } class Switch { private Lamp lamp; Switch(Lamp lamp) { this.lamp = lamp; } void press() { lamp.turnOn(); } } β ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ: interface Switchable { void turnOn(); } class Lamp implements Switchable { public void turnOn() { /* ΠΠΊΠ»ΡΡΠΈΡΡ */ } } class Switch { private Switchable device; Switch(Switchable device) { this.device = device; } void press() { device.turnOn(); } } π ΠΡΠΎΠ³ ΠΡΠΈΠ½ΡΠΈΠΏΡ SOLID ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΠΈΡΠ°ΡΡ Π³ΠΈΠ±ΠΊΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄. ΠΡΠ»ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΈΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ, ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ ΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ. π @BookJava
ΠΠ°Π½Π°Π» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΠ°ΠΊΡΠΈΠΌΠ΅ΡΠ΅ΡΠ°
1Β 605 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Β· ΠΠ°ΡΠΊΠ°