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

时间:2013-10-17 11:36:07

标签: php design-patterns business-logic

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

实施例: 1.客户端A只要求用户对象的名称有效,并且允许保存到持久层。

  1. 客户B要求在用户对象中出现名称和至少一个爱好,以使其被视为有效。

  2. 客户A稍后决定要求用户对象的电话号码有效。

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

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

1 个答案:

答案 0 :(得分:1)

是的,当然。尝试像标尺(http://jwage.com/post/31292541379/ruler-a-simple-stateless-production-rules-engine-for

这样的业务规则引擎