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

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

投稿日:

目的

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

 

ゴール(実現すること)

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

 

実装する機能

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

 

クラス図

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

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

 

ソースコード

Item class

User class

Main

実行結果

 

参考

  • Wikipedia – Observer パターン
  • 書籍 – 増補改訂版 Java言語で学ぶデザインパターン入門
  • -デザインパターン, Observer, プログラミング
    -,

    執筆者:


    comment

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

    CAPTCHA


    関連記事

    ExcelをA1で拡大率100%にするツール(サブフォルダ全て)

    たくましゅくじょさんのところで公開されていた、 「エクセルで全シートの拡大率を100%にしA1セルを選択するマクロ」 をサブフォルダ全てに対応させたバージョンを作成しました。 会社の納品ドキュメントを …

    【SpringBootチュートリアル】#1~ 開発環境を準備しよう(IDE)

    想定読者 SpringBootを始めて学ぶ方   IDE(Eclipse) IDEにはEclipse以外にもNetBeansやIntelliJがあります。 好みによりますので使いやすいものを …

    【Java】画像ファイルをバイナリで比較する方法

      画像ファイルの比較 比較元ファイル 素材はPhotoACから拝借しました。 コピー元画像:PCを持つ女性 コピーしたファイルとの比較(True) コピー元ファイルをコピーしただけのファイ …

    【JdbcTemplate】IN句に値を入れて複数件取得する方法

    JdbcTemplateでIN句に毎回異なる数の値をセットして、 複数のレコードを取得する場合は、「NamedParameterJdbcTemplate」で取得することができます。 コード例 [cra …

    Springでバリデーションがimportされていないときの対処法

    状況 SpringF/Wでバリデーションを実装したいが、@NotNullや@Minといったアノテーションが使えない。 @NotNullを使おうとすると、import com.sun.istack.No …

    記事を探す

    SpringFramworkの良書

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

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