が、なんとなくクラス設計をミスった感じがしています。
とりあえず今まで作っていたものを
- Connect4_Core
- Connect4_Batch
- Connect4_CUI
- Connect4_GUI
のように分けて、Connect4_Coreにゲームの状態を判定したり、プレイヤーの戦略ロジックとかを寄せてみました。で、Coreの機能を利用して各UIを実装しました。Batch/CUIはうまく書けましたが、GUIがうまく書けない(うまくCoreと連携できない)。
前回JUnitでテストをしたときに、リフレクションを使ってprivateのメソッドをpublicのメソッドに変更してテストを行ったのですが、
「何でテストフレームワークにアクセス権限を変えるような機能がないんだろう。よく使いそうなのに。」
と不思議に思っていろいろと調べていたら、
「privateなメソッドをpublicにしないと単体テストができないっていうのは、クラス設計がいけていない証拠だ。クラス設計やりなおせ。」
みたいなことを書いているサイトを見つけて今思い返すとまさにそのとおりだなーという感じです。
半日くらいでさくっと書けると期待してましたが、道のりは思っていたより長そうです。とりあえずマウスクリックしたら石が下から埋まっていくとこまでは出来たので、画面イメージをはっておきます。
0 件のコメント:
コメントを投稿