C#のインターフェースを通して通知を送る
このレッスンでは、インターフェースを通して通知を送り、既存のコードを直さずに送る手段を変えたり追加したりしやすくします。
はじめに
インターフェースは、通知を送るコードを、SMS、メール、チャットアプリといった具体的な送る手段から切り離します。使う側のコードはオブジェクトがSendメソッドを持っていることだけを知っていればよく、どう送るかは各クラスが決めます。
Notifyメソッドの引数はIChannel型なので、このインターフェースを実装したどのクラスとも動きます。Smsオブジェクトを渡すと通知はSMSで送られ、SMS: Shippedと表示されます。後からメールの手段を追加したいときは、Notifyを直さずに新しいクラスを作るだけです。
実行できる C# の例
C#
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");
}
SMS: Shippedデバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ