Eine Klasse sollte nur einen Grund haben, sich zu ändern.
Definition – In diesem Fall gilt Verantwortung als Grund für die Änderung.
Dieses Prinzip besagt, dass wir die Funktionalität in zwei Klassen aufteilen müssen, wenn wir zwei Gründe haben, eine Klasse zu ändern. Jede Klasse übernimmt nur eine Verantwortung, und wenn wir in Zukunft eine Änderung vornehmen müssen, werden wir sie in der Klasse vornehmen, die sie übernimmt. Wenn wir Änderungen an einer Klasse vornehmen müssen, die mehr Verantwortlichkeiten hat, kann sich diese Änderung auf andere Funktionen auswirken, die mit anderen Verantwortlichkeiten dieser Klasse zusammenhängen.
Prinzip der Einzelverantwortung vor dem 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!"}) } } }
Schreiben Sie Code nach dem Prinzip der Einzelverantwortung
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!"); } } } }
Das obige ist der detaillierte Inhalt vonWie implementiert man das Single-Responsibility-Prinzip mit C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!