New Articles

Recent Comments

  1. Storekeeper 設計編(1)
    1. 09/11 : by ?尚男装
    2. 08/04 : by チャンルー
    3. 07/11 : by 男性用水着 ビキニ
    4. 09/12 : by ヒーハー!!!!
    5. 09/05 : by ついつい・・・
  2. Seesaaで自作HTMLカスタムしてみたの
    1. 08/02 : by 吸引力の変わらないただひとつの…
    2. 08/13 : by テレビ電話 エッチな女の子
    3. 10/29 : by Kelvin Perry
    4. 10/26 : by Emma Erickson
    5. 10/24 : by Vince Shepard
  3. 作るモノ・課題 募集中!
    1. 02/11 : by ポロリン
    2. 02/01 : by PC自作男
    3. 01/27 : by タソタソメソ
    4. 01/27 : by ちょろ毛
    5. 01/19 : by まろゆき
  4. トラックバックのテスト
    1. 10/03 : by english amatuer porn
  5. Storekeeper 設計編(3)
    1. 10/03 : by mature women amatuer

Recent TrackBacks

  1. 12/02 : Seesaaで自作HTMLカスタムしてみたのまげフ
  2. 11/29 : Seesaaで自作HTMLカスタムしてみたのふりす
  3. 11/22 : Seesaaで自作HTMLカスタムしてみたの犬コロ
  4. 11/08 : Seesaaで自作HTMLカスタムしてみたの花びら
  5. 10/25 : Seesaaで自作HTMLカスタムしてみたの暴走

Log

  1. May 2005 (1)
  2. Apr 2005 (10)

RSS

26 Apr 2005 :: Storekeeper CUI : Memento パターン

くだけた文体に飽きてきたので、少し堅めの文体で書いていきたいと思います。

結城先生の本とにらめっこしつつ、Memento パターンで、Storekeeper(倉○番)の「一手戻る/進む」「一番最初に戻る」を実装してみました。

Storekeeper20050426.zip

Memento パターンを使う上で難しかったのは、Memento(記念品)の役に、どのように、また、どのぐらい、情報を出し入れするインターフェースを提供させるか、という点です。
同じパッケージ内だからと言って、あまりに情報を公開しすぎるのも、なんだか気持ちよくありません。依存性を高める結果にならないのでしょうかね。それとも、気にしすぎなんでしょうか。

今回のケース(Storekeeper)では、保存する必要があるのは、主人公の座標・歩数と、全ての箱の座標なので、Memento の中は、座標のArrayListなどを持たせています。
Memento を作成するタイミングは、「ゲーム開始時」「主人公が移動した時」なので、この辺りは、Game クラスに簡単に組み込めました。Observer パターンが効いているのかしらん。
でも、移動の度にオブジェクトが増えるとなると、気になるのはメモリ使用量。
といっても、Memento の中身が同じになるのは、ほとんどありえないので、Flyweight パターンも使えないし… 一時ファイルとかに退避させればいいのかな… この辺りのノウハウがよくわかりませんです。

例えば、ドローイング(絵を描く)ソフトを作る場合、UndoやRedoなどは、どう実装するんでしょうね。こういった場合、ポイントとなるのは、「何を保存するか」なのでしょうけど。
それでも、恐らく情報量が半端じゃ無いと思うので、やっぱり一時ファイルを作ってるのかな。ページファイルみたいなもの?

と、結局、気になりつつも放置してしまう出不精な私。特に重くならなければ、まあいいや。
なんだか、Javaを使ってるとメモリの使用量に疎くなってくるような… (^-^;

Posted at 01:22 / 0 Comments / 0 TrackBacks / Category : Product

Comments





TrackBacks

この記事へのトラックバックURL :

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。