<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>
	Comments on: Lezioni di design da Zio Bob	</title>
	<atom:link href="http://matteo.vaccari.name/blog/archives/52/feed" rel="self" type="application/rss+xml" />
	<link>http://matteo.vaccari.name/blog/archives/52</link>
	<description>Extreme enthusiasm</description>
	<lastBuildDate>
	Mon, 25 Feb 2019 15:18:16 +0000	</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.1.1</generator>
			<item>
				<title>
				By: matteo				</title>
				<link>http://matteo.vaccari.name/blog/archives/52/comment-page-1#comment-209</link>
		<dc:creator><![CDATA[matteo]]></dc:creator>
		<pubDate>Tue, 24 Oct 2006 10:18:26 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=52#comment-209</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>L&#8217;argomento ha del merito; ma l&#8217;idea è di fare scomparire i cicli del tutto&#8230;  Una volta che hai una classe Employees (collezione di Employee) questo diventa la &#8220;casa&#8221; naturale di tutti i cicli che hanno a che fare con le collezioni di Employee: printSlips(), averageSalary(), computeBenefits(), &#8230;</p>
<p>Se la struttura dati è una semplice collezione, può valere la pena di usare un&#8217;array o lista &#8220;nuda&#8221;, invece di una classe-collezione ad hoc.  Siamo pragmatici!  </p>
<p>Nel caso invece di una struttura dati più complessa, tipo una hash di liste o una lista di liste, o una lista di hash,&#8230; conviene senz&#8217;altro incapsularla in una classe ad hoc.</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: Marco				</title>
				<link>http://matteo.vaccari.name/blog/archives/52/comment-page-1#comment-204</link>
		<dc:creator><![CDATA[Marco]]></dc:creator>
		<pubDate>Mon, 23 Oct 2006 19:47:51 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=52#comment-204</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>chiedo venia…ho sbagliato a inserire il simbolo &amp;lt<br />
il for corretto è</p>
<p>  // caso array<br />
  Employee[] e = employees();<br />
  for (int i=0; i&lt;e.length; i++) {<br />
    e[i].printSlip();<br />
  }</p>
<p>non è possibile editare i propri messaggi?</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: Marco				</title>
				<link>http://matteo.vaccari.name/blog/archives/52/comment-page-1#comment-203</link>
		<dc:creator><![CDATA[Marco]]></dc:creator>
		<pubDate>Mon, 23 Oct 2006 19:33:49 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=52#comment-203</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>Concordo pienamente, è molto bello(forse troppo) poter iterare tra gli elementi di una classe con una sola riga di codice. Es.</p>
<p> employees().each(printSlip);</p>
<p>però penso che la maggior parte delle volte risulta inutile creare un oggetto ad hoc (es. ‘printSlip’) e un metodo (.each) unicamente per gestire, come in questo caso, una sola riga di codice(rallenta sia la programmazione che l’esecuzione). E comunque il ciclo for non scompare ma viene solo spostato nel metodo .each.<br />
Possiamo però sfruttare meglio le funzionalità del linguaggio di programmazione per rendere il codice più elegante Es.</p>
<p>// caso array<br />
  Employee[] e = employees();<br />
  for (int i=0; i<br />
Può essere riscritto(se non ricordo male la sintassi di java) così:</p>
<p>for (Employee e: employees()) {<br />
    e.printSlip();<br />
  }</p>
<p>Molti linguaggi di programmazione forniscono un for ‘speciale’ detto for-each che permette di  scorrere tutti gli elementi di un array(o di una collezione). Anche se ha delle limitazioni(si può scorrere solo dall’inizio alle fine e non avendo un indice, generalmente inutile, non possiamo sapere in che posizione siamo) perché non utilizzarlo? Visto che capita molto spesso di dover ciclare tra tutti gli elementi di una classe, perché dovremmo mettere sempre lo stesso codice dentro gli oggetti e non far fare questo ‘sporco’ lavoro direttamente al linguaggio di programmazione?</p>
<p>Per cicli complessi(o cicli che si prevede debbano essere utilizzati più volte) ritengo però indispensabile l’utilizzo di un oggetto ad hoc e di un metodo .each come proposto da Matteo. Si potrà però sempre utilizzare il for-each all’interno del metodo .each :-)</p>
<p>Ringrazio Matteo per gli spunti di riflessione sempre ben argomentati,<br />
Marco</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: Marco				</title>
				<link>http://matteo.vaccari.name/blog/archives/52/comment-page-1#comment-201</link>
		<dc:creator><![CDATA[Marco]]></dc:creator>
		<pubDate>Mon, 23 Oct 2006 19:27:52 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=52#comment-201</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>Scusa&#8230;come al solito sono riuscito a combinare pasticci…</p>
<p>Concordo pienamente, è molto bello(forse troppo) poter iterare tra gli elementi di una classe con una sola riga di codice. Es.</p>
<p> employees().each(printSlip);</p>
<p>però penso che la maggior parte delle volte risulta inutile creare un oggetto ad hoc (es. ‘printSlip’) e un metodo (.each) unicamente per gestire, come in questo caso, una sola riga di codice(rallenta sia la programmazione che l’esecuzione). E comunque il ciclo for non scompare ma viene solo spostato nel metodo .each.<br />
Possiamo però sfruttare meglio le funzionalità del linguaggio di programmazione per rendere il codice più elegante Es.</p>
<p>// caso array<br />
  Employee[] e = employees();<br />
  for (int i=0; i</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: matteo				</title>
				<link>http://matteo.vaccari.name/blog/archives/52/comment-page-1#comment-200</link>
		<dc:creator><![CDATA[matteo]]></dc:creator>
		<pubDate>Mon, 23 Oct 2006 18:37:00 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=52#comment-200</guid>
					<description><![CDATA[Marco,


 ci siamo persi il resto del tuo esempio.  Puoi ripostarlo?]]></description>
		<content:encoded><![CDATA[<p>Marco,</p>
<p> ci siamo persi il resto del tuo esempio.  Puoi ripostarlo?</p>
]]></content:encoded>
						</item>
						<item>
				<title>
				By: Marco				</title>
				<link>http://matteo.vaccari.name/blog/archives/52/comment-page-1#comment-199</link>
		<dc:creator><![CDATA[Marco]]></dc:creator>
		<pubDate>Mon, 23 Oct 2006 15:35:00 +0000</pubDate>
		<guid isPermaLink="false">http://matteo.vaccari.name/blog/?p=52#comment-199</guid>
					<description><![CDATA[]]></description>
		<content:encoded><![CDATA[<p>Concordo pienamente, è molto bello(forse troppo) poter iterare tra gli elementi di una classe con una sola riga di codice. Es.</p>
<p> employees().each(printSlip);</p>
<p>però penso che la maggior parte delle volte risulta inutile creare un oggetto ad hoc (es. ‘printSlip’) e un metodo (.each) unicamente per gestire, come in questo caso, una sola riga di codice(rallenta sia la programmazione che l’esecuzione). E comunque il ciclo for non scompare ma viene solo spostato nel metodo .each.<br />
Possiamo però sfruttare meglio le funzionalità del linguaggio di programmazione per rendere il codice più elegante Es.</p>
<p>// caso array<br />
  Employee[] e = employees();<br />
  for (int i=0; i</p>
]]></content:encoded>
						</item>
			</channel>
</rss>
