如何将业务规则应用于对象


How to apply business rules to object?

验证

具有 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);
?>

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