行データゲートウェイ
原文: https://www.martinfowler.com/eaaCatalog/rowDataGateway.html
データソースにあるひとつのレコードへの Gateway (466)として振舞うオブジェクト。いちレコード(一行)につき、いちインスタンスとなる。
解説の全文は『PofEAA』 152 ページを参照。
メモリ内のオブジェクトにデータベースアクセスコードを埋め込むと、厄介なことになる。 まず、メモリ内のオブジェクトにビジネスロジックがある場合、 そこにデータベース操作コードを追加すると複雑性が増す。 メモリ内のオブジェクトがデータベースと密結合している場合、テストも厄介になる。 テストを走らせるたびにデータベースに接続するため、テストが遅くなるからだ。 複数のデータベースにアクセスする必要があるが、 SQLのちょっとずつ違うということもあるだろう。
RowDataGatewayは、レコード構造のレコードのようなオブジェクトを提供する。 レコードのようとはいえ、通常のプログラミング言語でアクセス可能である。 データソースへのアクセス処理は、このインターフェースの裏に隠されている。