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

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


    関連記事

    プログラミングを上達させるために私がやってきたこと・やっていること

    私の上達過程 写経 自分のレベルに合う本をもとに写経しては、コードの意味を調べて理解し、少しづつ体に染み込ませるように身に着けていきました。 とにかく初心者のころは右も左も分からず、ちょっとしたエラー …

    【Java入門】Integerの使い方まとめ

    概要 「Integerはint型のフィールドを1つだけ持つラッパークラスである」 ということが公式に書かれています。 つまりint型の値を持ち、様々なメソッドを備えたオブジェクト型であるということです …

    メソッドを切り出すメリット。リーダブルなコードで行こう!

    概要 大きなクラス、長いメソッドを書いたり読んだりしていて、ロジックが追えなくなってきています。 私の周りではすごく理解が良く、長い処理でも追っていける人がいますが私はそうではありません。 私はごくご …

    【Java入門】クラスとインスタンスの違いを分かり易い言葉で説明します。

    概要 クラスとインスタンスの違いについて、できるだけ分かり易い言葉や表現で説明します。   クラス 設計書だよ。 以上です。 ほんとマジで。 どんなデータと操作が可能かを決めているだけなので設計書と表 …

    ModelからBindingResultが消える原因と対処方法

    環境 Java(SpringFramework) Thymeleaf 状況 更新画面でバリデーションエラーにより更新が失敗したというようなケースにおいて、 BuindingResultにFormのエラ …

    記事を探す

    SpringFramworkの良書

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

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