Kotlin में SOLID सिद्धांत: सिद्धांत और कोड उदाहरणों के साथ व्यवहार

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

SOLID सिद्धांत Kotlin में: सिद्धांत से व्यवहार तक



SOLID — पाँच मौलिक ऑब्जेक्ट-ओरिएंटेड डिज़ाइन सिद्धांतों का संक्षिप्त नाम है, जिन्हें रॉबर्ट मार्टिन (अंकल बॉब) ने प्रतिपादित किया था। ये सिद्धांत लचीला, स्केलेबल और आसानी से रखरखाव योग्य कोड बनाने में मदद करते हैं। इस लेख में हम Kotlin की दुनिया के उदाहरणों के साथ SOLID के प्रत्येक सिद्धांत को समझेंगे, ताकि आप उन्हें तुरंत अपने प्रोजेक्ट्स में लागू कर सकें।



1. Single Responsibility Principle (SRP) — एकल उत्तरदायित्व का सिद्धांत



सिद्धांत: प्रत्येक क्लास में बदलाव का केवल एक ही कारण होना चाहिए। दूसरे शब्दों में, क्लास को एक स्पष्ट रूप से परिभाषित कार्यक्षमता के लिए जिम्मेदार होना चाहिए।



Kotlin में व्यवहार: आइए SRP के एक सामान्य उल्लंघन पर विचार करें, जहाँ एक क्लास डेटा प्रोसेसिंग, आउटपुट और वैलिडेशन सब कुछ कर रही है।



// ❌ SRP का उल्लंघनclass UserManager {    fun registerUser(email: String, password: String) {        if (isValidEmail(email) && isValidPassword(password)) {            saveToDatabase(email, password)            sendWelcomeEmail(email)        }    }

private fun isValidEmail(email: String): Boolean = email.contains("@") private fun isValidPassword(password: String): Boolean = password.length >= 6 private fun saveToDatabase(email: String, password: String) { /* ... */ } private fun sendWelcomeEmail(email: String) { /* ... */ }}


SRP का पालन करते हुए रिफैक्टरिंग:



// ✅ SRP का पालनclass UserValidator {    fun isValidEmail(email: String): Boolean = email.contains("@")    fun isValidPassword(password: String): Boolean = password.length >= 6}

class UserRepository { fun save(email: String, password: String) { /* डेटाबेस में सेव */ }}

class EmailService { fun sendWelcomeEmail(email: String) { /* ईमेल भेजें */ }}

class UserRegistrationService( private val validator: UserValidator, private val repository: UserRepository, private val emailService: EmailService) { fun registerUser(email: String, password: String) { if (validator.isValidEmail(email) && validator.isValidPassword(password)) { repository.save(email, password) emailService.sendWelcomeEmail(email) } }}


2. Open/Closed Principle (OCP) — खुले/बंद का सिद्धांत



सिद्धांत: सॉफ्टवेयर संस्थाएँ (क्लास, मॉड्यूल, फंक्शन) विस्तार के लिए खुली होनी चाहिए, लेकिन संशोधन के लिए बंद। आपको मौजूदा कोड को बदले बिना नई कार्यक्षमता जोड़ने में सक्षम होना चाहिए।



Kotlin में व्यवहार: इंटरफ़ेस और पॉलीमॉर्फिज़्म का उपयोग करें। विभिन्न प्रकारों को संभालने के लिए if-else या when का उपयोग करने के बजाय, एक पदानुक्रम बनाएँ।



// ❌ OCP का उल्लंघनclass DiscountCalculator {    fun calculateDiscount(customerType: String, amount: Double): Double {        return when (customerType) {            "Regular" -> amount * 0.05            "Premium" -> amount * 0.10            "VIP" -> amount * 0.20            else -> 0.0        }    }    // "Gold" जोड़ने के लिए इस मेथड को बदलना होगा!}


// ✅ OCP का पालनinterface DiscountStrategy {    fun applyDiscount(amount: Double): Double}

class RegularDiscount : DiscountStrategy { override fun applyDiscount(amount: Double): Double = amount * 0.05}

class PremiumDiscount : DiscountStrategy { override fun applyDiscount(amount: Double): Double = amount * 0.10}

class VIPDiscount : DiscountStrategy { override fun applyDiscount(amount: Double): Double = amount * 0.20}

// नया प्रकार मौजूदा कोड को बदले बिना जोड़ा गयाclass GoldDiscount : DiscountStrategy { override fun applyDiscount(amount: Double): Double = amount * 0.15}

class DiscountCalculator { fun calculateDiscount(strategy: DiscountStrategy, amount: Double): Double { return strategy.apply

ब्लॉग

पुस्तक अनुशंसाएँ