Jump to content

Instânciar um novo objeto ou passar como parâmetro?


yschmitzz

Recommended Posts

Tenho uma dúvida, que sei que as 2 opções estão certa, mas acredito que de acordo com a Boa prática de programação deva existir uma maneira melhor de se fazer isso

É o seguinte, a um tempo tenho desenvolvendo um projeto em Wpf, com o objetivo de aprender mais sobre a linguagem, o que esse projeto já me deu de dor de cabeça, mas também já me ensino muita coisa, graças também ao google e o pessoal do forum já aproveitando pra agradecer a vocês 😛

mas em fim, não gosto de manter o código todo em uma classe, separo tudo de acordo com a funcionalidade, não sei se é a forma certa mas assim que eu faço,

minha dúvida e em relação na hora em que preciso trocas informações entre as classes, com as várias cabeçadas que dei em meu projeto aprendi a passar um objeto como parâmetro

públic classePrincipal () {
	classeSecundaria cs2 = new classeSecundaria(this)
}

e na classeSecundária receber o parâmetro

públic classeSecundaria (classePrincipal cs) {
cs.algumMétodo()
}

quando devo instanciar um objecto normalmente e quando devo passar como parâmetro?

vlw pessoal

Edited by apocsantos
Link to comment
Share on other sites

Isso depende muito de como organizas a aplicação.

Mas a minha preferência é que a classe secundária receba as dependências pelo construtor.

eu fazia algo do género:

private IFuncionalidadesClassePrincipal classePrincipal;

public ClasseSecundaria ( IFuncionalidadesClassePrincipal classePrincipal ) {
this.classePrincipal = classePrincipal;
}

em que IFuncionalidadesClassePrincipal (deveria ter um nome mais adequado) seria uma interface com os métodos que a classe secundária precisa.

Claro que isto não se adequa tudo e não deves criar interfaces por tudo e por nada, mas dá para ter uma ideia.

Edited by apocsantos

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Sim, como o Bruno mencionou não existe jeito mais certo ou errado. Porém existe um tendência de preferir a forma onde é passado no parâmetro e de preferencia usando interfaces ao invés de classes concretas. Isto se chama dependency injection e facilita a testagem e manutenção do código pois permite a troca da classe passada por parâmetro sem ter que modificar a classe que recebe.

Fernando Lage Bastos - MCP/MCTS/MCPD

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.