ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

C++のためのAPIデザイン 3.1〜3.3

C++のためのAPIデザイン

C++のためのAPIデザイン

  • 作者: マーティン・レディ,Martin Reddy,三宅陽一郎,ホジソンますみ
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2012/11/02
  • メディア: 大型本
  • 購入: 4人 クリック: 106回
  • この商品を含むブログ (8件) を見る

第3章 パターン

以下のテクニックの解説。

  • Pimplイディオム
  • シングルトンとファクトリメソッド
  • プロキシ、アダプター、ファサード
  • オブザーバー
3.1 Pimplイディオム

Pimplはpointer to implementationの略。
privateな情報をヘッダに見せないように、実装を別クラスに隠す。
Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) にも同じような話があったはず。

3.2 シングルトン

一般的なシングルトンの話がほとんど。

Singletonをスレッドセーフにするのは大変。
外からインスタンスを渡す、依存性の注入という方法もある。
staticなデータへアクセスするインスタンスを、複数作れるようにするMonostateパターンという方法もある。
Singletonは1つしかインスタンスを作成させないことで単一構造を強制し、Monostateはすべてのインスタンスで同じデータを共有することで単一動作を強制する。

Singletonパターンが真価を発揮するのは、インスタンスを1つにするというより、インスタンスの数の上限を決めたいときだと思っていたのだが、そこは書いてないな。

3.3 ファクトリメソッド

普通のファクトリメソッドの説明のみ。

p.107の一番下にtypo発見

CallbackMap::iterator it = mRenderers.find(type);
if (it = mRenderers.end())
...

ifの中で「=」。 p.14にも同じ間違いがある。「!」を印刷できていないのか??



CodeIQのトグル問題、やっぱり最高点じゃなかった。
グレイコードってどこかで見たなと思ったら↓に書いてあるし。最後の方まで読めばよかった。

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか

  • 作者: ジュニア,ヘンリー・S.ウォーレン,Jr.,Henry S. Warren,滝沢徹,玉井浩,鈴木貢,赤池英夫,葛毅,藤波順久
  • 出版社/メーカー: エスアイビーアクセス
  • 発売日: 2004/09
  • メディア: 単行本
  • 購入: 35人 クリック: 732回
  • この商品を含むブログ (126件) を見る