我正在开发一个我正在研究的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 :(得分:1)
单独的功能坚持单一责任原则比尝试做很多事情的一个功能更接近。这意味着您将拥有更易于理解,调试,修改和测试的小功能。几乎在所有情况下,您都可以使用多个特定功能而不是单个功能。
答案 1 :(得分:0)
这取决于这些功能内部发生了什么。 如果大多数业务逻辑是相同的,只是输入参数不同(比方说,你需要准备不同的参数,但之后逻辑是相同的),那么我会选择单一功能。 在其他情况下,我会做更多的小功能 - 它更易于维护,更容易理解那里发生的事情。