-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
第09章 歩幅の調整 #13
第09章 歩幅の調整 #13
Conversation
サブクラスを消したい。通貨の概念を導入するのはどうだろう。 |
これ、思いつく?どうやって思いつく? |
Flyweightパターンを用いて、必要十分な通貨オブジェクトを生成して管理したい。とはいえ、まだ文字列だけで十分だろう。 |
こういう思考に至るのがなぜか。こういう思考に至るのはテスト駆動開発の恩恵ではないのか。別の恩恵があるのか。 |
テストは通る。
|
徐々に2つのクラスの実装を近づけていきたい。各クラスの独自部分をどんどん外(Moneyクラス)においやっていく。 |
テストは通る。テストがあると、こういった修正が安心してできる。 |
テストは通る。 |
さらに、コンストラクタの呼び出し側で |
コンパイルできない。
|
コンパイルが通り、テストも通る。
|
で、ここで気づくのが、FrancのtimesメソッドがMoneyのfactoryメソッドではなく、直接自分のコンストラクタを呼んでいること。 この修正は割り込みだが、ちょっとした割り込みに限っては、修正してしまおう。 |
テストは通る。ほんとテストあるおかげで、こういう修正が楽。 |
小さいステップを踏んで、修正がらく。ちょっとイラッとするかもだけど、「小さくもできる」というのが大事。 |
Dollarも一気にやってしまおう。 |
一気に修正できた。 |
今回のように、必要であれば歩幅を小さくし、行けるなら歩幅を大きくして良い。 |
コンストラクタが一致したので、親クラスに持っていく。 |
振り返り。
|
どういう歩幅がいいかはどうやってわかるんだろうな。とりあえず整理がつかなかったら歩幅を小さくしようか、って話かな。 |
TODO
|
TODO
$5 * 2 = $10amountをprivateにするDollarの副作用どうする?equals5CHF*2=10CHFequalsの一般化FrancとDollarを比較する