а практически профит огромный.
Ну я определенно не вижу профита
PHP:
// Метод #1: внедрение зависимости
$pager = Pager::factory()->setCurrentPage($_GET['page']);
$data = $model->where(...)->order(...)->fetchWithPager($pager);
// работа с шаблонизатором
// Метод #2: хардкодинг зависимости
$data = $model->where(...)->order(...)->fetchWithPager($_GET['page'], $_GET['limit']);
$pager = $model->getPager();
// работа с шаблонизатором
Первый случай более гибкий с точки зрения создания и предварительной настройки опций пейджинга - мы независимы от сигнатуры метода.
Второй случай позволяет не создавать отдельно $pager, а сразу запихивать в шаблонизатор, как $model->getPager();
Первый случай завязывается только на интерфейс
Второй на интерфейс + класс
Нет, профита тут не будет явного.
Профит возникнет тогда, когда мы привлечем сюда третьего участника, который будет знать и о модели, и о пейджинге и инкапсулировать логику fetch через пейджер напрямую. При этом ни модель не будет знать и пейджинге, ни педжинг о модели.