Normalmente você passa os itens que quer procurar, a menos que você tenha de procurar por muitas chaves. Nesse caso, crie uma outra classe que serve para procurar o tal item.
E a propósito, porque é que está retornando um IList? Você está programando em C#?
[quote=entanglement]Normalmente você passa os itens que quer procurar, a menos que você tenha de procurar por muitas chaves. Nesse caso, crie uma outra classe que serve para procurar o tal item.
E a propósito, porque é que está retornando um IList? Você está programando em C#?
[/quote]
É. Estou programando em C#. E realmente tem muitas chaves pra passar no objeto.
Então o mais viável seria criar objetos próprios pra passar como parâmetros? Não posso usar objetos que já existem e que já tenham as informações que necessito?
Sei que ficar realmente estranho, pois por exemplo as vezes passo valores que estão em objetos que são propriedades do que estou passando. Deixa mostrar como (isto é só um exemplo):
Porem antes de postar verifique se a mesma esta correta , exemplo a classe Pessoa esta errada, deveria ficar assim
class Pessoa{
private String cpf;
private String nome;
private String rg;
//get and setters
}
O uso de , chamamos de Generics , ou seja eu posso passar para determinado método somente aquele tipo !
Pelo que entendi vc pode esta em duvida referente a passagem de parâmetros , vc pode passar da maneira que achar necessario , eu aconselho sempre
usar objetos , usando acessos gets e sets , mas isto vc se acostuma com o tempo
Bom Estudo !!
Ps : Nao se esqueça este eh um fórum referente a JAVA . [i][u]
Porem antes de postar verifique se a mesma esta correta , exemplo a classe Pessoa esta errada, deveria ficar assim
class Pessoa{
private String cpf;
private String nome;
private String rg;
//get and setters
}
O uso de , chamamos de Generics , ou seja eu posso passar para determinado método somente aquele tipo !
Pelo que entendi vc pode esta em duvida referente a passagem de parâmetros , vc pode passar da maneira que achar necessario , eu aconselho sempre
usar objetos , usando acessos gets e sets , mas isto vc se acostuma com o tempo
Bom Estudo !!
Ps : Nao se esqueça este eh um fórum referente a JAVA . [i][u][/quote]
[quote=entanglement]Normalmente você passa os itens que quer procurar, a menos que você tenha de procurar por muitas chaves. Nesse caso, crie uma outra classe que serve para procurar o tal item.
E a propósito, porque é que está retornando um IList? Você está programando em C#?
[/quote]
Entendi o que você quer fazer: você quer passar um objeto incompleto do tipo Pessoa, para achar as Pessoas que se enquadram nesse padrão.
Isso é OK desde que o tal objeto Pessoa não tenha validações internas que não permitam seu uso “incompleto”, e que você saiba o que está fazendo (ou seja, documente adequadamente seu uso).
(Eu realmente não gosto disso, em um projeto em C++ que tive de manter, o cara fez exatamente isso (passar para um método um objeto incompleto, para a rotina de busca preenchê-lo) e foi um “parto” reformá-lo para que os parâmetros de busca fossem passados por parâmetros - não gosto de ficar com esse padrão de “objetos incompletos”, até porque para cada tipo de “incompletude” que há em um objeto você acaba tendo, muitas vezes, de criar uma query diferente para cada um - e nesse caso ainda prefiro ter um método separado para cada um.
[quote=entanglement][quote=entanglement]Normalmente você passa os itens que quer procurar, a menos que você tenha de procurar por muitas chaves. Nesse caso, crie uma outra classe que serve para procurar o tal item.
E a propósito, porque é que está retornando um IList? Você está programando em C#?
[/quote]
Entendi o que você quer fazer: você quer passar um objeto incompleto do tipo Pessoa, para achar as Pessoas que se enquadram nesse padrão.
Isso é OK desde que o tal objeto Pessoa não tenha validações internas que não permitam seu uso “incompleto”, e que você saiba o que está fazendo (ou seja, documente adequadamente seu uso).
(Eu realmente não gosto disso, em um projeto em C++ que tive de manter, o cara fez exatamente isso (passar para um método um objeto incompleto, para a rotina de busca preenchê-lo) e foi um “parto” reformá-lo para que os parâmetros de busca fossem passados por parâmetros - não gosto de ficar com esse padrão de “objetos incompletos”, até porque para cada tipo de “incompletude” que há em um objeto você acaba tendo, muitas vezes, de criar uma query diferente para cada um - e nesse caso ainda prefiro ter um método separado para cada um.
[/quote]
Não é que eu queira fazer desta forma. Busco formas melhores. Pois se passo os parâmetros direto, a lista fica as vezer enorme e não fica visualmente legal. Já o objeto incompleto, para quem passa o parâmetro fica um incógnita do que passar.
Eu não sou muito fã de passar tipos primitivos e objetos básicos da linguagem, prefiro passar algo com mais contexto:
[code]List buscar(CPF cpf) {
// implementação
}
List buscar(RG rg) {
// implementação
}
List buscar(Pessoa pessoa) {
// implementação
}[/code]A vantagem é que o código fica bem mais limpo, há um reaproveitamento muito maior dos objetos com composição, agregação, além desses objetos poderem assumir outros papéis, como formatar seus próprios números.
A desvantagem é que aumenta o número de classes a serem escritas no sistema.
[quote=Bruno Laturner]Eu não sou muito fã de passar tipos primitivos e objetos básicos da linguagem, prefiro passar algo com mais contexto:
[code]List buscar(CPF cpf) {
// implementação
}
List buscar(RG rg) {
// implementação
}
List buscar(Pessoa pessoa) {
// implementação
}[/code]A vantagem é que o código fica bem mais limpo, há um reaproveitamento muito maior dos objetos com composição, agregação, além desses objetos poderem assumir outros papéis, como formatar seus próprios números.
A desvantagem é que aumenta o número de classes a serem escritas no sistema.[/quote]
isso nao tem nenhuma desvantagem , ter muitas classes escritas ? isso nao é para se preocupar.
Tem é vantagem codigo legivel e bem mais limpo o que facilita bastante na manuntenção para quem o fizer. O problema nao é apenas fazer funcionar é mesmo manter o funcionamento da coisa.