Что лучше использовать при определении нескольких методов, которые возвращают одну и ту же форму данных с разными фильтрами? Явные имена методов или перегруженные методы?
Например. Если у меня есть некоторые продукты, и я вытаскиваю из базы данных
явный способ:
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 }
Я понимаю, что вы можете столкнуться с проблемой подобных подписей , но если вы передаете объекты вместо базовых типов (string, int, char, DateTime и т. Д.), Это будет меньше проблем , Итак ... это хорошая идея перегрузить метод , чтобы уменьшить количество методов, которые у вас есть, и для ясности, или должен каждый метод , который фильтрует данные по-разному имеют другое имя метода ?