2013-03-27 144 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

這取決於這些函數內部發生了什麼。 如果大多數業務邏輯是相同的,只是輸入參數不同(比方說,你需要準備不同的參數,但在此之後邏輯是相同的),那麼我將使用單一功能。 在其他情況下,我會做多個小功能 - 它更易於維護,更容易理解那裏正在發生的事情。