1

验证具有 2 组不同业务规则要求的用户对象的最佳方法是什么?我正在使用数据映射器模式将我的域对象保存到持久层。

示例: 1. 客户端 A 只需要存在用户对象的名称,用户对象就有效并允许保存到持久层。

  1. 客户端 B 要求用户对象中存在名称和至少一个爱好,以便将其视为有效。

  2. 客户端 A 稍后决定他们需要一个电话号码才能使用户对象有效。

在规则可能发生变化的域对象上实现这些动态业务规则是否有很好的模式?

<?php

class User{

    private $_name;

    private $_telephone;

    private $_hobbies = array();

    public __construct(){

    }

    public function setName($strName){
        $this->_name = $strName;
    }

    //Other getter and setter.....

}

    class UserMapper{

        public __construct(){

        }

        public function save(user $objUser){
            //preform mapper save operations to persistence layer(db, file, etc)
        }

    }

    //instantiate the user mapper class
    $objUserMapper = new userMapper();

    //instantiate the user domain class
    $objUser = new User();
    $objUser->setName('John Hancock');

    //save the user to the persistence layer
    $objUser->save($objUser);

?>
4

1 回答 1

1

当然是。尝试像 Ruler 这样的业务规则引擎(http://jwage.com/post/31292541379/ruler-a-simple-stateless-production-rules-engine-for

于 2014-01-31T21:45:47.977 回答