> > > old:
> > > よい Separation of Concerns = 自然な責務分割 + 強い凝集度 + 弱いカプリング
> > >
> > > new:
> > > よい Separation of Concerns = 変更を伝播させない分割 + テスト可能な分割
> >
> > 「変更を伝播させない分割」については、
> > クラスレベルではなくサブシステムレベルですが、
> > シュレイアーメラー法、あるいは eUML のドメイン分割という方法が最も効果的
> > な分割ではないかと思います(説明は省略します)。
> >
> > クラスレベルでこれを実現するのは、今の私のレベルでは難しいです。
> > 現状では、パッケージ内部については妥協(変更の伝播を容認)し、外部のパッ
> > ケージに変更の伝播がなければOKとしています。
> > # もちろん、単体テストを考えると、パッケージ内部のクラス同士も関係は疎な
> > # 方が良いのですが、うまく実現できていないので、当然整理もできません。
>
> 個人的には、なんとか「アスペクト指向」に繋げたいと思っていました。
> これら変更の影響(絡み合い)は、視点(あるいは様相、アスペクト)を変えるこ
> とで軽減できるのではないかと。
> # 単純に私の興味がそこに向いているから、というのが本当の理由です(^^;;
>
> ただ、無理解のため、どんなケースで適用できて、テストがどう楽になるのか、
> さっぱり分かりません。
> #どのように話を持っていくと、そこへ繋がるのかすら分かりません(^^;;
>
> Aspect指向な人のご意見は伺えないですヨねぇ...
Aspect 指向初級者の山崎です。
Aspect を使うと、機能ごとにファイルを分割して、その中に関連のあるエン
ティティクラスをいくつか登場させて、それらの相互作用を記述するというス
タイルでプログラムが構成されるのが自然であるような気がします。
そのスタイルでプログラムを書くと、テストケースはファイル(つまり機能)に
対応して記述することになり、その中に何通りかの入力に対応する出力を用意
して比較するという、非常に単純なスタイルで記述できます。テストケースの
ファイル数は増えるのですが、テストケースのロジックが非常に単純化され、
使い勝手がよくなります。
山崎 進 --- yamazaki@....jp
東京工業大学数理計算科学専攻柴山研