Mail: Pass:
前月  2008年6月  翌月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

links

 びびすけさんのページ
 体重・走距離分析
 月間・靴・コース走距離
 タイムトライアル分析
 速度・心拍数分析
 自転車・月間・コース走距離
 オセロ勝敗・レート分析
 ViVi web site

新着日記

 はじめての AIR プログラム
 モカ将棋 0.005 リリース
 座標がずれる
 壁にぶちあたった
 Laramie V1 に勝ち越し!
 vs Laramie V1 10番勝負
 モカ将棋10番勝負 (2)
 開発マシンが死んだ!?
 vs Lesserkai 1.3.2 10番勝負
 TJshogi にも初勝利
 Lesserkai 1.3.2 (1秒)に初勝利!
 将棋大会 地区予選
 プレイアウト結果の信頼性
 vs ランダム将棋
 moca将棋
 ViVi 2.05

新着コメント

 直った/びびすけ
 vs Laramie V2/びびすけ
 vs LaramieV1 10…/びびすけ
 vs TJshogi 0.03…/びびすけ
 vs ランダム将…/びびすけ
 vs TJshogi 0.03/びびすけ
 羽生×山崎/びびすけ
 ボナ×渡辺竜王/びびすけ
 羽生×山崎 戦/びびすけ
 ボナンザ×渡辺竜…/びびすけ

トラックバック

トラックバックはありません。

カテゴリ一覧

 基本データ
 テニス
 ジョギング
 ViVi
 自転車
 Web
 RunRunDietOnline
 PostgreSQL
 ビルドアップ走
 ランニング

2件の日記があります。

ViVi version 3 クラス図 (3) (2008/06/06 08:45) 0 comment

ドローツールで書き直してみた(原寸画像はここ参照)。
手間はかかるけど、やぱりこっちが見やすいな ^^;;;;

※ 矢印は依存(DependsOn)を表す。
※ ほとんどが Holds-a 関係だが、右側の矩形で囲った部分だけは包含(Has-a)
※ 実践の矢印は所有権を持った Holds-a 関係、破線の矢印は所有権を持たない Holds-a 関係

オブジェクトの所有権に着目した… (2008/06/06 15:29) 0 comment

C++ にはガベージコレクション機能が無いので、所有権を明確にし、所有者がオブジェクトの生成・削除に責任を持つことが肝要である。
実装デザイン的に見た場合、2つのオブジェクトの関係には以下の種類がある

[1] A が B を包含(Has-a)する      [A]◆→[B]
[2] A が B を所有(Holds-a)する     [A]●→[B]
[3] 複数のA が B を共有(Shares-a)する  [A]◎→[B]
[4] A が Bをポイント(Points-a)する   [A]○→[B]
[5] A と B に依存関係は無い        [A]  [B]

包含(Has-a)はクラスAのメンバ変数としてクラスBを持つことである。クラスBオブジェクトはクラスAのコンストラクタで自動的に生成され、デストラクタで自動的に削除される。
所有(Holds-a)の実装は、クラスAのメンバ変数としてクラスBへの std::auto_ptr を持つとよい。通常はクラスAのコンストラクタで auto_ptr を初期化する。クラスBオブジェクトの削除はクラスAのデストラクタで自動的に行われる。
共有(Shares-a)の実装は、クラスAのメンバ変数としてクラスBへの boost::shared_ptr を持つとよい。
ポイント(Points-a)は、クラスAのメンバ変数としてクラスBへのポインタを持つ。生成・削除責任は持たない。

共有の場合を除いて、オブジェクトの所有者はひとりだけである。

2件の日記があります。

パスワード忘れ
今週のランキング
計算タマちゃん
FAQ
ヘルプ
about rrdOnline