Hello, I'm refactoring an old website that has product search code littered throught the codebehind. I'm trying to encapsulate the search logic into its own class so I've created a Product class with a Search() method. I would like some suggestions about OO best practices so that the class is reusable and maintainable. The questions I have are:
- Should I make the search() method an instance method or make it static? For now the class is just really there to encapsulate my search logic
- If I make it an instance method should it return a list of products
or should it populate a member property that I can access like p.Search(); var x = p.ProductList;
- The search method requires upward of 7 parameters of different types, what's the best way to provide them?
- pass them all i.e. p.Search (param1, param2, ..., param7)
- create a SearchParams structure in the class, populate it and pass that i.e. p.Search(searchParams)
- Instantiate a Product object and set properties on it that are used by the Search method i.e. p.ID = 123; etc.... p.Search();
I've used variations of the above before but would like to know what's the best way.
View Complete Post