Me he dado cuenta de que todos mis modelos se ven muy similares. La mayoría de ellos tienden a seguir un patrón en el que se trata de colecciones de métodos que contienen código de registro activo que son apenas variaciones leves entre sí. Aquí hay un ejemplo:Mis modelos tienden a tener el mismo aspecto
class Site extends CI_Model {
public function get_site_by_id($id)
{
// Active record code to get site by id
}
public function get_sites_by_user_id($user_id)
{
// ...
}
// ...
public function get_site_by_user_id_and_url_string($user_id, $url_string)
{
// ...
}
// Non active record methods and business logic
// ...
}
Este enfoque ha funcionado bien para mí, pero me pregunto si hay una solución más elegante. Simplemente no me parece correcto que deba crear un nuevo método cada vez que necesite buscar datos de una nueva manera. ¿Es esta práctica común o me falta una forma de refactorizar esto?
Esto sería principalmente un efecto secundario de utilizar un grupo de [registro activo] (http://martinfowler.com/eaaCatalog/activeRecord.html) como sustituto de la capa de modo implementado completo. Puede encontrar [this] (http://stackoverflow.com/a/11943107/727208) relevante para las opciones de refactorización. –