DEVO USAR MÉTODOS OU PROPIEDADES EM OO?
Prezados colegas,
Tenho uma dúvida referente a estrutura
lógica utilizada em um projeto .NET orientados a objeto.
Me refiro aos projetos (WinForm),orientados a objeto (Mas,sem utilizar padrão de projeto).
O caso:
Digamos que tenho uma classe.Nesta classe um método qualquer que para
funcionar deve receber, por exemplo 3 parâmetros.Para esta classe,eu posso
fornecer os valores para o método,por meio de parâmetros ou utilizando as propiedades
da classe.
Ou seja,Para utilizar esta classe eu a instancio,depois executo o método.
Ao executar o método,eu posso tanto fornecer os dados que o método precisa
usando as propiedades , bem como passar os valores ,usando os parâmetros.
A dúvida:
Na orientação a Objetos (OO),o correto é passar os valores que o método da
classe necessita,por meio:
1.das propiedades
2.Ao executar o método (Usando parâmetros) no método
3.Ou os dois modos estão corretos e é uma questão de preferência pessoal ?
Agradeço qualquer orientação
Tenho uma dúvida referente a estrutura
lógica utilizada em um projeto .NET orientados a objeto.
Me refiro aos projetos (WinForm),orientados a objeto (Mas,sem utilizar padrão de projeto).
O caso:
Digamos que tenho uma classe.Nesta classe um método qualquer que para
funcionar deve receber, por exemplo 3 parâmetros.Para esta classe,eu posso
fornecer os valores para o método,por meio de parâmetros ou utilizando as propiedades
da classe.
Ou seja,Para utilizar esta classe eu a instancio,depois executo o método.
Ao executar o método,eu posso tanto fornecer os dados que o método precisa
usando as propiedades , bem como passar os valores ,usando os parâmetros.
A dúvida:
Na orientação a Objetos (OO),o correto é passar os valores que o método da
classe necessita,por meio:
1.das propiedades
2.Ao executar o método (Usando parâmetros) no método
3.Ou os dois modos estão corretos e é uma questão de preferência pessoal ?
Agradeço qualquer orientação
Acho que a Orientação a objetos é muito mais do que simplesmente instanciar classes. é um conceito. Por que? Ela prega o [Ô]reaproveitamento de dados[Ô]. Pra que? poupar trabalhos. Talvez, não momentâneos, mas futuros. Entendendo este conceito, a forma como você usa ele vai muito da sua preferência. Ta certo que você vai querer estudar padrões e tal, mas por outro lado vai poder criar seu próprio padrão. Eu por exemplo prefiro criar uma classe com atributos (variáveis) privadas, encapsulando-as em metodos públicos para acessa-las como objeto instanciado em outra classe. Gosto bastante de usar o método construtor da classe, e ainda posso criar uma sobrecarga deles principalmente em se tratando de Windows Form.
Também gosto muito de criar classes com atributos públicos e estáticos, etc...
Então, dá pra fazer muita coisa com a Orientação a Objetos. Agora como você vais usar cada coisa, depende muito do momento.
Também gosto muito de criar classes com atributos públicos e estáticos, etc...
Então, dá pra fazer muita coisa com a Orientação a Objetos. Agora como você vais usar cada coisa, depende muito do momento.
Eu dentro da classe usaria algumas variáveis privadas, usaria as propriedades como intercessor dessas variáveis, assim trabalhando com elas dentro do método. é um meio bem simples facil; Eu particularmente prefiro desta forma.
Um exemplo da forma que eu faço.
Citação:
Public Class Registro
Private _Nome As String
[...]
Public Property Nome() As String
Get
Return _Nome
Set(ByVal value As String)
_Nome = Value
End Set
End Property
Public Sub Gravar()
Dim Query As New StringBuilder
Query.Append ([Ô]Insert Into Tabela (NOME) Values ([ô][Ô] & _Nome &[Ô][ô]);[Ô])
Dim Conecta As New classeBancoDados
conecta.executacomando(query.tostring)
End Sub
Um exemplo da forma que eu faço.
Marcos, ao utilizar propriedades como parâmetros de um método, você está deixando o seu código redundante, e por isso, infringindo o conceito de coesão. é claro também que poderá existir casos bem especÃficos onde você seja obrigado a fazer dessa maneira, mas no geral, isso aà é uma má prática. Outra coisa interessante é que se os parâmetros do método não são propriedades do respectivo objeto, e eles juntos formam caracterÃsticas de um único objeto, então, pega-se esses parâmetros e torne-os propriedades de uma outra classe, depois substitua os parâmetros antigos do método por uma referência a esta classe. Fazendo desse jeito, você preserva a assinatura do seu método e o design de seu projeto, pois se você precisar futuramente fazer uma modificação, o que mudará será apenas o algorÃtimo de implementação, e por isso, terá menos partes de código sendo afetadas pelas mudanças. O grande segredo da OO é parar de enxergar as classes como repositórios de dados, a coisa vai muito além disso. Não tem nada a ver com reaproveitamento de dados, como foi dito pelo colega ACCIOLLY. As vezes a herança mais atrapalha do que ajuda. O que mais importa é como o seu projeto está arquitetado para lidar com as mudanças, que é algo praticamente inevitável.
Bom dia!
Ao que parece, os colegas Mouser e Jaba tem uma opinião diferente, para dúvida que postei:
Vou tentar , colocar então uma situação prático , para tentar chegar a conclusão sobre o que é melhor:
O exemplo prático:
Digamos que eu tenho uma classe para lidar com usuários ( ClFuncionario).
- Esta classe tem um método chamado : VerificarIdentificacao. ( Com 2 parâmetros, Nome e senha )
- Digamos que nesta mesma classe, eu criei também duas propiedades: Usuario e Senha
Neste caso, o melhor é executar o método, passando os dados, por meio dos parâmetros do método, ou
devo fornecer os dados para as propiedades e depois executar o método???
é claro, que irá funcionar dos 2 modos. Mas, do ponto de vista da OO, o que pode ser considerado boa prática???
Fornecer os dados de entrada do método usando as propiedades ou direto no método,usando os parâmetros ????
Agradeço qualquer opinião...
Ao que parece, os colegas Mouser e Jaba tem uma opinião diferente, para dúvida que postei:
Vou tentar , colocar então uma situação prático , para tentar chegar a conclusão sobre o que é melhor:
O exemplo prático:
Digamos que eu tenho uma classe para lidar com usuários ( ClFuncionario).
- Esta classe tem um método chamado : VerificarIdentificacao. ( Com 2 parâmetros, Nome e senha )
- Digamos que nesta mesma classe, eu criei também duas propiedades: Usuario e Senha
Neste caso, o melhor é executar o método, passando os dados, por meio dos parâmetros do método, ou
devo fornecer os dados para as propiedades e depois executar o método???
é claro, que irá funcionar dos 2 modos. Mas, do ponto de vista da OO, o que pode ser considerado boa prática???
Fornecer os dados de entrada do método usando as propiedades ou direto no método,usando os parâmetros ????
Agradeço qualquer opinião...
Se as duas possibilidades resolvem o mesmo problema e só se diferenciam pela forma de implementação, então qual seria a finalidade de criar tal redundância? Isso é parecido com a ideia de se criar dois métodos de somar e eles se diferenciarem apenas pela ordem dos parâmetros. Ou seja, não faz sentido algum ter duas implementações para o mesmo problema numa mesma classe. Então qual seria a forma mais adequada para esse caso? As duas formas, desde que não deixe o código com redundâncias. O que vai definir qual delas escolher é a lógica de negócio. Existirão projetos que será melhor fazer uso dos atributos no método e outros que será melhor passar os dados via parâmetros.
Tópico encerrado , respostas não são mais permitidas