Managing a collection of items can be challenging, especially when filtering based on specific data points. For example, let's say we have a collection of action objects like {name: Detail}, {name: Spec}... and two data points determining which actions to use based on category and page. How can we best implement an OOP approach to efficiently handle this problem, particularly as the scale increases to hundreds of actions across ten categories and pages? Previous attempts using the Factory pattern have not been successful.