今回はごちゃごちゃしてしまったプログラムをきれいにしたい回です!
よろしくおねがいします!

■今週のゲーム制作:プログラム修正





まずはクラスの構造から見直し。

「C++ クラス 粒度」で検索したところ素敵な記事や動画がヒットしたのでそれを参考にしていきます↓

C++でクリーンなコードの書き方 - Qiita

クラス分割の大原則 GRASPとは何か - YouTube

検索ワードからもわかるようにクラスの粒度について悩んでいました。

例えばボタンのオブジェクトだったら、
・マウスカーソルの判定処理
・キーパッドの判定処理
・イベントの送信処理
・描画エフェクトの計算処理
・描画処理
このあたりが必要な機能なんですけど、処理関数を持つのか、処理を別のパーツとして持つのか悩んだりしてました。

なんかいろいろできるクラス(神クラス)っていうのがダメなのは知ってたんですが、「パーツ管理」も一つの機能っていう考え方に( ゚д゚)ハッ!となりました。

そして関数として作っていた処理をパーツに分けなくては!という考えに。



ボタンオブジェクトを作り替えるとしたら、それぞれの処理をパーツ化してパーツ管理を行うクラスをボタンオブジェクトとして使用するっていう感じでしょうか・・・・・・

インターフェースを継承して仮オブジェクトと本番オブジェクトを差し替えられるようにしておきたいので、どの粒度でその親クラスのポインタをかますのかっていうことでまた悩んでいます。

「ボタンパーツ管理クラス」自体なのか内部のパーツなのかっていう。

大きな単位で差し替えができる方が工程としては楽なんじゃないかっていう気がしてきますが・・・・・・

どっちもインターフェースを継承しつつ使うのは実体で(クラス名を書き換えて)使うとかもアリかな?むむむ・・・・・・



まだまだ悩みは残りますがいろんな書き方を参考に読みやすいコードを目指して頑張ります~!