Какая лучшая практика при определении нескольких методов, которые возвращают одну и ту же форму данных с разными фильтрами? Явные имена методов или перегруженные методы?
Например. Если у меня есть некоторые продукты, и я вытаскиваю из базы данных
Явный способ:
public List<Product> GetProduct(int productId) { // return a List }
public List<Product> GetProductByCategory(Category category) { // return a List }
public List<Product> GetProductByName(string Name ) { // return a List }
перегруженный способ:
public List<Product> GetProducts() { // return a List of all products }
public List<Product> GetProducts(Category category) { // return a List by Category }
public List<Product> GetProducts(string searchString ) { // return a List by search string }
Я понимаю, что вы можете столкнуться с проблемой похожих подписей, но если вы передаете объекты вместо базовых типов (строка, int, char, DateTime и т.д.), это будет меньше проблемы. Итак... рекомендуется ли перегрузить метод, чтобы уменьшить количество методов, которые у вас есть, и для ясности, или должен каждый метод который фильтрует данные другим способом имеет другое имя метода?