教科書
8.1 トランプゲームの共通問題を抽出
-
フレームワーク (p.202 復習):
「似たような問題を一段抽象化してあらかじめモデリングしておき,
それをもとにしてさまざまなソフトウェアに利用できるようにしたもの.」
図7-10
図8-1
-
フレームワークの境界 (p.205-)
- (共通) フレームワークで提供できる部分(クラス,メソッド,属性等) (いろいろ共有できる部分)
- (固有) 個々のアプリ毎に作らないといけない部分.
- 実際に「共通」か「固有」かを個々のメソッド毎に判定 (p.207-210)
ばば抜きと七並べを思い出す
- ばば抜き: p.156にクラス図あり (版によっては誤植があり)
- 七並べ: p.190にクラス図あり
-
同じ役割の処理を見つけてクラスとして括りだす ⇒ ルールクラスの導入 (p.211-)
「テーブルに置けるカードを探す」(p.211-)
図8-2 七並べの「カードを見る」,
図8-3 ばば抜きの「カードを見る」
ルールクラスを導入した際の振る舞い:
図8-4
-
ジョーカーの扱い (p.214-)
図8-5
8.2 フレームワークの実装
(クラス図 図8-8)
-
8章のサンプルコード:
(教科書版
[DIR])
-
抽象クラス: サブクラスを実装を強いるためのテクニック.(p.217-)
フレームワーク側で実装を提供したいメソッドもあるのでインタフェースだとマズい.
代表的な例:
AbstractCollection等
[HTML]
-
フレームワークのクラス図 p.222
図8-8
-
カードクラス,
ジョーカークラスの作成 p.222-
protectedは同一パッケージおよびサブクラスからのアクセスを許す.
-
手札クラス p.228-,
テーブルインタフェース p.231-,
ルールインタフェース p.232-,
プレイヤー抽象クラス p.232-,
進行役クラス p.235-