「プログラムなんてちゃんと動きさえすればいいんだ」なんていうコトバがあれば、それには賛成。
でもちゃんと動かすためには、かなーりしっかり作らないとダメ。笑
それの、大きな柱が「オブジェクト指向」だと思っている。
「飛行機を動かしてそれを画面に表示する」というシューティングゲーム的なアプリを考えていく。
※O2
オブジェクト指向の代表的な活用どころといえば、「飛行機ひとつずつをオブジェクトととらえ、クラスで記述する」がある。このあたりはわかりやすい。
もうちょっと俯瞰した層に目をうつすと、このアプリは「飛行機を動かして」「それらを描画」するということになる。
※P1
モジュール化という意味では、 「情報アップデートモジュール」と「描画モジュール」があって、それらを使ってアプリを作るということになる。(これは、これでモジュール化してないぐちゃぐちゃなのより立派なのだが)
イメージで表すとすると例えば
「大きな基盤の上に情報アップデートモジュール基盤と描画基盤がのっていて、結線されている」。
※P2
最初に※P1の考えから始めたとする。飛行機を10機出しましょうというときに「飛行機10機分の情報を持てばいいじゃん」となる。これはオブジェクト指向風味ではあるが、本格オブジェクト指向には足りてないときがある。(例えば、「1機ずつの情報のスコープの範囲が広すぎ」とか「100機には急には増やせません」とか)
※O1
逆に類推すると・・・、※P1の部分もオブジェクト指向で書くのがいいのだ。 「情報アップデートモジュール」も「描画モジュール」も1個ずつしかないのでオブジェクト指向関係ないとか言わずに。
#####################
そんなときに作戦として今回、考え付いたのは「君」をつけるということ。(さかなクンとは似たような考えかなぁ?)
「情報アップデートモジュール」「描画モジュール」でなく
「情報アップデート」君、「描画」君としてみる。
ウゴキ君とエーゾー君としてもいい。
基盤がウジャララーとつながってるイメージはやめて、それぞれをひとりだちさせるのだ。
ウゴキ君とエーゾー君(さらにシキリ君も)の図
つづく