Sesebuah kelas sepatutnya hanya mempunyai satu sebab untuk berubah.
Definisi - Dalam kes ini, tanggungjawab dianggap sebagai sebab perubahan.
Prinsip ini menyatakan bahawa jika kita mempunyai dua sebab untuk menukar kelas, kita mesti membahagikan fungsi tersebut kepada dua kelas. Setiap kelas hanya mengendalikan satu tanggungjawab, dan jika kami perlu membuat perubahan pada masa hadapan, kami akan melakukannya dalam kelas yang mengendalikannya. Apabila kita perlu membuat perubahan pada kelas yang mempunyai lebih banyak tanggungjawab, perubahan itu mungkin menjejaskan fungsi lain yang berkaitan dengan tanggungjawab lain kelas itu.
Prinsip Tanggungjawab Tunggal sebelum Kod
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!"); } } } }
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan prinsip tanggungjawab tunggal menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!