想知道好的OO模式

时间:2011-07-14 15:36:40

标签: php oop

我有一些代码示例

但只是想知道这个oo模式的好坏,甚至不是oo ...

class Manager 
{
    private $_rule_manager = null;
    private $_approver_manager = null;
    private $_value = null;
    function __construct($v_value = null)
    {
           $this->_value = $v_value;
    }
    public static function get_instance() 
    {
        if(self::$Instance === null) self::$Instance = new manager();
        return self::$Instance;
    }
    public static function check_sum($val1, $val2) {return $val1 + $val2;}

    public function get_approver_manager()
    {  
        if($this->_approver_manager === null) $this->_approver_manager = new approver_manager($this->_value);
        return  $this->_approver_manager;
    }
    public function get_rule_manager()
    {
        if($this->_rule_manager === null) $this->_rule_manager = new approver_manager($this->_value);
        return  $this->_rule_manager;
    }
}
class rule_manager
{
    private $_value = null;
    function __construct($v_value = null)
    {
           $this->_value = $v_value;
    }
    public function check_rule()
    { 
         $this->_value + $this->check_rule2(); 
        return true;    
    }
    public function check_rule2(){ return Manager::get_instance()->check_sum();  }
}
class approver_manager
{
    private $_value = null;
    function __construct($v_value = null)
    {
           $this->_value = $v_value;
    }
    public function generate_approval(){ return 'xxxxxx'; }
}
$manager = new Manager($val);
$manger->get_rule_manager()->check_rule();
$manger->get_approver_manager()->generate_approval();

规则管理器的专业,它有一个来自经理的函数调用 但是我使用经理创建规则管理器,然后它回到经理那里,似乎在浪费资源....

1 个答案:

答案 0 :(得分:0)

我只会对顶级设计发表评论,因为你的代码非常糟糕。

这一切都取决于将使用的对象。该示例不足以确定适用于应用的OO设计。

如果您按照自己的示例使用它,则不需要规则/审批经理,因为他们提供的功能可以集成到经理中。