interfaceの作り方

 何度も言っているが、私の学歴はたいしたことがない。そう。私は、いわゆる「叩き上げ」というやつだ。ということで、あまり頭の良い(coolな)理路整然とした考えはない。何事もトライ&エラーだ。そんな私のSeasarで使うDI用インタフェースの作り方を紹介したいと思う。
 と言っても、たいしたことはない。ただちょっとした発想の転換が必要だということ。つまり「気づき」の問題だろう。
 AOPにおいては、Core Concern(核心的関心事)とCrosscutting Concern(横断的関心事)をずばっとしゃきっと分けることこそCoolである。つまり、業務要件のコーディング内にロギングなんて入れないようにするということだ(ただしログを取ること自体が業務要件なら話は別だが)。ロギングは、interceptorとして作ったものをアスペクトすぽっとはめ込む。しかしながら、「気づき」のないまま業務要件のinterfaceを作ってしまうとろくにロギングもできないものになってしまう。
 その「気づき」は何かというと、フローチャートの1要素ずつをメソッドとしてもつinterfaceを作ることである。これまで、1つのメソッドを体現するものとしてフローチャートを書いていることもあったであろう。そうではなく、そのフローチャートの1要素にメソッドを割り当てるのである。ロギングは、このフローチャートの1要素に対して行うことが多い。もちろんそれは粒度によるが、粒度の違いによってメソッドも入れ子にすればいいのではないだろうか?