ZerOx4Cの日記だったもの

インポートだけしました

足踏み中(ダンダン!

なんだか行ったり来たりだ。頭痛いのもあるけど、なにより初めからちゃんと実装方法をイメージできてなかったな。


お金を管理する部分の現在の実装方法は、
Moneyクラスから派生した各クラスにMoney.Information構造体を持たせて、その中には表示名、価値、存在時間、サーフェスサウンドの情報が保持されている。
エントリーポイントにわざわざベタ書きでMoneyManager.Registerメソッドを呼び出し、型とMoney.Informationと確率を登録。
あとはMoneyManager.GetRandomMoneyメソッドで確率にしたがってインスタンスが返されるということになっている。
しかしこれではせっかくの継承の利点が薄れてしまう。


以前の実装では、Moneyから派生したクラスはMoneyのコンストラクタに直接Informationに含まれている情報を渡すようになっていたので、MoneyをPaperMoneyが継承して共通の情報(効果音など)を予め渡しておいて、JPY1000やJPY5000などの最終的な実装クラスへと派生させるようなことができた。
しかし現在のMoney.Information構造体を使う実装だと、staticなリテラルとして構造体が存在し、いちいち初めから構造体を各クラスで初期化する必要が出てくる。めんど☆


そこでまたコードを全部バックアップして、大規模に書き換えることにした。
今度はMoneyManager.Registerメソッドに登録する型のインスタンスと確率を渡すように実装する。(生贄を差し出す感じ
MoneyManager側では渡されたインスタンスをホイホイ登録するだけで済むので、細かいことを考える必要が無くなる。


よし、いい感じだ。(そう感じたのはいったい何度目なんだ・・・