Junior — Middle
Ar galite pateikti pavyzdį, kaip įgyvendinti SOLID principų atvirumo/uždarymo principą praktikoje?
sobes.tech AI
Atsakymas iš AI
Atviro/uždaro principas sako, kad programinės esmės turi būti atviros plėtrai, bet uždarytos modifikacijai.
Android kūrime tai galima įgyvendinti, pavyzdžiui, naudojant abstrakcijas ir paveldėjimą. Vietoj to, kad keistume esamą klasę, sukuriame naują klasę, kuri plečia funkcionalumą.
Pavyzdys:
// Pagrindinis sąsaja
interface NotificationSender {
fun send(message: String)
}
// Įgyvendinimas siuntimui el. paštu
class EmailSender : NotificationSender {
override fun send(message: String) {
// el. pašto siuntimo logika
}
}
// Vėliau reikia pridėti SMS siuntimą, nekeičiant EmailSender, pridedame naują klasę
class SmsSender : NotificationSender {
override fun send(message: String) {
// SMS siuntimo logika
}
}
// Naudojimas
fun notifyUser(sender: NotificationSender, message: String) {
sender.send(message)
}
Taip, jei norite pridėti naują pranešimo siuntimo būdą, sistemą plečiame kurdami naujas klases, nekeisdami esamo kodo.