<?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; Studia</title>
	<atom:link href="http://symolon.eu/category/studia/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>Wzorzec projektowy MVC (Model-View-Controller) cz.1</title>
		<link>http://symolon.eu/2010/02/28/wzorzec-projektowy-mvc-model-view-controller-cz-1/</link>
		<comments>http://symolon.eu/2010/02/28/wzorzec-projektowy-mvc-model-view-controller-cz-1/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 10:09:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Studia]]></category>

		<guid isPermaLink="false">http://symolon.eu/?p=11</guid>
		<description><![CDATA[Jak zapowiedziałem, będę powoli umieszczał materiały z moich wykładów. Na pierwszy ogień pójdzie wzorzec projektowy MVC. W pierwszej części przedstawię jego teoretyczną budowę. Praktyczne wykorzystanie w Spring MVC ukaże się już wkrótce (przynajmniej mam taką nadzieje). Jeśli ktoś ma ochotę może również obejrzeć prezentacje, którą udostępniam tutaj.

Jest to jeden z najbardziej popularnych wzorców wykorzystywanych przy [...]]]></description>
			<content:encoded><![CDATA[<p><em><span>Jak zapowiedziałem, będę powoli umieszczał materiały z moich wykładów. Na pierwszy ogień pójdzie wzorzec projektowy MVC. W pierwszej części przedstawię jego teoretyczną budowę. Praktyczne wykorzystanie w Spring MVC ukaże się już wkrótce (przynajmniej mam taką nadzieje). Jeśli ktoś ma ochotę może również obejrzeć prezentacje, którą udostępniam <a href="http://symolon.eu/wp-content/uploads/2010/02/MVC.pdf">tutaj</a>.</span></em><br />
<span id="more-11"></span><br />
<span>Jest to jeden z najbardziej popularnych wzorców wykorzystywanych przy projektowaniu zarówno aplikacji desktopowych jak i webowych. Historia jego powstania sięga lat 70. XX wieku. Opracowany w laboratoriach firmy Xerox zyskał na popularności wraz z szybkim rozwojem inżynierii oprogramowania. </span></p>
<p><span>W jego skład wchodzą 3 komponenty: Model, Widok, Kontroler, które zaprezentuje na podstawie Spring MVC Framework w części 2. Obecnie wystarczy nam ogólna znajomość poszczególnych elementów.<br />
</span></p>
<ul>
<li><span><strong>Model</strong> &#8211;  element odpowiedzialny za logikę biznesową, czyli w najprostszym przypadku określa sposób przechowywania i dostępu do danych</span></li>
<li><span><strong>Widok</strong> &#8211; na podstawie modelu tworzy jego graficzną reprezentacje, która zostaje przedstawiona użytkownikowi. Istnieje możliwość by wiele widoków dotyczyło tego samego modelu.</span></li>
<li><span><strong>Kontroler</strong> &#8211; odbiera żądania, przetwarza je wykonując odpowiednie operacje tworząc lub uaktualniając model </span></li>
</ul>
<p>Oczywiście musimy zdawać sobie sprawę, że klasyczna interpretacja tego wzorca jest nieco inna niż jego odpowiednik sieciowy.</p>
<p style="text-align: center;"><a title="Klasyczny wzorzec MVC" rel="lytebox" href="http://symolon.eu/wp-content/uploads/2010/02/mvc-classic.png"><br />
<img style="border: none;" src="http://symolon.eu/wp-content/uploads/2010/02/mvc-classic-thumb.png" alt="MVC" /></p>
<p></a></p>
<p>Tradycyjna implementacja wzorca MVC:</p>
<ul>
<li>Kontroler  wykonuje żądania i aktualizuje model</li>
<li>Zmiany zostają przekazane do widoku, który samoczynnie się uaktualni (np. korzystając z wzorca obserwator)</li>
</ul>
<p><span>Ze względu na ograniczenia HTTP stworzenie takiej idealnej implementacji w aplikacjach sieciowych jest trudne. Musimy zatem stworzyć rozwiązanie, w którym to nie model przesyła dane do widoku ale widok pobiera dane z modelu i wyświetla je w odpowiedni sposób po stronie użytkownika.</span></p>
<p><span>Zastanówmy się jak przebiega proces wyświetlenia strony www w przeglądarce internetowej. Przeglądarka generuje żądanie, aby przekazać na serwer informacje o czynności wykonanej przez użytkownika. Serwer reaguje wykonując pewne informacje, po czym generuje widok który wysyłany jest jako odpowiedź do klienta.</span></p>
<p style="text-align: center;"><a title="Webowy wzorzec MVC" rel="lytebox" href="http://symolon.eu/wp-content/uploads/2010/02/mvc-network.png"><br />
<img style="border: none;" src="http://symolon.eu/wp-content/uploads/2010/02/mvc-network-thumb.png" alt="MVC" /></p>
<p></a></p>
<p><span>Wzorzec MVC rozpoczyna działanie w chwili, gdy serwer odbiera żądanie HTTP. Na podstawie informacji w nim przekazanych (URL, parametry), aplikacja powinna wykonać odpowiednie działania (kontroler). Po zakończeniu przetwarzania żądania użytkownika, co zazwyczaj będzie wiązało się z aktualizacją bądź utworzeniem modelu, sterowanie zostaje przekazane do widoku. Z kolei widok przesyła dane do klienta w formie strony HTML bądź innym ustalonym.<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://symolon.eu/2010/02/28/wzorzec-projektowy-mvc-model-view-controller-cz-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

