uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

Command Objectって何だ

昨日のGrails Source Readingでに参加しました。
またしても皆さん、ありがとうございました。
そこで「Command Object」という言葉が出てきていて、なんだそら、知らんぞ、と思ったんで、家に帰って調べてみました。(その場で聞くのが恥ずかしい私)。

http://grails.org/Command+objects+and+Form+Validation
http://grails.org/doc/1.0.x/guide/6.%20The%20Web%20Layer.html#6.1.9%20Command%20Objects

ふむふむ。

FORMパラメータの値の自動設定機能がサポートされたValue Objectってことですかね。
加えて

  • ドメインクラスと同様にValidationとかconstraintsが設定できるけど永続化対象にはならない。
  • コントローラクラスと同様にサービスクラスの注入対象

要は「超便利バージョンDTO特化アーテファクト」かな。
ビジネスロジック層とDB層の間のものでは無いので、DTOとは呼べないか・・。
リファレンスは一回通して読まないと駄目ですね。