- Transaction Script(Domain Logic Patterns)
- Domain Model(Domain Logic Patterns)
- Table Modlue(Domain Logic Patterns)
- Service Layer(Domain Logic Patterns)
まず、Service Layerは、Domain LogicがTransaction ScriptだろうがDomain ModelだろうがTable Moduleだろうが、共通の視点で適用可否を判別可能なので、これは他の3つとは少し違う位置づけになる気がしている。
で、3つのうちどれを使うかという話になると、(この本を信じるとすると)それは状況次第になるということだ。ただし、実際のところ日本でDomain Modelを適用して開発しているところはかなり少ないように思える。Table Moduleも少なくて、実際はほとんどがTransaction Scriptなんじゃないだろうか。社内外で見聞きする事例を見ても、共通化したり多少変形したりはしているだろうけど、コンセプトとしては Transaction Scriptであることには変わりはない。
これは数年間ずっと感じていることだが、Domain Modelはうまく適用できるような環境になかなか恵まれないし、もしそんな状況になったとしても、Domain Modelで設計すれば変更に強いかどうかもわからない。Domain Modelでも、想定していないような変更にうまく対応できるんだろうか?
Domain Logic Patternは、Domain Modelをどう評価するかに尽きるように思える。このあたりはDomain-Driven Designを読みつつ勉強していきたい。
コメント