デザインパターン プログラミング

Observerパターンってどう使うの?を考える(商品の予約)

投稿日:2020年6月6日 更新日:

目的

Observerパターンの使いどころとなる状況を具体例でもって理解する。

 

ゴール(実現すること)

商品の予約システムにおけるユーザ通知

 

実装する機能

・商品を予約するユーザを登録する(オブザーバーの追加)
・予約はキャンセルできる(オブザーバーの削除)
・入荷されたら登録しているユーザに通知する(オブザーバへの通知)

 

クラス図

※抽象化のメリットが無いので、具象クラスのみとする。

予約するユーザの登録:Item.reserve(User)
予約のキャンセル  :Item.cancel(User)
入荷によるユーザ通知:Item.arrival() -> User.notification()

 

ソースコード

Item class

User class

Main

実行結果

 

参考

  • Wikipedia – Observer パターン
  • 書籍 – 増補改訂版 Java言語で学ぶデザインパターン入門
  •  
    最後までお読み頂き、ありがとうございました!
    ご意見・ご要望がありましたら、遠慮なくコメント下さい!
    もし内容が良かったらランキング評価を頂けると励みになります(^^)

    ランキング評価する

    -デザインパターン, プログラミング
    -,

    執筆者:


    comment

    メールアドレスが公開されることはありません。

    CAPTCHA


    関連記事

    オブジェクト指向とは何なのかを簡単に説明してみる

    オブジェクト指向とは何なのか? これを私の理解を元に、ごくごく簡単に説明してみたいと思います。   オブジェクト指向とは? オブジェクト指向とは何かを説明するために、 「オブジェクト」と「指 …

    【TemplateMethodパターン】売上レポートをテキストとHTML形式で出力分けする事例

    概要 デザインパターンのTemplateMethodパターンの事例です。 デザインパターンは増補改訂版 Java言語で学ぶデザインパターン入門で学ぶことができますし、Qiitaでも取り上げられています …

    VBAが書けるまでにどのくらいかかったか?

    これからVBAを学ぼうとしている人向けに参考情報として書きます。 前提 前提として、私の経歴を少し書いておきます。 ・PHPでのWeb開発1年未満 ・Javaの簡易なアプリは作れる ・SQLも理解して …

    ExcelをA1セルに揃えて拡大率100%にするツール

    (追記:2021年8月18日) サブフォルダを処理対象にするかどうかを選択できるように改修しました。   たくましゅくじょさんのところで公開されていた、 「エクセルで全シートの拡大率を100%にしA1 …

    【Java】ArrayListの使い方まとめ

    概要 ArrayListはOracleの公式ページでも明記しているクラスです。 Java SE 11 Programmer I (1Z0-815-JPN) 試験 インタフェースによる抽象化 インタフェ …

    SpringFramworkの良書

    ■おすすめ教材
    Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

    ※SpringはJavaのFrameworkの1つです。
    変更のしやすさ、保守性の高さが特徴です。