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

सी # का उपयोग कर ओपन क्लोज्ड सिद्धांत को कैसे कार्यान्वित करें?

सॉफ्टवेयर इकाइयां जैसे कक्षाएं, मॉड्यूल और कार्य विस्तार के लिए खुले होने चाहिए लेकिन संशोधनों के लिए बंद होने चाहिए।

परिभाषा - ओपन क्लोज सिद्धांत कहता है कि कोड का डिजाइन और लेखन इस तरह से किया जाना चाहिए कि मौजूदा कोड में न्यूनतम परिवर्तनों के साथ नई कार्यक्षमता जोड़ी जाए। डिजाइन इस तरह से किया जाना चाहिए कि नई कार्यक्षमता को नए वर्गों के रूप में जोड़ने की अनुमति दी जाए, जितना संभव हो सके मौजूदा कोड को अपरिवर्तित रखते हुए।

उदाहरण

ओपन क्लोज्ड सिद्धांत से पहले कोड

using System;
using System.Net.Mail;
namespace SolidPrinciples.Open.Closed.Principle.Before{
   public class Rectangle{
      public int Width { get; set; }
      public int Height { get; set; }
   }
   public class CombinedAreaCalculator{
      public double Area (object[] shapes){
         double area = 0;
         foreach (var shape in shapes){
            if(shape is Rectangle){
               Rectangle rectangle = (Rectangle)shape;
               area += rectangle.Width * rectangle.Height;
            }
         }
         return area;
      }
   }
   public class Circle{
      public double Radius { get; set; }
   }
   public class CombinedAreaCalculatorChange{
      public double Area(object[] shapes){
         double area = 0;
         foreach (var shape in shapes){
            if (shape is Rectangle){
               Rectangle rectangle = (Rectangle)shape;
               area += rectangle.Width * rectangle.Height;
            }
            if (shape is Circle){
               Circle circle = (Circle)shape;
               area += (circle.Radius * circle.Radius) * Math.PI;
            }
         }
         return area;
      }
   }
}

ओपनक्लोज्ड सिद्धांत के बाद कोड

namespace SolidPrinciples.Open.Closed.Principle.After{
   public abstract class Shape{
      public abstract double Area();
   }
   public class Rectangle: Shape{
      public int Width { get; set; }
      public int Height { get; set; }
      public override double Area(){
         return Width * Height;
      }
   }
   public class Circle : Shape{
      public double Radius { get; set; }
      public override double Area(){
         return Radius * Radius * Math.PI;
      }
   }
   public class CombinedAreaCalculator{
      public double Area (Shape[] shapes){
         double area = 0;
         foreach (var shape in shapes){
            area += shape.Area();
         }
         return area;
      }
   }
}

  1. जावा 9 में JavaFX का उपयोग करके JShell को कैसे कार्यान्वित करें?

    जेशेल नमूना अभिव्यक्तियों को लागू करने के लिए उपयोग किया जाने वाला एक इंटरैक्टिव टूल है। हम JavaFX . का उपयोग करके JShell को प्रोग्रामेटिक रूप से कार्यान्वित कर सकते हैं एप्लिकेशन तो हमें नीचे सूचीबद्ध जावा प्रोग्राम में कुछ पैकेज आयात करने की आवश्यकता है jdk.jshell.JShell आयात करें; jdk.jshell.Sn

  1. हम जावा में स्टैक का उपयोग करके एक कतार को कैसे लागू कर सकते हैं?

    एक कतार वर्ग संग्रह का विस्तार करता है इंटरफ़ेस और यह सम्मिलित करने का समर्थन करता है और फर्स्ट-इन-फर्स्ट-आउट (FIFO) का उपयोग करके संचालन को हटाता है . एक ढेर वेक्टर . का उपवर्ग है वर्ग और यह लास्ट-इन-फर्स्ट-आउट (LIFO) . का प्रतिनिधित्व करता है वस्तुओं का ढेर। स्टैक के शीर्ष पर जोड़ा गया अंतिम त

  1. टिंकर का उपयोग करके बाहरी प्रोग्राम कैसे खोलें?

    कभी-कभी, एप्लिकेशन बनाते समय, हमें बाहरी प्रोग्राम और एप्लिकेशन के साथ सहभागिता करने की आवश्यकता होती है। सिस्टम के अनुप्रयोगों और कार्यक्रमों के साथ बातचीत करने के लिए, हमें os . का उपयोग करना होगा पायथन में मॉड्यूल। इस लेख में, हम देखेंगे कि हम पायथन में ओएस मॉड्यूल का उपयोग करके बाहरी कार्यक्रमो