Trong phát triển phần mềm hiện đại, tạo khung ghi chép linh hoạt và bảo trì được là cần thiết để gỡ lỗi và theo dõi hữu hiệu. Chuỗi tính năng trách nhiệm cung cấp một cách mạnh mẽ để thiết kế hệ thống như thế bằng cách cho phép nhiều người quản lý xử lý thông điệp ghi lưu theo cách không rõ ràng. Bài này khám phá cách thiết kế khung ghi chép theo trình tự theo trình tự theo trình tự theo thứ tự theo thứ tự C# bằng mẫu này.

Hiểu về sự ràng buộc của gương mẫu trách nhiệm

Chuỗi các kiểu trách nhiệm bao gồm việc truyền một yêu cầu cùng với một chuỗi quản lý cho đến khi một trong số họ xử lý nó. Trong việc ghi nhật ký, mỗi người có thể quyết định xử lý thông điệp ghi nhật ký, chuyển nó đi, hoặc cả hai. Cách này khuyến khích tính linh hoạt, vì người quản lý mới có thể được thêm vào mà không cần sửa đổi mã đã có.

Thiết kế phần mềm tạo khung ghi lưu

Để thực hiện mô hình này, xác định một lớp đăng nhập trừu tượng bao gồm một tham chiếu đến người quản lý tiếp theo. Các bản ghi tiểu sử thừa kế từ lớp này và thực hiện cách xử lý logic riêng của họ. Các thành phần chính bao gồm:

  • Trình ghi lưu bản quyền ): lớp cơ bản với một phương pháp để xử lý tin nhắn và một tham chiếu đến người đăng nhập tiếp theo.
  • Các bản ghi lưu [FLT: 1]: thực hiện cụ thể như boardlogger, FileLogger, vv.
  • Lligger Chain ) chuỗi các bộ quản lý thông điệp ghi lưu thông điệp.

Đang thực hiện bản ghi trừu tượng

Lớp trừu tượng định nghĩa một phương pháp để xử lý thông điệp hoặc chuyển tiếp thông điệp, cũng bao gồm một phương pháp để thiết lập khúc cây tiếp theo trong chuỗi.

public abstract class Logger
{
 protected Logger nextLogger;

 public void SetNext(Logger next)
 {
 nextLogger = next;
 }

 public void Log(string message)
 {
 if (CanHandle(message))
 {
 WriteMessage(message);
 }
 if (nextLogger != null)
 {
 nextLogger.Log(message);
 }
 }

 protected abstract bool CanHandle(string message);
 protected abstract void WriteMessage(string message);
}

Đang tạo bản ghi lưu riêng

Mỗi trình ghi lưu bê tông ghi đè ) và phương pháp để xác định xử lý logic. Ví dụ, một trình ghi lại bàn giao tiếp có thể xử lý mọi tin nhắn, trong khi trình sao chép tập tin chỉ xử lý thông điệp lỗi.

public class ConsoleLogger : Logger
{
 protected override bool CanHandle(string message)
 {
 // Handle all messages
 return true;
 }

 protected override void WriteMessage(string message)
 {
 Console.WriteLine($"Console: {message}");
 }
}

public class ErrorFileLogger : Logger
{
 protected override bool CanHandle(string message)
 {
 // Example: handle only error messages
 return message.Contains("Error");
 }

 protected override void WriteMessage(string message)
 {
 // Write to error log file
 File.AppendAllText("error.log", message + Environment.NewLine);
 }
}

Thu thập sự kiện người ta bị xích

Để thiết lập hệ thống ghi nhật ký, lập tức các máy ghi nhật ký và liên kết chúng theo thứ tự mong muốn. khi một thông điệp được ghi lại, nó đi qua chuỗi, cho phép mỗi người điều khiển xử lý nó nếu ứng dụng.

var consoleLogger = new ConsoleLogger();
var errorLogger = new ErrorFileLogger();

consoleLogger.SetNext(errorLogger);

// Usage
consoleLogger.Log("This is a regular message.");
consoleLogger.Log("Error: Something went wrong.");

Lợi ích của việc dùng gương mẫu

Thi hành một khung đăng nhập với chuỗi trách nhiệm mang lại nhiều lợi ích:

  • [FLT: 0] Khả năng:[FLT: 1] dễ dàng thêm người quản lý mới mà không sửa đổi mã đã có.
  • Đang thực hiện: các bộ xử lý hoạt động độc lập, khuyến khích thiết kế mô- đun.
  • Khả năng đọc: Cấu hình chuỗi khác nhau cho các kịch bản khác nhau.

Kết luận

Thiết kế một khung ghi chép theo mô- đun dùng chuỗi trách nhiệm trong C# tăng khả năng bảo trì và khả năng xác định. Bằng cách giảm thiểu bộ quản lý và cho phép cấu hình chuỗi dây xích năng động, các nhà phát triển có thể tạo ra hệ thống ghi chép mạnh mẽ thích hợp với nhu cầu ứng với ứng dụng của họ.