S eda1a14b50ee24bcab19b62f40858e76 トランザクションスクリプト

ドメインロジックでも最もシンプルなパターン。
ドメインオブジェクトは作らない。


ビジネスロジックの一連の処理をまとめる。処理の関連するものを1クラスにまとめる方法と、Command パターンによる方法がある。


例)「非公開ページは取得できない」というロジックをはさむ。

pdo->query($this->findSql, $id);
    }
}
class PageService{
    protected $db;
    function __construct(PageGateway $db){
        $this->db = $db;
    }
    function findPage($id, $user){
        $result = $this->db->find($id);
        if ($result['status'] === 'private' 
                           && $result['user_id'] != $user){
            return null;
        }
        return $result;
    }
}

これに対してドメインモデルはドメインオブジェクトを用いる。例えばこの例なら「Page」というオブジェクトを作る。

もしかして

    他の人の「トランザクションスクリプト」

    S eda1a14b50ee24bcab19b62f40858e76

    無所属ソフトウェアエンジニア

    (1722words)

    最新

      最新エントリ

        関連ツイート