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

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

投稿日:

目的

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

 

ゴール(実現すること)

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

 

実装する機能

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

 

クラス図

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

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

 

ソースコード

Item class

User class

Main

実行結果

 

参考

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

    ランキング評価する

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

    執筆者:


    comment

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA


    関連記事

    フロントエンジニアとバックエンドエンジニアのどちらになるべきか?

    対象読者 ・これからWebエンジニアを目指す人 ・フロントエンジニアとバックエンドエンジニアの違いを知らない人   フロントエンジニアかバックエンドエンジニアか? ・役割から考える フロント …

    【SpringBoot入門】#4~ headerの作成と埋め込み

    概要 全ての画面で使用するヘッダーを作成します。 そして、Index画面に埋め込むところまでを行います。 共通ヘッダーの作成

    ・&lt …

    オブジェクト指向でじゃんけんを作ってみる

    最近、プログラム自体を書いていない時間を多いので、再勉強がてら少しコードを書いてみました。 何を作ったか? テーマ:じゃんけん(1対1) 言語:Java OOPで考慮したこと ・ゲームを管理するコント …

    【Java】Optionalが処理できないならデフォルト値を返そう

    概要 Optionalはnullである可能性を明示的に返してくれる便利なコンテナ・オブジェクトです。 if(obj == null)… といったことをしなくてよくなったのは素晴らしいことだ …

    エンジニア未経験者の転職が難しくなったので解決策を提案してみる

    現状 コロナ以降、未経験者のエンジニア採用が少しずつなくなっていきました。 それまではポートフォリオを作ったり、ある程度のポテンシャルがあると判断されれば 採用されるということがあったのですが、それが …

    記事を探す

    SpringFramworkの良書

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

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