singleton

Singleton的にやってみた

前回の記事(XNAテトリスで悩んでること)の解決策をSingleton的にやってみた。
いや、~~的であってパターンそのものじゃないと思うので、ご容赦願いたい。

Minoクラス
・IMinoInfoインターフェースを継承したクラスをセットする変
・ミノの位置
・ミノの回転方向
・ミノの回転・移動・落下などの処理
IMinoInfo.MinoBlocksプロパティを参照して処理を行う


IMinoInfoインターフェース
・IDプロパティ
ミノの種類ごとの番号
・MinoBlocksプロパティ
ミノを構成するブロック情報が入っているリスト

↓(継承)

Mino0クラス~Mino6クラス
・IDプロパティ
Mino0なら return 0; のように返す
・_minoBlocks
ミノを構成するブロック情報が入っているはず
・MinoBlocksプロパティ
_miniBlockの参照を返す

Mino0クラス~Mino6クラスはSingletonっぽいのを使って、それぞれのクラスが1つのインスタンスしか生成されないようにしている。

このようにMinoは、ミノの位置、方向、それぞれの処理を担当して、テトリミノ自体はIMinoInfoインターフェースを継承したインスタンスが1つしか生成できないクラスで表現している。
Minoクラス生成時にIMinoInfoをセットすることで、色々なミノに対する処理ができる。

ガイドミノ表示の際は、新しいMinoクラスを生成して、
落ちているMinoクラスのIMinoInfoをセットして、処理させればいけそうな。

コードにするとこんな感じ。

続きを読む »

記事検索
livedoor プロフィール
QRコード
QRコード

トップに戻る