<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Classe Abstrata ou Interface"]]></title>
		<link>http://www.guj.com.br/posts/list/4.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Classe Abstrata ou Interface"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ Qual a diferença entre elas??<br /> <br /> Assim: Qual a diferença entre implementar uma interface, implementando todos os métodos , ou herdar de uma classe que tenha métodos abstratos, que terão que ser sobrescritos.??]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/469732/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/469732/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 14 Apr 2008 14:00:13]]> GMT</pubDate>
				<author><![CDATA[ thegoergen]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ Diferença funcional nenhuma.<br /> Mas em relação a projeto, existe uma diferença significativa.<br /> Quando você fala que vai herdar de uma classe abstrata no seu projeto quer dizer que quem herda é um tipo da classe abstrata, só que especializada.<br /> E o conceito de interfaces, você usa como um serviço que a classe possui.<br /> Quem implementa a interface PersistenciaDAOIf tem que prover todos serviços dessa interface, sem necessariamente ser um PersistenciaDAO.<br /> Mais ou menos assim.<br /> Segue alguns links:<br /> <br /> <a class="snap_shots" href="http://www.macoratti.net/net_ica1.htm" target="_blank" rel="nofollow">http://www.macoratti.net/net_ica1.htm</a><br /> <br /> <a class="snap_shots" href="http://www.guj.com.br//jforum.java?sourceid=Mozilla-search&module=search&action=search&clean=1&search_keywords=classe+abstrata+x+interface&search_terms=all&sort_by=p.post_time&sort_dir=DESC" target="_blank" rel="nofollow">http://www.guj.com.br//jforum.java?sourceid=Mozilla-search&module=search&action=search&clean=1&search_keywords=classe+abstrata+x+interface&search_terms=all&sort_by=p.post_time&sort_dir=DESC</a><br /> <br /> <a class="snap_shots" href="http://wickedcoolthoughts.blogspot.com/2008/01/again-abstract-class-vs-interface.html" target="_blank" rel="nofollow">http://wickedcoolthoughts.blogspot.com/2008/01/again-abstract-class-vs-interface.html</a><br /> <br /> <a class="snap_shots" href="http://www.mail-archive.com/java-list@soujava.org.br/msg13520.html" target="_blank" rel="nofollow">http://www.mail-archive.com/java-list@soujava.org.br/msg13520.html</a>]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/469740/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/469740/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 14 Apr 2008 14:05:43]]> GMT</pubDate>
				<author><![CDATA[ antoniopopete]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=thegoergen]Qual a diferença entre elas??<br /> <br /> Assim: Qual a diferença entre implementar uma interface, implementando todos os métodos , ou herdar de uma classe que tenha métodos abstratos, que terão que ser sobrescritos.??[/quote]<br /> <br /> Acredito que sua dúvida seja a implementação. Interface apenas uma janela de comunicação entre objetos.<br /> <br /> Classes abtratas podes implementar e passar pra frente <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0"><br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/469744/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/469744/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 14 Apr 2008 14:08:22]]> GMT</pubDate>
				<author><![CDATA[ javaman00]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ Lembrando também que Interface vc pode implementar várias, porém classe abstrata só pode herdar de uma...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/469767/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/469767/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 14 Apr 2008 14:33:43]]> GMT</pubDate>
				<author><![CDATA[ fpavao]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=thegoergen]Qual a diferença entre elas??<br /> <br /> Assim: Qual a diferença entre implementar uma interface, implementando todos os métodos , ou herdar de uma classe que tenha métodos abstratos, que terão que ser sobrescritos.??[/quote]<br /> <br /> Como já foi dito a diferença é no conceito e não na implementação. <br /> Quanto vc usa uma classe abstracta a sua nova classe É-UM tipo da classe mãe. <br /> Quando vc usa uma interface , a classe implementadora PARECE essa interface.<br /> <br /> Existe uma grande diferença entre ser e parecer, como compreederá.<br /> <br /> Heroi é um classe abstracta. Voador é um comportamento , logo é um interface.<br /> O Heroi pode ser voador, mas nem todos os voadores são Herois (ex: passaro)]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/469778/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/469778/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 14 Apr 2008 14:51:29]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ De modo geral, prefira usar interfaces a classes abstratas (pelo menos enquanto o Java não tiver "mixins" <img src="http://www.guj.com.br/images/smilies/69934afc394145350659cd7add244ca9.gif" border="0"> )<br /> Eu normalmente faço o seguinte:<br /> - Crio uma interface;<br /> - Crio uma implementação padrão para essa interface;<br /> - Para escrever uma classe que implementa essa interface, posso usar um membro privado que é uma instância dessa implementação-padrão, e delegar vários métodos dessa interface a essa implementação-padrão. Os métodos cuja implementação for diferente da padrão devem ser implementados explicitamente.<br /> <br /> Classes abstratas deixam seu programa muito engessado. Às vezes isso é interessante (por exemplo, quando você cria uma servlet estendendo HttpServlet), mas normalmente isso é indesejável.<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/469780/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/469780/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 14 Apr 2008 14:55:00]]> GMT</pubDate>
				<author><![CDATA[ thingol]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ prefira sempre o uso de interfaces (e da para sempre usar interfaces em vez de classe abstrata, se voce gastar um pouquinho mais de codigo e fizer composicao). é mais elegante, mais flexivel e menos acoplado... justo porque nao ha heranca de codigo. algumas pessoas consideram heranca uma forte quebra de encapsulamento.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/469787/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/469787/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 14 Apr 2008 15:00:17]]> GMT</pubDate>
				<author><![CDATA[ Paulo Silveira]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ Entendi.  <img src="http://www.guj.com.br/images/smilies/8f7fb9dd46fb8ef86f81154a4feaada9.gif" border="0"> <br /> <br /> Valeu pessoal!  <img src="http://www.guj.com.br/images/smilies/97ada74b88049a6d50a6ed40898a03d7.gif" border="0"> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470205/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470205/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 09:52:31]]> GMT</pubDate>
				<author><![CDATA[ thegoergen]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=Paulo Silveira]prefira sempre o uso de interfaces (e da para sempre usar interfaces em vez de classe abstrata, se voce gastar um pouquinho mais de codigo e fizer composicao). é mais elegante, mais flexivel e menos acoplado... justo porque nao ha heranca de codigo. algumas pessoas consideram heranca uma forte quebra de encapsulamento.[/quote]<br /> <br /> Apesar de que há casos (tipo, aquelas interfaces com centenas de métodos), que é melhor herdar de uma classe abstrata.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470405/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470405/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 13:32:12]]> GMT</pubDate>
				<author><![CDATA[ victorwss]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ a) Se uma interface tem centenas de métodos há alguma coisa errada nela. <br /> b) Que pena que Java não tem "mixins" igual Scala - aí não estaríamos discutindo essas coisas chatas. ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470439/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470439/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 14:08:31]]> GMT</pubDate>
				<author><![CDATA[ thingol]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=thingol]a) Se uma interface tem centenas de métodos há alguma coisa errada nela. <br /> b) Que pena que Java não tem "mixins" igual Scala - aí não estaríamos discutindo essas coisas chatas. [/quote]<br /> <br /> Infelizmente existem algumas interfaces no java SE e no java EE que tem uma tonelada de métodos. HttpServletRequest é um bom exemplo. Já tentou fazer um façade para HttpServletRequest? Você vai ver que é bem mais conveniente herdar de HttpServletRequestWrapper.<br /> <br /> Realmente, mixins é o que me faz mais falta no java e força você a escrever bastante código wrapper, apenas-passa-a-bola-para-frente ou nos piores casos copy-and-paste.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470479/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470479/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 14:51:20]]> GMT</pubDate>
				<author><![CDATA[ victorwss]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=victorwss]<br /> Infelizmente existem algumas interfaces no java SE e no java EE que tem uma tonelada de métodos. HttpServletRequest é um bom exemplo. Já tentou fazer um façade para HttpServletRequest? Você vai ver que é bem mais conveniente herdar de HttpServletRequestWrapper.<br /> [/quote]<br /> <br /> Essa classe foi criada por uma questao dos frameworks poderem rodar em especificações mais novas, ja que a interface HttpServerRequest muda muito e metodos sao adicionados. Nao foi criada com o intuito de te poupar trabalho nao, nem de ser usada pelos servidores. É que se voce nao estende-la, o dia que entrar um novo metodo na HttpServletRequest, voce vai ter um NoSuchMethodError ao chama-lo na sua facade/proxy.<br /> <br /> Intefaces com muitos metodos, como disse o thingol, é sinal de design ruim. Mesmo ocorre com Connection e alguns listeners.<br /> <br /> Entendo seu argumento. Esse uso de interfaces que voce esta falando é só para nao ter de escrever algumas duzias de metodos, mas voce poderia facilmente usar composicao em vez de heranca: implementa a interface e delega para a classe, em vez de estende-la. Claro, voce tera de escrever um pouco mais, como ja falei no post anterior, mas qualquer ferramenta gera os delegate methods pra voce. Confesso que as vezes herdo tambem, mas com a plena consciencia de que seria mais elegante fazer como falei aqui]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470549/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470549/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 15:47:43]]> GMT</pubDate>
				<author><![CDATA[ Paulo Silveira]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=Paulo Silveira]<br /> Intefaces com muitos metodos, como disse o thingol, é sinal de design ruim. Mesmo ocorre com Connection e alguns listeners.<br /> [/quote]<br /> <br /> Vamos com calma. Muitos métodos numa interface não é sinal de design ruim [i]per se[/i].<br /> Connection tem muitos métodos, mas Connection faz parte de uma implementação do padrão Bridge. É suposto ela ter quantos métodos quiser.  <br /> <br /> Tudo depende do contexto. ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470580/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470580/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 16:08:02]]> GMT</pubDate>
				<author><![CDATA[ sergiotaborda]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ Acredito que o objetivo da herança é de amarrar a classe a uma familia de objetos! Criando objetos de verdade e seguindo principios OO. Isso mantem a integridade de toda uma familia de objetos, embora os mantenham um tanto dependentes.....<br /> <br /> A composição em relação a herança é válida, mas será que vale pra tudo mesmo?<br /> <br /> Poderiam citar algum caso em que a herança valha a pena em relação a composição?<br /> <br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470592/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470592/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 16:17:28]]> GMT</pubDate>
				<author><![CDATA[ Zakim]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=sergiotaborda]<br /> <br /> Vamos com calma. Muitos métodos numa interface não é sinal de design ruim [i]per se[/i].<br /> Connection tem muitos métodos, mas Connection faz parte de uma implementação do padrão Bridge. É suposto ela ter quantos métodos quiser.  <br /> [/quote]<br /> <br /> Corretissimo, generalizei demais, mudo a frase para "Interfaces com muitos metodos _geralmente_ indicam um design ruim" (e de qualquer maneira acho a interface Connection muito grande, poderia ter sido quebrada em varias!).<br /> <br /> [quote=Zakim]<br /> A composição em relação a herança é válida, mas será que vale pra tudo mesmo?<br /> <br /> Poderiam citar algum caso em que a herança valha a pena em relação a composição?<br /> [/quote]<br /> <br /> Pra ser sincero, nao vejo nenhum caso. Hoje sou bem xiita que nem o James Gosling, Erich Gamma e Joshua Bloch, que descem a lenha em cima de heranca! <br /> <br /> [quote=James Gosling]::Rather than subclassing, just use pure interfaces. <br /> It's not so much that class inheritance is particularly bad. It just <br /> has problems.:: <br /> [/quote].<br /> <br /> <a class="snap_shots" href="http://www.artima.com/intv/gosling3P.html" target="_blank" rel="nofollow">http://www.artima.com/intv/gosling3P.html</a><br /> <br /> No blog da Caelum há tambem um post sobre o assunto:<br /> <a class="snap_shots" href="http://blog.caelum.com.br/2006/10/14/como-nao-aprender-orientacao-a-objetos-heranca/" target="_blank" rel="nofollow">http://blog.caelum.com.br/2006/10/14/como-nao-aprender-orientacao-a-objetos-heranca/</a><br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/470605/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/470605/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 15 Apr 2008 16:27:56]]> GMT</pubDate>
				<author><![CDATA[ Paulo Silveira]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=Paulo Silveira]<br /> Intefaces com muitos metodos, como disse o thingol, é sinal de design ruim. Mesmo ocorre com Connection e alguns listeners.<br /> [/quote]<br /> <br /> <br /> <br /> Ow, no livro use a cabeca padroesde projetos, o autor fala muito sobre composição, no padrão strategy é q mais fala sobre isso.<br /> pelo q entendi, strategy usa composição.<br /> A pergunta é:<br /> "qndo eu utilizo a composição estou usando o padrao strategy"?<br /> falow]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/529776/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/529776/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Tue, 29 Jul 2008 23:23:22]]> GMT</pubDate>
				<author><![CDATA[ yoshikichi]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ Não necessáriamente!<br /> <br /> Crie um novo tópico para discutir isso! <img src="http://www.guj.com.br/images/smilies/69934afc394145350659cd7add244ca9.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/530516/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/530516/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Wed, 30 Jul 2008 18:43:21]]> GMT</pubDate>
				<author><![CDATA[ Zakim]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=Paulo Silveira]prefira sempre o uso de interfaces (e da para sempre usar interfaces em vez de classe abstrata, se voce gastar um pouquinho mais de codigo e fizer composicao). é mais elegante, mais flexivel e menos acoplado... justo porque nao ha heranca de codigo. algumas pessoas consideram heranca uma forte quebra de encapsulamento.[/quote]<br /> <br /> Pode mostrar um exemplo pratico de uso de interfaces + composição e outro com classe abstratas ? Acho que fica melhor explicado.<br /> <br /> Abraços]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/530715/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/530715/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Thu, 31 Jul 2008 08:51:19]]> GMT</pubDate>
				<author><![CDATA[ netShot]]></author>
			</item>
			<item>
				<title>Classe Abstrata ou Interface</title>
				<description><![CDATA[ Estou ressucitando este tópico para discutir um caso especial:<br /> <br /> [quote=Paulo Silveira]Pra ser sincero, nao vejo nenhum caso. Hoje sou bem xiita que nem o James Gosling, Erich Gamma e Joshua Bloch, que descem a lenha em cima de heranca![/quote]<br /> Paulo, [url=http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/herancavscomposicao.htm]neste link[/url] o autor expõe um exemplo onde a herança seria adequada:<br /> [code]class Transacao {<br /> <br /> }<br /> <br /> class Reserva extends Transacao {<br /> <br /> }<br /> <br /> class Compra extends Transacao {<br /> <br /> }[/code]<br /> E justifica com o texto abaixo ( traçando um paralelo entre as 5 regras que regem o uso de herança ):<br /> [quote]- Regra 1 (tipo especial): ok. Uma Reserva é um tipo especial de Transação e não um papel assumido por uma Transação<br /> - Regra 2 (mutação): ok. Uma reserva sempre será uma Reserva, e nunca se transforma em Compra (se houver uma compra da passagem, será outra transação). Idem para Compra: sempre será uma Compra<br /> - Regra 3 (só estende): ok. Ambas as subclasses estendem Transação com novas variáveis e métodos e não fazem override ou anulam coisas de Transação<br /> - Regra 4 (não estende classe utilitária): ok.<br /> - Regra 5 (tipo especial de papel/transação/dispositivo): ok. São tipos especiais de Transação[/quote]<br /> Você concorda com a análise dele? Se discordar, em quais pontos? Na sua opinião, seria coerente forçar a composição afirmando que uma Transacao tem um tipo, e não é de um tipo?<br /> <br /> Abraços<br /> <br /> P.S. - direcionei a questão ao Paulo por causa de sua afirmação citada no início do post, mas gostaria de saber a opinião da galera do fórum também.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/571822/classe-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/571822/classe-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Thu, 9 Oct 2008 18:43:17]]> GMT</pubDate>
				<author><![CDATA[ tnaires]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ Só dando um up...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/572832/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/572832/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Sat, 11 Oct 2008 23:30:40]]> GMT</pubDate>
				<author><![CDATA[ tnaires]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ Eu acho meio hipócrita do Gosling ou qualquer outro envolvido com a criação de Java falar mal de herança. O grande problema é que Java não oferece nenhum mecanismo para reuso de código comparável a herança. Se houvessem mixins ao menos...<br /> <br /> <br /> [quote=tnaires]<br /> [code]class Transacao {<br /> }<br /> <br /> class Reserva extends Transacao {<br /> <br /> }<br /> <br /> class Compra extends Transacao {<br /> <br /> }[/code]<br /> [/quote]<br /> <br /> Não dá para dizer. Sem conhecer o domínio e a implementação qualquer exemplo é falho. O que é uma Transação neste contexto? Eu já trabalhei para alguns bancos e cada um tem um conceito diferente, mesmo várias definições dentro da mesma instituição.<br /> <br /> Eu não sou xiita quanto a isso simplesmente porque já vi [b]muita[/b] besteira sendo feita em nome de "herança é ruim, use composição". Isso é uma [b]rule of thumb[/b] e não uma lei. Como falei antes o design de Java faz com que seja muito difícil resolvermos problemas comuns sem heranças ou gambiarras (strategy de uma implementação só e o fim).<br /> <br /> Para mim, a decisão entre delegação e herança passa pelo domínio e este é o principal juiz.  [b]Esta delegação faz sentido no domínio?[/b] Eu dificilmente criaria uma classe extra na Camada de Negócios só para satisfazer uma rule of thumb.<br /> <br /> Ps: Tarso, dar up é [b]muito[/b] feio.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/572842/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/572842/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Sun, 12 Oct 2008 03:26:42]]> GMT</pubDate>
				<author><![CDATA[ pcalcado]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=pcalcado]Ps: Tarso, dar up é [b]muito[/b] feio.[/quote]<br /> Desculpe <img src="http://www.guj.com.br/images/smilies/499fd50bc713bfcdf2ab5a23c00c2d62.gif" border="0"> ... Você acreditaria se eu dissesse que pensei mil vezes antes de fazer isso? Fiz porque a rotatividade do Java Básico é muito alta, e também porque não encontrei outra opção de torná-lo visível novamente.<br /> [quote=pcalcado]Não dá para dizer. Sem conhecer o domínio e a implementação qualquer exemplo é falho. O que é uma Transação neste contexto? Eu já trabalhei para alguns bancos e cada um tem um conceito diferente, mesmo várias definições dentro da mesma instituição.[/quote]<br /> Entendo. Aparentemente trata-se de uma transação financeira e não bancária. O contexto no qual o exemplo se encaixa é muito vago, não dá mais detalhes sobre o domínio.<br /> [quote=pcalcado]Eu não sou xiita quanto a isso simplesmente porque já vi muita besteira sendo feita em nome de &quot;herança é ruim, use composição&quot;. Isso é uma rule of thumb e não uma lei.[/quote]<br /> Pois é... Eu estava falando justamente isso pra um amigo meu que leu sobre isso há pouquíssimo tempo, e ficou xiita quanto à herança. Quando algumas pessoas se deparam com esse &quot;mantra&quot; pela primeira vez, ficam tão impressionadas que passam a abominar totalmente seu uso. Isso ocorre porque elas vinham utilizando herança em todas as situações que requeriam apenas composição ( o caso Pessoa -&gt; PessoaFisica é clássico ).]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/572864/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/572864/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Sun, 12 Oct 2008 10:49:27]]> GMT</pubDate>
				<author><![CDATA[ tnaires]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=Zakim]Poderiam citar algum caso em que a herança valha a pena em relação a composição?[/quote]<br /> para implementações como nas classes de stream no pacote java.io, utilizando a concepção do pattern decorator.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/572941/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/572941/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 13 Oct 2008 00:41:48]]> GMT</pubDate>
				<author><![CDATA[ faelcavalcanti]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=netShot]Pode mostrar um exemplo pratico de uso de interfaces + composição e outro com classe abstratas ? Acho que fica melhor explicado[/quote]<br /> um exemplo de composição a partir de interfaces você pode visualizar a partir deste modelo abaixo pelo padrão observer:<br /> <br /> [img]http://www.theserverside.com/tt/articles/content/SpringLoadedObserverPattern/clip_image002.jpg[/img]<br /> <br /> já para um modelo com classes abstratas, seria o mesmo padrão utilizando as classes no pacote java.util, como [url=http://java.sun.com/j2se/1.5.0/docs/api/java/util/class-use/Observable.html]Observable[/url]. neste caso prefiro o 1º caso.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/572943/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/572943/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 13 Oct 2008 00:56:45]]> GMT</pubDate>
				<author><![CDATA[ faelcavalcanti]]></author>
			</item>
			<item>
				<title>Re:Classe Abstrata ou Interface</title>
				<description><![CDATA[ [quote=faelcavalcanti]um exemplo de composição a partir de interfaces você pode visualizar a partir deste modelo abaixo pelo padrão observer:[/quote]<br /> Outro exemplo é o padrão Strategy:<br /> [code]interface Strategy {<br />     void doStrategy();<br /> }<br /> <br /> class ConcreteStrategy1 {<br />     void doStrategy() {<br />         System.out.println("Strategy 01");<br />     }<br /> }<br /> <br /> class ConcreteStrategy2 {<br />     void doStrategy() {<br />         System.out.println("Strategy 02");<br />     }<br /> }<br /> <br /> class Client {<br />     private Strategy strategy;<br /> <br />     public void setStrategy(Strategy strategy) {<br />         this.strategy = strategy;<br />     }<br /> }[/code]<br /> http://en.wikipedia.org/wiki/Strategy_pattern]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/87814/572965/reclasse-abstrata-ou-interface
</guid>
				<link>http://www.guj.com.br/prepost/87814/572965/reclasse-abstrata-ou-interface
</link>
				<pubDate><![CDATA[Mon, 13 Oct 2008 06:47:10]]> GMT</pubDate>
				<author><![CDATA[ tnaires]]></author>
			</item>
	</channel>
</rss>
