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

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

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

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

C# में SOLID सिद्धांत: सिद्धांत और व्यवहार



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



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



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



C# में व्यवहार: आइए SRP के उल्लंघन और उसके सुधार का एक उदाहरण देखें।



SRP का उल्लंघन:

public class OrderService{    public void CreateOrder(Order order)    {        // ऑर्डर बनाने का तर्क        Console.WriteLine("ऑर्डर बनाया गया");                // ईमेल भेजने का तर्क        SendEmail("order@example.com", "नया ऑर्डर");                // लॉगिंग का तर्क        File.WriteAllText("log.txt", "ऑर्डर बनाया गया");    }}


वर्ग OrderService तीन अलग-अलग कार्यों के लिए जिम्मेदार है: ऑर्डर बनाना, ईमेल भेजना और लॉगिंग। यह SRP का उल्लंघन करता है।



SRP का पालन करते हुए सुधार:

public class OrderService{    private readonly IEmailService _emailService;    private readonly ILogger _logger;        public OrderService(IEmailService emailService, ILogger logger)    {        _emailService = emailService;        _logger = logger;    }        public void CreateOrder(Order order)    {        // ऑर्डर बनाने का तर्क        Console.WriteLine("ऑर्डर बनाया गया");                _emailService.SendEmail("order@example.com", "नया ऑर्डर");        _logger.Log("ऑर्डर बनाया गया");    }}

public interface IEmailService{ void SendEmail(string to, string message);}

public class EmailService : IEmailService{ public void SendEmail(string to, string message) { Console.WriteLine($"ईमेल {to} पर भेजा गया"); }}

public interface ILogger{ void Log(string message);}

public class FileLogger : ILogger{ public void Log(string message) { File.WriteAllText("log.txt", message); }}


अब प्रत्येक वर्ग केवल अपने कार्य के लिए जिम्मेदार है: OrderService — ऑर्डर प्रबंधन के लिए, EmailService — ईमेल भेजने के लिए, FileLogger — लॉगिंग के लिए।



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



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



C# में व्यवहार: मौजूदा कोड को बदले बिना कार्यक्षमता बढ़ाने के लिए इनहेरिटेंस और इंटरफ़ेस का उपयोग करें।



OCP का उल्लंघन:

public class PaymentProcessor{    public void ProcessPayment(string paymentType, decimal amount)    {        if (paymentType == "CreditCard")        {            // क्रेडिट कार्ड प्रोसेसिंग        }        else if (paymentType == "PayPal")        {            // PayPal प्रोसेसिंग        }        // नए प्रकार को जोड़ने के लिए वर्ग में बदलाव की आवश्यकता है    }}


OCP का पालन करते हुए सुधार:

public interface IPaymentMethod{    void Process(decimal amount);}

public class CreditCardPayment : IPaymentMethod{ public void Process(decimal amount) { Console.WriteLine($"क्रेडिट कार्ड प्रोसेसिंग: {amount}"); }}

public class PayPalPayment : IPaymentMethod{ public void Process(decimal amount) { Console.WriteLine($"PayPal प्रोसेसिंग: {amount}"); }}

public class PaymentProcessor{ public void ProcessPayment(IPaymentMethod paymentMethod, decimal amount) { paymen

ब्लॉग

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