Php 想知道好的OO模式吗
我有一些代码示例 但我只想知道这个oo模式是好是坏,甚至它不是一个ooPhp 想知道好的OO模式吗,php,oop,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; }
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();
在规则管理器中,它具有来自规则管理器的函数调用
但我使用manager创建规则管理器,它返回到manager,似乎在浪费资源……我只对顶级设计进行评论,因为您的代码非常糟糕 这完全取决于对象的用途。该示例不足以确定应用程序的适当OO设计
如果您按照您的示例使用它,则不需要rule/approval manager,因为它们提供的功能可以集成到manager中。假设它是php,但结构良好,总体而言,我认为它是OO。有些事情我不能说是坏的或错的,但我敢说是不好的或不必要的。我想有一些甚至不会像预期的那样起作用。就我个人而言,我没有时间检查所有的代码并解释所有的事情,我想我并不是唯一一个这样做的人。此外,我认为这不是合适的地方。所以最好将规则/批准经理分开?因为我想做一些像工厂设计和使用经理这样的东西,这取决于很多事情。如果您只想在代码中使用工厂设计,而没有真正的好处,这取决于您自己。在目前的状态下,没有任何好处。