アスペクト指向勉強会(第10回) - Theme Composition

勉強会もいよいよ佳境。仕事が立て込んでるのでメモのみ。

Chapter 6 Theme Composition (前回の続き)

Integration Option
Merging Operation

ここで出てくる containers はやっぱりクラスのことかなぁ。

Combining Integration Policies

Theme どうしは Merge Integration だけど、要素間は Override Integration になることもある。
Override は2者間でなければならないって書いてあるけど、3者以上でもいいんじゃないの?
と思ったけれど、どうやら Override は Trigger が1個しかなくて Aspect になりそこなった Theme と関係してるんじゃないだろうか? だとすると2者間というのも納得いく気がする。
この節、もう一度読み返してみる必要がありそう。

Resolving Conflicts

議論省略

Binding to Crosscutting Themes

Bind は Merge の一種。
バインド先が1つしかないなら Template Parameter にする必要がないじゃん、というのはもっともだけど、それは設計時に決めたことだから。

Some Commernts on Process

Theme Approach で開発しても必要なスキルの上限は変わらない。でも、全部をスキルが高い人がする代わりに、一部を他の人に任せることで、トータルのコストは抑えることができる。(by Gohさん)
Composition の複雑さを減らすために、設計の最初に命名規約などのポリシーに同意しておく必要がある。
設計は独立してやっていいって書いてるけど、やっぱり近いテーマどうしは連絡とりながら設計したり、設計と Composition を反復して行った方が良いと思う。でないと、絶対 Composition で発散する気がする。