Sobes.tech
Junior — Middle

Vai vari sniegt piemēru, kā īstenot SOLID principu atvērtības/aizvēršanas principu praksē?

sobes.tech AI

Atbilde no AI

Atvērta/slēgta principa saka, ka programmatūras būtības ir jābūt atvērtām paplašināšanai, bet slēgtām modifikācijai.

Android izstrādē to var īstenot, piemēram, izmantojot abstrakcijas un mantošanu. Tā vietā, lai mainītu esošo klasi, mēs izveidojam jaunu klasi, kas paplašina funkcionalitāti.

Piemērs:

// Pamatinterfeiss
interface NotificationSender {
    fun send(message: String)
}

// Implementācija e-pasta sūtīšanai
class EmailSender : NotificationSender {
    override fun send(message: String) {
        // e-pasta sūtīšanas loģika
    }
}

// Vēlāk, ir nepieciešams pievienot SMS sūtīšanu, nemainot EmailSender, pievienojam jaunu klasi
class SmsSender : NotificationSender {
    override fun send(message: String) {
        // SMS sūtīšanas loģika
    }
}

// Izmantošana
fun notifyUser(sender: NotificationSender, message: String) {
    sender.send(message)
}

Tādējādi, ja vēlaties pievienot jaunu paziņojuma sūtīšanas veidu, mēs paplašinām sistēmu, izveidojot jaunas klases, nemainot esošo kodu.