no message
This commit is contained in:
53
Question14-AdvancedInheritance/Ex05.php
Normal file
53
Question14-AdvancedInheritance/Ex05.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?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 も送信できます!
|
||||
Reference in New Issue
Block a user