たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『高速移動モード』っていうモード欲しいんだよね。そのモードだと二倍速で動くの」って言われたとする。シンプルにやるとこうなりますね。 「できたよー」って見せにいったら、今度は「なあ、すげえ面白いこと考えたんだけど、『蟹モード』って面白くない?横は4倍速で動くんだけど縦は半分の速度で動くの」とか言われたわけです。あなたは「お、おう」と言って、以下のようにコードを修正しました。 これ、ヤバい感じしますね。破滅の匂いがする。「今度は『よっぱらいモード』欲しいな〜。入力に関係なくランダムに動くの」みたいなこと言われたら確実に複雑さが爆発してメンテ不能になり鬱になり死
UMLの状態遷移図(ステートマシン図/ステートチャート図)の実装 サンプルとして、こちらの図11を実装した。 http://labo.mamezou.com/special/sp_002/sp_002_003.html 最上位の状態は「停止中」と「運転中」の2つの状態。「運転中」はコンポジット状態(入れ子のある状態)であり、サブ状態として「冷房」「暖房」「除湿」の3つの状態を持つ。 最上位の初期状態は停止中で、サブ状態の初期状態は冷房。ただし、運転中から停止中に戻る時にサブ状態は記憶され、次回運転中状態になった時は前回のサブ状態になる。 イベントは「運転開始」「運転停止」「運転切替」の3つ。 状態遷移図を実装する方法で一番簡単なのは、状態変数をswitch文で分岐する方法だと思うけど、ここではGoFのデザインパターンのStateパターンを参考にして実装してみた。 ソースのリポジトリは以下。
"ちょっとした祭り"の実態は? えーと、ソースはこちらです↓ 気分はstatic!: 実はオブジェクト指向ってしっくりこないんです! とりあえず現時点でのこのコラムへのコメントのエッセンスを纏めます。 それよりも、ポリモーフィズムがオブジェクト指向の肝だと思います。 ポリモーフィズムをうまく使うと条件分岐の記述を減してすっきりしたコードが書けます。 ぬ様 貴重なご意見ありがとうございました。ポリモーフィズムについては勉強したいと思っております。 ポリモーフィズムについては、私は 「関数へのポインタ(C言語)のデラックス版を使って、何かをやる」 と捉えています。C言語において、関数をそのまま呼ぶのではなく、ポインタを通じて呼ぶようにすると、 「たまたまその時、どんな関数がそのポインタに指し示されていたか」 によって、結果がまちまちになりますよね。 この特性を意図的に活用すると面白いことができ
コンポーネントベース設計手法として有名な「カタリシス法」について解説しています。弊社のコンポーネントベース開発方法論は、カタリシス法をもとに発展させたものです。そのパワーの秘密をお見せします。 カタリシス法によるコンポーネントベース開発ページへ
『デザインパターン』 うんちくできると、かっこよさそうだよね~。でもあんな分厚い本読んでもピンとこないし、だいたいオブジェクト指向ってなに?なにが便利なのかよく分からんのだけど。いいじゃんなんでも。できればいいんだよ、できれば。 な~んて、思っていても、なんとなく オブジェクト指向が気になっている システム開発者は、多いのではないでしょうか?かくいう 私もそんな者の一人でした。 しかし、これだけ もてはやされているオブジェクト指向です。 なんか、便利なはずです。 そこで、私は、GOFのデザインパターン[1]を、できるだけシンプルに表現した、小さな小さなプログラム ~デザインパターンの骸骨たち~ を作ってみました。骸骨達 を骨の髄までしゃぶり尽くつくすせば、オブジェクト指向の真髄まで味わうことができるかも。!? 『デザインパターンの骸骨たち(RE-BONE)』 では、内容を大幅に見直し、Ja
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く