Gửi thông báo qua interface trong C#
Trong bài học này, bạn sẽ gửi thông báo qua một interface, giúp dễ dàng thay đổi hoặc thêm kênh gửi mới mà không sửa code cũ.
Giới thiệu
Interface tách phần code gửi thông báo khỏi kênh gửi cụ thể như SMS, email hay ứng dụng chat. Phần code sử dụng chỉ cần biết đối tượng có phương thức Send, còn việc gửi bằng cách nào do từng class tự quyết định.
Phương thức Notify nhận tham số kiểu IChannel nên có thể làm việc với bất kỳ class nào cài đặt interface này. Khi truyền vào đối tượng Sms, thông báo được gửi qua SMS và in ra SMS: Shipped. Sau này thêm kênh email, bạn chỉ cần tạo class mới mà không phải sửa Notify.
Ví dụ C# chạy được
using System;
interface IChannel { void Send(string message); }
class Sms : IChannel { public void Send(string message) => Console.WriteLine($"SMS: {message}"); }
class Program
{
static void Notify(IChannel channel, string message) => channel.Send(message);
static void Main() => Notify(new Sms(), "Shipped");
}
SMS: ShippedLuyện tập với trình gỡ lỗi
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách