কম্পিউটার

কিভাবে সি# ব্যবহার করে একক দায়িত্ব নীতি বাস্তবায়ন করবেন?


একটি ক্লাস পরিবর্তন করার শুধুমাত্র একটি কারণ থাকা উচিত।

সংজ্ঞা − এই প্রসঙ্গে, দায়িত্ব পরিবর্তনের একটি কারণ হিসেবে বিবেচিত হয়৷

এই নীতিটি বলে যে যদি আমাদের কাছে একটি ক্লাসের জন্য পরিবর্তন করার 2টি কারণ থাকে তবে আমাদের কার্যকারিতাটিকে দুটি শ্রেণীতে বিভক্ত করতে হবে। প্রতিটি শ্রেণী শুধুমাত্র একটি দায়িত্ব পরিচালনা করবে এবং ভবিষ্যতে যদি আমাদের একটি পরিবর্তন করতে হয় তবে আমরা এটি পরিচালনা করতে যাচ্ছি সেই শ্রেণীতে। যখন আমাদের আরও বেশি দায়িত্ব সহ একটি ক্লাসে পরিবর্তন করতে হবে তখন পরিবর্তনটি ক্লাসের অন্যান্য দায়িত্বের সাথে সম্পর্কিত অন্যান্য ফাংশনগুলিকে প্রভাবিত করতে পারে৷

উদাহরণ

একক দায়িত্ব নীতির আগে কোড

using System;
using System.Net.Mail;
namespace SolidPrinciples.Single.Responsibility.Principle.Before {
   class Program{
      public static void SendInvite(string email,string firstName,string lastname){
         if(String.IsNullOrWhiteSpace(firstName)|| String.IsNullOrWhiteSpace(lastname)){
            throw new Exception("Name is not valid");
         }
         if (!email.Contains("@") || !email.Contains(".")){
            throw new Exception("Email is not Valid!");
         }
         SmtpClient client = new SmtpClient();
         client.Send(new MailMessage("Test@gmail.com", email) { Subject="Please Join the Party!"})
      }
   }
}

একক দায়িত্ব নীতির পরে কোড

using System;
using System.Net.Mail;
namespace SolidPrinciples.Single.Responsibility.Principle.After{
   internal class Program{
      public static void SendInvite(string email, string firstName, string lastname){
         UserNameService.Validate(firstName, lastname);
         EmailService.validate(email);
         SmtpClient client = new SmtpClient();
         client.Send(new MailMessage("Test@gmail.com", email) { Subject = "Please Join the Party!" });
      }
   }
   public static class UserNameService{
      public static void Validate(string firstname, string lastName){
         if (string.IsNullOrWhiteSpace(firstname) || string.IsNullOrWhiteSpace(lastName)){
            throw new Exception("Name is not valid");
         }
      }
   }
   public static class EmailService{
      public static void validate(string email){
         if (!email.Contains("@") || !email.Contains(".")){
            throw new Exception("Email is not Valid!");
         }
      }
   }
}

  1. কিভাবে জাভা 9 এ JShell এ একটি স্ট্রিং বাস্তবায়ন করবেন?

  2. জাভা রেজেক্স ব্যবহার করে একটি একক স্পেস ব্যবহার করে একটি স্ট্রিংয়ের একাধিক স্পেস কীভাবে প্রতিস্থাপন করবেন?

  3. পাইথন 3 এ একটি অভিধান ব্যবহার করে আমি কীভাবে একটি স্ট্রিং ফর্ম্যাট করব?

  4. পাইথন ব্যবহার করে স্ট্রিংকে কীভাবে JSON এ রূপান্তর করবেন?