// Notification インターフェイス
interface Notification {
void sendNotification(String message);
}
// EmailNotification クラス
class EmailNotification implements Notification {
private String emailAddress;
public EmailNotification(String emailAddress) {
this.emailAddress = emailAddress;
}
@Override
public void sendNotification(String message) {
// メール送信の実装
System.out.println("Sending email to " + emailAddress + ": " + message);
}
}
// SMSNotification クラス
class SMSNotification implements Notification {
private String phoneNumber;
public SMSNotification(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@Override
public void sendNotification(String message) {
// SMS 送信の実装
System.out.println("Sending SMS to " + phoneNumber + ": " + message);
}
}
この例では、Notification
インターフェイスには sendNotification
メソッドが含まれており、EmailNotification
クラスと SMSNotification
クラスはそれを実装しています。それぞれのクラスでは、具体的な通知の送信手段に合わせて実装が行われています。
通知機能のためのインターフェイス
通知機能のためのインターフェイスを設計する場合、通知を行う共通のメソッドや挙動を定義します。以下に、Notification
インターフェイスの解説を示します。
// Notification インターフェイス
interface Notification {
void sendNotification(String message);
}
Notification
インターフェイス: このインターフェイスは通知の基本的な挙動を定義しています。void sendNotification(String message)
: 通知を送信するためのメソッドです。メッセージを引数として受け取り、具体的な通知の送信手段は各クラスで実装します。
このインターフェイスを実装するクラス(例:EmailNotification
、SMSNotification
)では、sendNotification
メソッドの具体的な実装が行われます。各クラスは異なる通知手段を担当し、共通のインターフェイスを通して統一的に扱うことができます。
// EmailNotification クラス
class EmailNotification implements Notification {
private String emailAddress;
public EmailNotification(String emailAddress) {
this.emailAddress = emailAddress;
}
@Override
public void sendNotification(String message) {
// メール送信の実装
System.out.println("Sending email to " + emailAddress + ": " + message);
}
}
// SMSNotification クラス
class SMSNotification implements Notification {
private String phoneNumber;
public SMSNotification(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@Override
public void sendNotification(String message) {
// SMS 送信の実装
System.out.println("Sending SMS to " + phoneNumber + ": " + message);
}
}
このようなインターフェイスを使用することで、通知機能を提供するクラスを柔軟かつ統一的に扱うことができます。異なる通知手段を追加する場合でも、Notification
インターフェイスを実装することで一貫性を保ちつつ、新しい実装を追加できます。