我有一些代码示例
但只是想知道这个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();
规则管理器的专业,它有一个来自经理的函数调用 但是我使用经理创建规则管理器,然后它回到经理那里,似乎在浪费资源....
答案 0 :(得分:0)
我只会对顶级设计发表评论,因为你的代码非常糟糕。
这一切都取决于将使用的对象。该示例不足以确定适用于应用的OO设计。
如果您按照自己的示例使用它,则不需要规则/审批经理,因为他们提供的功能可以集成到经理中。