Design a shopping web application, which on a query will return arbitarily more number of records. But the requirement is to display only 10 records maximum per page. Also, you are not supposed to execute the same query to fetch the next result set. Also, user should be able to navigate to all the search results back & forth. So, what type of design pattern will be used?