Bài tập C#

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

C#
Chạy code →
Program.cs
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");
}
Kết quả khi chạy
SMS: Shipped

Luyện tập với trình gỡ lỗi

Đặt breakpoint ở một phép gán hoặc điều kiện quan trọng, bấm Debug và xem giá trị các biến cục bộ (local variable) trước khi bước sang dòng tiếp theo.

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