2012-03-01から1ヶ月間の記事一覧

デザインパターンを覚えたい (Strategy)

Strategyパターン 具体的な実装クラスを差し替えることで戦略、つまり動作の切り替えを行うパターン。 クラスの構成的にはBridgeとすごく似てて、 切り替える動作のメソッド定義をしたStrategyインターフェース 実際の動作を定義したConcreteStrategyクラス …

デザインパターンを覚えたい (Bridge)

Bridgeパターン 機能と実装を分離させるパターン。機能追加はサブクラスを作成してメソッド追加するとかのことで、実装追加は具象クラスを追加するとかのこと。 この2つの拡張を別々に行えるようにするために、具象クラスの分を公開クラスに集約して扱う。と…

デザインパターンを覚えたい (Abstract Factory)

Abstract Factoryパターン 決められた部品や製品を作成する抽象的な工場のパターン。作成を担当するFactoryクラス、そのFactoryで生成されるProductクラス群から構成される。 実装では外部に公開するメソッドを定義した「抽象的な工場と製品」を用意し、外部…

デザインパターンを覚えたい (Builder)

Builderパターン 作成に必要なメソッドまとめたBuilderクラスを用いて決められたものをDirectorクラスのメソッドとして作成するパターン。 Template Methodパターンとよく似ているが、 Teplate Method スーパークラスで呼び出し元メソッドを定義 Builder Dir…

デザインパターンを覚えたい (Prototype)

Prototypeパターン Protorypeパターンの特徴はclassをnewするのではなく予め作成したインスタンスをコピーするところ。 メリットとしては、 クラス名を明示的に指定しないため、プログラム間の依存性を小さくできる たくさんのクラスを扱うときに予めまとめ…

omakeメモ

c++

OMakefileの中身考察 Singletonのサンプルで使ってるOMakefileについてテキトーなメモ書いとく。(あくまで主観で裏付けあまりしてませんので注意) 中身はこんな感じ。 CXX = g++ CFILES[] = main MAIN = singleton_test CXXProgram($(MAIN), $(CFILES)) .PHO…

デザインパターンを覚えたい (Singleton)

Singletonパターン 常に存在するインスタンスを一つに絞るためのパターン。個人的に思いつく特徴は。 存在するインスタンス数をせい制限することでメモリにやさしい インスタンス作成コストの削減 クラスの提供側でインスタンスを管理できる とかかな。なん…

デザインパターンを覚えたい (Factory Method)

Factory Methodパターン 作成のためのメソッドだけフレームワーク側で提供して、実際の作成をサブクラスに任せるというパターン。 Factory、つまり工場なわけですが、工場で製造工程だけは先に決めといて、実際になに作るかは後で決めるみたいなイメージかな…

デザインパターンを覚えたい (Template Method)

Template Methodパターン 共通APIで動作の異なるクラスを作成するためのパターン。 ポイントは 呼び出し元となるテンプレートメソッドは親クラスに実装 テンプレートメソッドを構成するメソッドの具体的な定義は子クラスで実装 というところですかね。なには…

デザインパターンを覚えたい (Adapter)

Adaptorパターン 異なる形式のAPI間をつなぐためのパターン。古いバージョンとの互換性の確保や、仕様の異なる外部プログラムの利用とかで使われる。 要するに仲介役となるクラスを対象のプログラムの間に挟む訳だが、方法は2つある。 繋ぐ口のインターフェ…

デザインパターンを覚えたい (iterator)

デザインパターンってなに 先人の知恵の塊です。ソースコードを書く上で出てくる共通のパターン集みたいな、うまくコードを書くための方法論みたいな。 GoF本が有名とか、自宅にあるけど読んでないなぁ(遠い目)デザインパターン知ってると 設計、コーディン…

homebrewが"Error: SHA1 mismatch"でこける

mac

homebrewが"Error: SHA1 mismatch"でこける omakeをインストールしようと思って何気に"brew instal omake"したら $ brew install omake ==> Installing o-make dependency: objective-caml ==> Downloading https://downloads.sf.net/project/machomebrew/Bo…

ソースの公開の仕方の件

前回の記事で「コードが長すぎるから公開の仕方考えなきゃねぇ」とかいってたけどその続き。真っ先に思いついたのはgithub。ただ、 プロジェクトってほど規模の大きなものじゃなく、細かいソースばっか もっとフォーマルなものを作り始めたときに使うべきか…

OpenGLで物体移動と転がるキューブ

OpenGLでのポリゴン描画 SDL+OpenGLでの描画の基本的な流れは glBegin(mode)関数で描画開始、引数で描画モードを指定 glVertix関数で頂点を指定する glEnd(void)関数で描画を終了 SDL_GL_SwapWindow(window)関数で画面に反映 とかだったような。すぐに画面に…

OpenGLでカメラ設定

カメラの位置 カメラは描画のはじめにやればよさそう。 // setup view glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt( -30.0f, 30.0f, -30.0f, centerX, centerY, centerZ, 0.5f, 0.5f, 0.5f); gluLookAt関数がカメラの設定をしており、 1行目の…

emacsのキルリング

キルリングの設定 emacsをそれなりに使ってるつもりだったけど、実はキルリング知らなかった。お恥ずかしい限りです。 KeySnailのこと調べてる過程で知ったのでメモ。下記のサイトを参考にanythingとかの設定した。 http://www.flatz.jp/archives/2172とりあ…

KeySnailを試そうとした

モチベーション ブラウザ使うのにマウス使うのがとてもだるい。 自分はFireFoxユーザなのでvimperatorあたりかなぁと思ったけど、emacsユーザもどきのつもりなのでKeySnailにチャレンジしてみる。 KeySnailとは FireFoxをEmacsライクに操作するアドオン。ち…

OpenGLの設定メモ その2

OpenGLの基礎その2 前回の話の続き 光源 後半の材質とあわせて下記のサイトを参考にしてます。 http://wisdom.sakura.ne.jp/system/opengl/gl16.html あと、次の本も 谷尻豊寿著「ARToolkitプログラミングテクニック」前書いたプログラムでは次の部分が光源…

OpenGLの設定メモ

OpenGLの基礎 以前書いたsdl_with_opengl.cppでの初期化処理をもっと詳しく見ていく。 SDL_GL_SetAttribute 74行目の処理で次のことを行っている。 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); OpenGLのパラメタを設定する。SDL1.2ではSDL_SetVideoModeを…