Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

लिस्कोव प्रतिस्थापन सिद्धांत क्या है और सी # में कैसे कार्यान्वित किया जाए?

व्युत्पन्न प्रकार उनके मूल प्रकारों के लिए पूरी तरह से प्रतिस्थापन योग्य होने चाहिए।

परिभाषा:

हमें एक बाल वर्ग के साथ ऐसा व्यवहार करने में सक्षम होना चाहिए जैसे कि वह मूल वर्ग हो। अनिवार्य रूप से इसका मतलब है कि सभी व्युत्पन्न वर्गों को अपने मूल वर्ग की कार्यक्षमता को बनाए रखना चाहिए और माता-पिता द्वारा प्रदान की जाने वाली किसी भी कार्यक्षमता को प्रतिस्थापित नहीं कर सकते।

लिस्कोव प्रतिस्थापन से पहले

public class Ellipse {
   public double MajorAxis { get; set; }
   public double MinorAxis { get; set; }

   public virtual void SetMajorAxis(double majorAxis){
      this.MajorAxis = majorAxis;
   }
   public virtual void SetMinorAxis(double minorAxis){
      this.MajorAxis = minorAxis;
   }
   public virtual double Area() {
      return MajorAxis * MinorAxis * Math.PI;
   }
}
public class Circle : Ellipse {
   public override void SetMajorAxis(double majorAxis) {
      base.SetMajorAxis(majorAxis);
      this.MinorAxis = majorAxis; //In a cirle, each axis is identical
   }
}

public class Result {
   public void Method1() {
      Circle circle = new Circle();
      circle.SetMajorAxis(5);
      circle.SetMinorAxis(4);
      var area = circle.Area(); //5*4 = 20, but we expected 5*5 = 25
   }
}

लिस्कोव प्रतिस्थापन के बाद

internal class Program {
   private static void Main() {
   }
}
public class Ellipse {
   public double MajorAxis { get; set; }
   public double MinorAxis { get; set; }

   public virtual void SetMajorAxis(double majorAxis) {
      MajorAxis = majorAxis;
   }
   public virtual void SetMinorAxis(double minorAxis) {
      MajorAxis = minorAxis;
   }
   public virtual double Area() {
      return MajorAxis * MinorAxis * Math.PI;
   }
}
public class Circle : Ellipse {
   public override void SetMajorAxis(double majorAxis) {
      base.SetMajorAxis(majorAxis);
      this.MinorAxis = majorAxis; //In a cirle, each axis is identical
   }
   public override void SetMinorAxis(double minorAxis) {
      base.SetMinorAxis(minorAxis);
      this.MajorAxis = minorAxis;
   }
   public override double Area() {
      return base.Area();
   }
}

public class Circle1 {
   public double Radius { get; set; }
   public void SetRadius(double radius) {
      this.Radius = radius;
   }
   public double Area() {
      return this.Radius * this.Radius * Math.PI;
   }
}

  1. हार्डवेयर त्वरण क्या है और यह कैसे उपयोगी है?

    हार्डवेयर त्वरण एक सामान्य प्रयोजन सीपीयू (सेंट्रल प्रोसेसिंग यूनिट) की तुलना में तेजी से कार्यों के एक संकीर्ण सेट को करने के लिए विशेष रूप से निर्मित कंप्यूटर हार्डवेयर (यानी, सिलिकॉन माइक्रोचिप्स) का उपयोग करता है। उपयोगकर्ता के रूप में आपके लिए इसका क्या अर्थ है? आपके पास अक्सर अपने अनुप्रयोगों

  1. विंडोज 10 गॉड मोड:क्या है और कैसे करें

    सामग्री: Windows 10 गॉड मोड ओवरव्यू गॉड मोड क्या है? विंडोज़ 10 पर गॉड मोड कैसे सक्रिय करें? Windows 10 गॉड मोड ओवरव्यू जब आप विंडोज सिस्टम पर सभी टूल्स और सेटिंग्स को आसानी से और जल्दी से एक्सेस करना चाहते हैं, तो संभव है कि आप विंडोज मास्टर कंट्रोल पैनल को सक्रिय करें। (या तथाकथित गॉड मोड ब

  1. BIOS क्या है और BIOS को कैसे अपडेट करें?

    BIOS क्या है और BIOS को कैसे अपडेट करें : जब भी आप अपने पीसी में कीबोर्ड, पावर या सॉफ्टवेयर से संबंधित किसी भी समस्या का सामना करते हैं जैसे इंटरनेट कनेक्टिविटी, पीसी की गति, आदि तो ज्यादातर समस्या किसी न किसी तरह से BIOS से जुड़ी होती है। यदि आप इसके बारे में किसी मरम्मत या आईटी व्यक्ति से परामर्श