【发布时间】:2012-01-11 14:00:37
【问题描述】:
我注意到我所有的模型看起来都非常相似。它们中的大多数倾向于遵循一种模式,即它们是包含活动记录代码的方法的集合,这些代码只是彼此之间的微小变化。这是一个例子:
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
// ...
}
这种方法对我来说效果很好,但我想知道是否有更优雅的解决方案。每次我需要以新的方式查找数据时,我都必须创建一个新的方法,这对我来说似乎是不对的。这是常见的做法还是我错过了重构它的方法?
【问题讨论】:
-
这主要是使用一组active record 代替完全实现的模式层的副作用。您可能会发现 this 与重构选项相关。
标签: php oop codeigniter refactoring