【问题标题】:How to apply business rules to object?如何将业务规则应用于对象?
【发布时间】:2013-10-25 21:06:42
【问题描述】:

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

示例: 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);

?>

【问题讨论】:

    标签: php design-patterns business-logic


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2011-04-30
      • 2010-11-21
      相关资源
      最近更新 更多