The Query Object and Repository Pattern