pessoal, estou em dúvida quanto ao paradigma O.O. pois um amigo meu sempre pega no meu pé dizendo prá mim não usar muitas classes e tal, dizendo que pode sobrecarregar a memória do servidor, e eu não sei oque dizer pois não entendo isto. A coisa mais simples que precisei fazer foi uma classe com um uma classe interna + uma collection, daí o cara me tesourou.
Por isto gostaria de saber se vcs já encontraram problema deste tipo em algum projeto e também se podem me esclarecer se a qtidade de objeto encapsulados dentro de outro realmente pesa ou não.
Realmente muitos objetos embutidos dentro de outro pode pesar. É como no tempo da programação estruturada onde muitas variáveis também podia pesar.
Mas e quando é bom fazer isto? Ora, sempre que precisar. Há objetos muito complexos que são absolutamente necessários e nisto reside o poder da OO. Esta capacidade de abstração nos permite tratar problemas muito mais complexos do que com as linguagens puramente estruturadas, principalmente sem garbage collector para liberar a memória alocada.
Não tenha medo de escrever classes complexas. Usando-as aprenderá como escrevê-las de forma eficiente e mande seu amigo programar em assembler.
Não precisa ficar economizando objetos e classes - isso talvez faça diferença em J2ME, não em J2SE/J2EE. Economizar objetos pode fazer algum sentido em C++ onde a alocação de memória é muito lenta; em Java, a alocação é super-rápida.
Sim objetos consomem recursos do servidor (nada mais natural).
Mas e dái ???
Primeiro que para vc consguir uma perda em desempenho realmente significativa num servidor moderno, vc terá que se esforçar bastaaaaaaante.
Os maiores ganhos em performance devem-se a escolha de algoritmos bons, e não desta mesquinharia de economizar objetos.
Depois que os objetos valem muito o preço que se paga em recursos (e cada vez mais, com o avanço da tecnologia, tanto compiladores e máquinas virtuais).
Se a abstração não fosse uma boa prática, e realmente a é, ainda estariamos programando em código hexadecimal.
[quote]
Premature optimization is the root of all evil (or at least most of it) in programming.[/quote]
“Computer Programming as an Art” _ Donald Knuth
Ratificando…
Tambem fiquei com essa duvida um tempo atrás, sobre a performance.
Tive que fazer um sistema em C# no .NET :twisted: pra uma aplicacao em Pocket, e achei que ela ficou um pouco mais pesada do que a anterior que nao era OO.
Mas acho que a organizacao do codigo e a facilidade de manutencao compensam alguns segundos…