54 lines
2.1 KiB
PHP
54 lines
2.1 KiB
PHP
<?php
|
|
/*
|
|
* 多態性とインタフェース: メッセージ送信システム
|
|
*
|
|
* MessageSenderInterface.php、LineMessage.php、SlackMessage.php、MessageService.php を実装してください
|
|
*
|
|
* 【課題】
|
|
* メッセージ送信サービスを作成します。
|
|
* LineとSlackの2種類のメッセージ送信方法があります。
|
|
* MessageServiceクラスは、インタフェース型を引数で受け取ることで、
|
|
* どちらのメッセージ送信方法でも使えるようにします(多態性)。
|
|
*
|
|
* 【ポイント】
|
|
* MessageServiceの sendMessage メソッドは、
|
|
* MessageSenderInterface型の引数を受け取ります。
|
|
* これにより、LineMessage でも SlackMessage でも、
|
|
* 同じメソッドで送信できます(インタフェースの利点)。
|
|
*/
|
|
|
|
require_once __DIR__ . '/common/MessageSenderInterface.php';
|
|
require_once __DIR__ . '/common/LineMessage.php';
|
|
require_once __DIR__ . '/common/SlackMessage.php';
|
|
require_once __DIR__ . '/common/MessageService.php';
|
|
|
|
use Common\LineMessage;
|
|
use Common\SlackMessage;
|
|
use Common\MessageService;
|
|
|
|
// TODO: MessageServiceのインスタンスを生成してください
|
|
// 変数名は $service
|
|
|
|
echo "=== メッセージ送信テスト ===<br><br>";
|
|
|
|
// TODO: LineMessageのインスタンスを生成してください
|
|
// コンストラクタには "山田太郎" を渡してください
|
|
// 変数名は $lineMessage
|
|
|
|
// TODO: $service の sendMessage メソッドを呼び出してください
|
|
// 第1引数: $lineMessage
|
|
// 第2引数: "会議は10時からです"
|
|
// ※ここがポイント!引数の型は MessageSenderInterface なので、
|
|
// LineMessage でも SlackMessage でも渡せます
|
|
|
|
echo "<br>";
|
|
|
|
// TODO: SlackMessageのインスタンスを生成してください
|
|
// コンストラクタには "#general" を渡してください
|
|
// 変数名は $slackMessage
|
|
|
|
// TODO: $service の sendMessage メソッドを呼び出してください
|
|
// 第1引数: $slackMessage
|
|
// 第2引数: "デプロイが完了しました"
|
|
// ※同じ sendMessage メソッドで、SlackMessage も送信できます!
|