কম্পিউটার

নির্ভরতা বিপরীত নীতি কি এবং কিভাবে C# এ প্রয়োগ করা যায়?


উচ্চ-স্তরের মডিউলগুলি নিম্ন-স্তরের মডিউলগুলির উপর নির্ভর করা উচিত নয়। উভয়েরই বিমূর্ততার উপর নির্ভর করা উচিত। বিমূর্ততা বিশদ বিবরণের উপর নির্ভর করা উচিত নয়। বিশদ বিবরণগুলি বিমূর্ততার উপর নির্ভর করা উচিত৷ এই নীতিটি প্রাথমিকভাবে কোড মডিউলগুলির মধ্যে নির্ভরতা হ্রাস করার সাথে সম্পর্কিত৷

উদাহরণ

নির্ভরতার বিপরীতে কোড

using System;
namespace SolidPrinciples.Dependency.Invertion.Before{
   public class Email{
      public string ToAddress { get; set; }
      public string Subject { get; set; }
      public string Content { get; set; }
      public void SendEmail(){
         //Send email
      }
   }
   public class SMS{
      public string PhoneNumber { get; set; }
      public string Message { get; set; }
      public void SendSMS(){
         //Send sms
      }
   }
   public class Notification{
      private Email _email;
      private SMS _sms;
      public Notification(){
         _email = new Email();
         _sms = new SMS();
      }
      public void Send(){
         _email.SendEmail();
         _sms.SendSMS();
      }
   }
}

নির্ভরতার বিপরীতে কোড

using System.Collections.Generic;
namespace SolidPrinciples.Dependency.Invertion.Before{
   public interface IMessage{
      void SendMessage();
   }
   public class Email: IMessage{
      public string ToAddress { get; set; }
      public string Subject { get; set; }
      public string Content { get; set; }
      public void SendMessage(){
         //Send email
      }
   }
   public class SMS: IMessage{
      public string PhoneNumber { get; set; }
      public string Message { get; set; }
      public void SendMessage(){
         //Send Sms
      }
   }
   public class Notification{
      private ICollection<IMessage> _messages;
      public Notification(ICollection<IMessage> messages){
         this._messages = messages;
      }
      public void Send(){
         foreach (var message in _messages){
            message.SendMessage();
         }
      }
   }
}

  1. ট্রিলার:এটি কী এবং কীভাবে এটি ব্যবহার করবেন

  2. মিউ কি এবং এটি কীভাবে আলাদা?

  3. "পেইন্ট 3D" কী এবং এটি কীভাবে ব্যবহার করা হয়?

  4. BIOS কী এবং কীভাবে BIOS আপডেট করবেন?