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

답변

1

개별 기능은 많은 책임을 수행하는 하나의 기능보다 훨씬 더 가까운 단일 책임 원칙을 준수합니다. 즉, 이해하기 쉽고, 디버그하고, 수정하고, 테스트 할 수있는보다 작은 기능을 갖추게됩니다. 거의 모든 경우에 하나의 모 놀리 식 기능 대 여러 개의 특정 기능을 사용하는 것이 좋습니다.

+0

감사합니다. 첫 번째 기능을 작성한 후에 느낌이 들었습니다. 나는 내 코드로 멋지게하려고 할 때 일어나는 일이라고 생각한다. :) – Nick

0

해당 기능 내부에서 무슨 일이 일어나고 있는지에 따라 다릅니다. 비즈니스 로직의 대부분이 같고 입력 매개 변수 만 다른 경우 (다른 인수를 준비해야한다고 가정하지만 논리가 동일하면) 단일 함수로 진행합니다. 다른 경우에는 여러 개의 작은 기능을 수행 할 수 있습니다. 더 자주 유지 보수가 가능하고 진행 상황을 더 쉽게 이해할 수 있습니다.