Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
オブジェクト指向について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10603#CommentId22238
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
たかくん
 (社会人)
投稿日時
2011/12/3 05:37:51
おはようございます。
ラオシスさんありがとうございます。
これは概念の問題なので正解や不正解もないのですがみなさんならどうしますか?
という質問です。
下記のコードはゲーム講座の第3回キャラクターのクラス化の一部です。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'いったん全体を黒で塗りつぶす
mainGraphics.Clear(Color.Black)
'登録されているすべてのUnitに対して、MoveとDrawを呼び出す。
For Each unit As Unit In Units
If unit.IsAlive Then
unit.Move() 'unitの座標更新
unit.Draw(mainGraphics) 'unitの描画(この時点では画面には反映されない)
End If
Next
'最新の状態を画面に描画する。
Me.Invalidate()
End Sub
たとえば上記のコードを空のGameクラスなる物を作ってメソッド化してフォームクラスと切り離すという事を考えてみて下さい。
フォームクラスではオペレーションクラスなのでただ呼び出すだけです。
もちろんGameクラスでGUIクラスの部品をいじる事はしません。
ラオシスさんならどうします?
Public Class GUI
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Game.Start()
End Sub
End Class
本当ならこんな事普通はしませんが僕は今「クラスの独立」をテーマにオブジェクト指向を勉強しています。
多分、Gameクラスというのは制御であって動的かつ抽象的なのでこれをクラスにする事自体が不自然なのかもしれませんけどね。
やはり無理が生じるというのは概念自体がおかしいという事なのでしょうか...
クラス分けという作業は「物」といしうオブジェクトを対象にするほうが自然なのでしょうか...
あー、考えれば考えるほどパニックになってきました。
誰かお助けてください。
ラオシスさん、僕の言ってる事解ってもらえました?