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

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


    関連記事

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

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

    【Laravel】SQLの確認はenableQueryLogを使う

    SQLのデバッグのために、SQLとバインドされた値を確認したいことがあります。 その時に使える方法として、よく提示されるのは以下の2つです。 1.enableQueryLogメソッドとgetQuery …

    【Java】SetをStreamで処理する方法 7選!

    概要 前回の【Java】ListをStreamで処理する方法 7選!に続き、Set編です。 基本的にListもSetもCollection型であるため、コーディングに大きな差はありません。 気を付ける …

    Javaで数値(int)を部分一致判定する

    文字列に変換して判定します。 <方法> ・matchesメソッドで正規表現使う。 ・containsメソッドに判定文字を渡す。 また、メソッドに切り出すと、intを変換する処理を個別に書かなくてよくな …

    【Java入門】繰り返し処理(while, for)

    概要 繰り返し処理の制御構造について学んでいきましょう。 繰り返しには以下があります。 while(条件に一致する間だけ繰り返す) do-while(一度必ず実行し、その後は条件に一致する間だけ繰り返 …

    記事を探す

    SpringFramworkの良書

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

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