<?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>symolon's blog &#187; Java</title>
	<atom:link href="http://symolon.eu/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://symolon.eu</link>
	<description></description>
	<lastBuildDate>Sun, 08 Jan 2012 19:01:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DTO</title>
		<link>http://symolon.eu/2010/06/28/dto/</link>
		<comments>http://symolon.eu/2010/06/28/dto/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 21:45:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[DTO]]></category>

		<guid isPermaLink="false">http://symolon.eu/?p=59</guid>
		<description><![CDATA[DTO (Data Transfer Object) jest wzorcem projektowym służącym do przesyłania danych między aplikacjami bądź warstwami w jednej aplikacji.
Przeanalizujmy sobie następujący przykład:
Nasza aplikacja zbudowana jest w oparciu o popularny wzorzec MVC. W modelu, warstwa DAO tworzy nam proste obiekty POJO, którymi zarządza np. Hibernate. Naszym zadaniem jest przekazać wartości tych obiektów do widoku. Jednak z pewnych [...]]]></description>
			<content:encoded><![CDATA[<p>DTO (<strong>Data Transfer Object</strong>) jest wzorcem projektowym służącym do przesyłania danych między aplikacjami bądź warstwami w jednej aplikacji.<br />
Przeanalizujmy sobie następujący przykład:<br />
Nasza aplikacja zbudowana jest w oparciu o popularny wzorzec MVC. W modelu, warstwa DAO tworzy nam proste obiekty <strong>POJO</strong>, którymi zarządza np. Hibernate. Naszym zadaniem jest przekazać wartości tych obiektów do widoku. Jednak z pewnych względów nie mamy ochoty przesyłać tam obiektów trwałych.<br />
Z drugiej strony mamy formularz, którego pola utworzą nam kilka obiektów trwałych. W tym przypadku z pomocą przychodzi nam wzorzec DTO.<br />
W skrócie polega ona na utworzeniu prostej klasy, która będzie zawierała wymagane przez nas pola (czy to te z formularza, czy te które chcemy wyświetlić na stronie). Następnie w kontrolerze, przy użyciu napisanego przez nas konwertera, zamieniamy daną klasę DTO na odpowiedni obiekt trwały lub w przeciwną stronę.</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">class</span> UserDTO <span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> id<span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> name<span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> age<span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> getId<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">return</span> id<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setId<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">id</span> <span style="color: #339933;">=</span> id<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
...<br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Powyższy kod ukazuje nam fragment prostej klasy DTO, która zostanie utworzona z pól formularza. Zauważmy, że wszystkie pola są typu String, który możemy przekonwertować na odpowiednie typy podczas zamiany obiektu tej klasy na obiekt (bądź obiekty) trwały.<br />
Jest to najprostsze zastosowanie, jednak stosowane bardzo często w rozbudowanych aplikacjach.</p>
]]></content:encoded>
			<wfw:commentRss>http://symolon.eu/2010/06/28/dto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

