閑話 −僕と契約して魔法少女に・・・ その2−

僕と契約して魔法少女

「さて、君はソウルジェムの本質、それがなんだかわかるかい?」
ソウルジェムの本質・・・魔法の、魔力の源、かな。」
「確かにソウルジェム魔法少女に特別な力を、魔法を与えてくれる。でもね、それは本質とは言えない。その本質はね、"契約"なんだ。」
「契約・・・」
「僕はね、魔法少女、彼女たちの願いをかなえ、そして彼女たちは魔法少女となり魔女と戦うことを誓う。この契約が形として現れているのがソウルジェムなんだ。いわば契約書だね。重要なのはソウルジェムそのもの自体じゃない、契約なんだ。」
「そんな。」
「そしてね、魔女、これも契約として表現できる。さらに言わせてもらうと、今の僕と君の関係、これも契約としてとらえることができるんだ。」
「えっ?でも、私そんな契約した覚えなんか・・・」
「確かにね。でも、君はこうやって僕の姿を見て話をすることができるだろ。これもいわば、魔法少女見習いとしての契約にあると言えるんじゃないのかい。そう考えると、今の状況はこういう風にあらわすことができるね。」

「わかるかい。見習い、魔法少女、魔女とあるのは実際は契約の種類をあらわしている。それらを汎化させた契約クラスを導入してクラス図をかいてみよう。」

契約と契約種別

「図6のモデルでは、見習い、魔法少女それから魔女、それら契約の種類をクラスとしてあらわされているだろ。」
「うん。そうだね。」
「そういった契約の種類、これをクラスではなく、インスタンスとしてあらわすことの方が都合のいい場合もある。例えば、これまでにどういった契約をおこなってきたのか、その記録を取っておきたいような場合なんかには特にね。」
「えっ?」
「こういうとき僕たちは良く、パワータイプという概念を導入する。いいかい、見習い、魔法少女、魔女、これらは"契約"の種類だ。そこで、それら種類をインスタンスとするクラス"契約種別"を導入する。この"契約種別"が"契約"のパワータイプとなるんだ。」

「そして契約種別を導入したモデルは、こうなるね。」

「あなたの言っていること、ついていけない。」
例示は理解の試金石、だよ。ともかくオブジェクト図を描いてみるといい。まあ、ここは代わりに僕が示してあげよう。」

「ねえ。魔法少女が、その、魔女に変わってしまったりだとか、そんなのもあらわすことができるの?」
「もちろんだよ。でもその前に、契約の構造について少し詳しくモデルリングする必要がありそうだ。」

続く・・・かもしれない



追記

契約の構造について少し考えてみると、やっぱり魔法少女の契約は他とは違った構造を持ってそうです。かなえられるべき「少女の願い」が伴っていたりだとか。とすると、パワータイプを使った図8のモデルはちょっと先走りすぎで、図6のモデルにとどめるべきなのかもしれません。このあたり考えがまとまったら、続きかいてみたいと思います。