Sobes.tech
Junior — Middle

Tudsz példát mondani arra, hogyan valósítsd meg a nyitvatartás/zárás elvét a SOLID elvek gyakorlati alkalmazásában?

sobes.tech MI

Válasz az MI-től

A nyitott/zárt elv szerint a szoftver entitásoknak nyitottnak kell lenniük a bővítésre, de zártnak a módosításra.

Android fejlesztésben ezt például absztrakciók és öröklődés használatával lehet megvalósítani. Ahelyett, hogy meglévő osztályt módosítanánk, létrehozunk egy új osztályt, amely kibővíti a funkcionalitást.

Példa:

// Alap interfész
interface NotificationSender {
    fun send(message: String)
}

// Email küldéshez implementáció
class EmailSender : NotificationSender {
    override fun send(message: String) {
        // email küldési logika
    }
}

// Később, SMS küldést kell hozzáadni, anélkül, hogy módosítanánk az EmailSender-t, új osztályt adunk hozzá
class SmsSender : NotificationSender {
    override fun send(message: String) {
        // SMS küldési logika
    }
}

// Használat
fun notifyUser(sender: NotificationSender, message: String) {
    sender.send(message)
}

Így, ha új értesítési küldési módot szeretnénk hozzáadni, a rendszert új osztályok létrehozásával bővítjük, anélkül, hogy a meglévő kódot módosítanánk.