Maison >développement back-end >Tutoriel C#.Net >Comment implémenter le principe de responsabilité unique en utilisant C# ?

Comment implémenter le principe de responsabilité unique en utilisant C# ?

WBOY
WBOYavant
2023-09-12 17:21:021030parcourir

Comment implémenter le principe de responsabilité unique en utilisant C# ?

Une classe ne devrait avoir qu'une seule raison de changer.

Définition - Dans ce cas, la responsabilité est considérée comme un motif de changement.

Ce principe stipule que si nous avons deux raisons de changer une classe, nous devons diviser la fonctionnalité en deux classes. Chaque classe ne gère qu'une seule responsabilité, et si nous devons apporter un changement à l'avenir, nous le ferons dans la classe qui le gère. Lorsque nous devons apporter des modifications à une classe qui a plus de responsabilités, ce changement peut affecter d'autres fonctionnalités liées à d'autres responsabilités de cette classe.

Exemple

Principe de responsabilité unique avant le code

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!"})
      }
   }
}

Écrivez le code en suivant le principe de responsabilité unique

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!");
         }
      }
   }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer