« 【本購入】その場でつかえるしっかり学べるUML2.0 | トップページ | NetJan設計 ユースケース図更新 »

NetJan設計 コマンドの配送と実行

ユーザアクションはViewで検知させ、それをcontrol内にpushで渡し、キューイングする。 controlはタイマーで定期的にキューのチェックを行い、1つずつ取り出して実行(execute)するようにする。

排他処理は2つの部分で行う。

  1. Modelのデータ編集、Modelのデータ参照とその結果を踏まえたコマンド(Com)の実行可否判断、は、checkQueueのコンテキスト内で行うようにする。 この事により、複数のスレッドが同時にModelにアクセスして、片方で編集中にもう片方でコマンドの実行可否を判断する、といった輻輳を防ぐ。
  2. キューイング処理の排他。 キューイングへのpushとpopが輻輳しないよう、synchronizedさせる。 pushとpopそれぞれのメソッドをsynchronizedメソッドにしても意味がないので、pushとpopで連携して排他できるよう、下記のような方法を取る。

  synchronized (this){

    処理内容

  }

上記実現のため、controlパッケージ内のクラスに、メソッドを追加する。

Class_control

ここまでの決定を元にシーケンス図を作成する。

Com_mvc

■ここまで
できるPRO Fedora 8 Linux 完全活用編(DVD付) を参考にして自作PCにLinuxインストールし、麻雀サーバとして立ち上げました。
今はUMLで麻雀ソフトを設計中です。 UMLに関しては、その場でつかえるしっかり学べるUML2.0を、デザインパターンに関しては、オブジェクト指向における再利用のためのデザインパターン を参考にして進めています。

|

« 【本購入】その場でつかえるしっかり学べるUML2.0 | トップページ | NetJan設計 ユースケース図更新 »

麻雀ゲーム作成」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/440382/9984126

この記事へのトラックバック一覧です: NetJan設計 コマンドの配送と実行:

« 【本購入】その場でつかえるしっかり学べるUML2.0 | トップページ | NetJan設計 ユースケース図更新 »