<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>:: blog do peron :: &#187; Patterns</title>
	<atom:link href="http://www.marcosperon.com/category/java/patterns/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcosperon.com</link>
	<description>here you will see a bit of everything</description>
	<lastBuildDate>Tue, 20 Oct 2009 21:15:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
<link>http://www.marcosperon.com</link>
<url>http://www.marcosperon.com/wp-content/plugins/maxblogpress-favicon/icons/favicon-96.ico</url>
<title>:: blog do peron ::</title>
</image>
		<item>
		<title>Patterns &#8211; Fundamental</title>
		<link>http://www.marcosperon.com/2007/03/29/patterns-interface/</link>
		<comments>http://www.marcosperon.com/2007/03/29/patterns-interface/#comments</comments>
		<pubDate>Thu, 29 Mar 2007 19:03:30 +0000</pubDate>
		<dc:creator>Peron</dc:creator>
				<category><![CDATA[Patterns]]></category>

		<guid isPermaLink="false">http://www.marcosperon.com/2007/03/29/patterns-interface/</guid>
		<description><![CDATA[ Os Padrões de projeto fundamentais são padrões básicos, e é extremamente necessário conhecê-los e entendê-los, pois são usados extensivamente por outros patterns.
Nesta seção, serão definidos os patterns:
Delegation
Interface
Abstract Superclass
Interface &#38; Abstract Superclass
Immutable
Marker Interface
Proxy

Delegation 
Basicamente é que ao invés de extender uma classe para incrementar suas funcionalidades você simplesmente USA ela em outro objeto. 
Interface
Quando se [...]]]></description>
			<content:encoded><![CDATA[<p> Os Padrões de projeto fundamentais são padrões básicos, e é extremamente necessário conhecê-los e entendê-los, pois são usados extensivamente por outros patterns.</p>
<p>Nesta seção, serão definidos os patterns:</p>
<p><em>Delegation<br />
Interface<br />
Abstract Superclass<br />
Interface &amp; Abstract Superclass<br />
Immutable<br />
Marker Interface<br />
Proxy</em></p>
<p><span id="more-8"></span></p>
<p><strong>Delegation </strong></p>
<p>Basicamente é que ao invés de extender uma classe para incrementar suas funcionalidades você simplesmente USA ela em outro objeto.<strong> </strong></p>
<p><strong>Interface</strong></p>
<p>Quando se quer criar independência de um serviço específico, como por exemplo criar um camada de acesso a diversos bancos de dados, as interfaces auxiliam a abstrair, criando um contrato, onde não importa qual seja, qualquer classe que queira implementar o serviço, só precisa cumprir os contratos (definir os métodos).</p>
<p><strong>Abstract Superclass</strong></p>
<p>Se há duas classes que possuem código em comum, você pode agrupar este código refatorando e colocando em uma superclasse o código repetido, e, ambas as subclasses extenderem a superclasse, implementando ali suas particularidades.</p>
<p><strong>Interface &amp; </strong><strong>Abstract Superclass</strong></p>
<p>Porquê usar somente um dos padrões se você pode ser mais organizado e eficiente e usar ambos? Use Interface para abstrair a classe que implementa um serviço, e forneça uma classe abstrata com as funcionalidades base.</p>
<p><strong>Immutable</strong></p>
<p>Como o próprio nome já diz em inglês, imutável.</p>
<p><strong>Marker Interface</strong></p>
<p>Uma interface que não declara nenhum método ou variável e é usada para indicar atributos de classes que as implementam. Um bom exemplo é a Interface Serializable da API Java.</p>
<p><strong>Proxy</strong></p>
<p>Basicamente este Pattern é uma classe que funciona como uma interface para alguma coisa, delegando chamadas à uma classe que implementa um serviço. Não é muito útil em sua forma pura, pois sua implementação envolve a criação de uma classe que compartilha uma superclasse ou interface com uma classe provedora de serviço e delega (efetua chamadas de método) a essa classe provedora.</p>
<p><em>*Deduções de um Livro de Patterns que estou lendo. (Mark Grand, Patterns in Java, Volume 1) </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosperon.com/2007/03/29/patterns-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
