Junior — Middle
Կարող եք տալ օրինակ, թե ինչպես իրականացնել բացման/փակման սկզբունքը SOLID սկզբունքներից պրակտիկայում?
sobes.tech AI
Պատասխան AI-ից
Բաց/փակ սկզբունքը ասում է, որ ծրագրային օբյեկտները պետք է բաց լինեն ընդլայնման համար, բայց փակ՝ փոփոխության համար:
Android զարգացման մեջ դա կարելի է իրականացնել, օրինակ, օգտագործելով աբստրակցիաներ և ժառանգություն: Փոխարենը փոփոխել գոյություն ունեցող դասը, մենք ստեղծում ենք նոր դաս, որը ընդլայնում է ֆունկցիոնալությունը:
Օրինակ՝
// Հիմնական ինտերֆեյս
interface NotificationSender {
fun send(message: String)
}
// Email ուղարկելու համար իրականացում
class EmailSender : NotificationSender {
override fun send(message: String) {
// էլփոստ ուղարկելու տրամաբանություն
}
}
// Հետագայում անհրաժեշտ է ավելացնել SMS ուղարկում, առանց EmailSender- ի փոփոխության, ավելացնում ենք նոր դաս
class SmsSender : NotificationSender {
override fun send(message: String) {
// SMS ուղարկելու տրամաբանություն
}
}
// Օգտագործում
fun notifyUser(sender: NotificationSender, message: String) {
sender.send(message)
}
Այսպիսով, եթե ուզում ենք ավելացնել նոր ծանուցման ուղարկման միջոց, մենք ընդլայնում ենք համակարգը նոր դասեր ստեղծելով, առանց փոփոխելու առկա կոդը։