2013-03-27 182 views
0

我正在为我正在开发的MVC项目开发模型。我想知道,如果最好有一个任务的多个函数或者每个方法都可以处理一个函数。例如,是它更好地碰到这样的:单功能与多功能

public function get($identifiers = null, $limit = null, $offset = null) 
{ 
    if ($identifiers != null) { 
     if (is_array($identifiers)) { 
      $this->db->where($identifiers); 
     } else { 
      $this->db->where($this->_key, $identifiers); 
      $method = 'row'.($this->_return_array ? '_array' : ''); 
      return $this->db->get($this->_table)->$method(); 
     } 
    } 

    if ($limit != null) { 
     $this->db->limit($limit, $offset || null); 
    } 

    if (!count($this->db->ar_orderby)) { 
     $this->db->order_by($this->_order); 
    } 

    $method = 'result'.($this->_return_array ? '_array' : ''); 
    return $this->db->get($this->_table)->$method(); 
} 

能处理多种情况下,或有不同的功能,如

get($id) {} 
get_where($where) {} 
get_all() {} 

等。

+0

我认为第二个版本是更好,如果你想要的东西,如“干净的代码” – Philipp 2013-03-27 21:36:15

回答

1

独立的功能坚持单一职责原则比试图做很多事情一个功能非常接近。这意味着您将拥有更易于理解,调试,修改和测试的更小功能。在几乎所有情况下,您都可以使用多个特定功能,而不是单个单一功能。

+0

谢谢,我写了第一个功能,这是不是处理事情的正确方法后的感觉。我想这就是当我尝试使用我的代码的幻想时发生的事情:) – Nick 2013-03-27 21:55:29

0

这取决于这些函数内部发生了什么。 如果大多数业务逻辑是相同的,只是输入参数不同(比方说,你需要准备不同的参数,但在此之后逻辑是相同的),那么我将使用单一功能。 在其他情况下,我会做多个小功能 - 它更易于维护,更容易理解那里正在发生的事情。