Perguntas com a marcação «method-overloading»


2
Por que o PHP não suporta sobrecarga de funções?
Gostaria de saber se um dos principais recursos de uma linguagem de programação é ter a capacidade de sobrecarregar funções por meio de argumentos. Eu acho que é essencial no contexto da programação orientada a objetos. É intencionalmente deixado para trás e não é permitido? Ou sobrecarregar não é uma …

5
É suficiente distinguir métodos apenas pelo nome do argumento (não pelo tipo)?
É suficiente distinguir métodos apenas pelo nome do argumento (não pelo tipo) ou é melhor nomeá-lo mais explicitamente? Por exemplo T Find<T>(int id)vs T FindById<T>(int id). Existe alguma boa razão para nomeá-lo de forma mais explícita (por exemplo, adicionar ById) vs manter apenas o nome do argumento? Uma razão pela …

2
Por que métodos que usam uma quantidade ilimitada de parâmetros geralmente definem sobrecargas com menos parâmetros?
Por exemplo, o System.IO.Path.Combinemétodo no .NET possui as seguintes sobrecargas: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Qual é o sentido dos três últimos? O primeiro abordaria todos, como se você observasse atentamente, ele usa a paramspalavra - chave. O argumento de compatibilidade com versões anteriores …


4
Devemos renomear métodos sobrecarregados?
Suponha uma interface contendo estes métodos: Car find(long id); List<Car> find(String model); É melhor renomeá-los assim? Car findById(long id); List findByModel(String model); De fato, qualquer desenvolvedor que use essa API não precisará procurar na interface para conhecer os possíveis argumentos dos find()métodos iniciais . Portanto, minha pergunta é mais geral: …



2
Sobrecarga ou parâmetros opcionais
Quando tenho uma função que pode ou não receber um determinado parâmetro, é melhor sobrecarregar a função ou adicionar argumentos opcionais? Se cada um tem altos e baixos - quando eu usaria cada um?



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.