<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.lalex.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>LAlex devblog v6 - Constructeur et arguments  - Commentaires</title>
  <link>http://blog.lalex.com/</link>
  <atom:link href="http://blog.lalex.com/feed/rss2/comments/306" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Thu, 02 Oct 2008 14:21:50 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
    
    <item>
    <title>Constructeur et arguments - LAlex</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2522</link>
    <guid isPermaLink="false">urn:md5:b9e6f8695ec78da2ce2f279915ff0344</guid>
    <pubDate>Mon, 15 May 2006 18:54:02 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;@xion&gt; En effet, ce n'est qu'un exemple...&lt;br /&gt;Le typage de setSelectedItem est tout à fait cohérent ici. En effet, le private n'est qu'un &quot;protected&quot;, donc je veux que si quelqu'un hérite de ContactManager il ne puisse pas passer n'importe quelle classe qui implémente Item à cette méthode... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;D'ailleurs, dans la pratique, Contact est aussi une interface en fait, j'ai juste voulu éviter de compliquer le code... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;&lt;p&gt;++ ^^&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - xion</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2521</link>
    <guid isPermaLink="false">urn:md5:e6c1139c95755a9611dbf5c729411194</guid>
    <pubDate>Sun, 14 May 2006 20:22:53 +0000</pubDate>
    <dc:creator>xion</dc:creator>
    
    <description>&lt;p&gt;Dans ton cas :&lt;br /&gt;&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; ContactManager&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0066CC;&quot;&gt;extends&lt;/span&gt; BaseManager &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; ContactManager&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;c : Context&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Force le typage à 'Contact'&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0066CC;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; getSelectedContact&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; : Contact &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; Contact&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;getSelectedItem&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;devrait suffir, je ne parle pas du constructeur, qui me paraît... nécessaire d'être remis, mais de ta fonction setSelectedContact...&lt;/p&gt;&lt;p&gt;Contact implements Item non ?&lt;br /&gt;alors ça ne sert à rien de recréer une fonction pour bien dire que c'est un Contact en paramètre, alors que tu le passes directement en Item dans la fonction et que tu n'appliques rien d'autre...&lt;br /&gt;pour le retour avec getSelectedContact, je comprends... (bon, il manque une gestion à côté, mais c'était qu'un exemple je pense)&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - klee</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2519</link>
    <guid isPermaLink="false">urn:md5:36753ae1512f075c13ed3ed68bc53af2</guid>
    <pubDate>Sat, 13 May 2006 13:08:28 +0000</pubDate>
    <dc:creator>klee</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;Pour ma part je me sert d'une fonction &quot;init&quot; dans mon constructeur uniquement pour initialiser des instructions qui peuvent nécessiter d'intervenir avant l'appel du contenu du constructeur de la SuperClass... en mettant une fonction init dans le constructeur de ma SuperClass cela me permet ensuite de surcharger cette méthode dans la classe qui hérite de la première et de définir certaines méthodes, propriétés etc.... mais à part cela... la fonction constructeur fait très bien l'affaire.&lt;/quote&gt;&lt;/p&gt;&lt;p&gt;c'est trés gamin comme réaction mais je super fière .. je fais exactement pareil.&lt;/p&gt;&lt;p&gt;Ce qui métonne ce que avant en as2 version player 7, le super était ajouter automatiquement,&lt;br /&gt;mais je me suis aperçu dernièrement, (en compilant en player 8,  la cause ?) que je n'avait justement pas acces aux variable static définie avec une instance de la classe mère, le fait de mettre le super() a la main corrige le problème, j'en conclu donc que le super n'est plus mis par defaut aux moment de la compilation.&lt;br /&gt;enfin j'ai pas poussé les testes plus que ca.&lt;br /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - prayone</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2518</link>
    <guid isPermaLink="false">urn:md5:5ece87151d6b368925145a1a06747dcd</guid>
    <pubDate>Fri, 12 May 2006 10:15:42 +0000</pubDate>
    <dc:creator>prayone</dc:creator>
    
    <description>&lt;p&gt;Hello,&lt;/p&gt;&lt;p&gt;pour un nombre d'rguments indéfini, essaie comme ca :&lt;br /&gt;&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; ContactManager &lt;span style=&quot;color: #0066CC;&quot;&gt;extends&lt;/span&gt; BaseManager&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0066CC;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; ContactManager&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;constructor&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;this&lt;/span&gt;, &lt;span style=&quot;color: #0066CC;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;++&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - Timothee Groleau</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2517</link>
    <guid isPermaLink="false">urn:md5:8ee774696996abd21105dfd2b62cb640</guid>
    <pubDate>Fri, 12 May 2006 08:37:10 +0000</pubDate>
    <dc:creator>Timothee Groleau</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;De plus, les puristes disent qu'un constructeur ne doit pas prendre de paramètres, il est mieux de lui prérférer une méthode init&lt;/quote&gt;&lt;/p&gt;&lt;p&gt;Cela n'est pas une bonne idee. Le constructeur est un mechanisme, inclu dans le language, qui garanti qu'un objet est cree de la bonne maniere avant qu'il ne soit utilise. Utiliser une methode init n'est qu'une convention que d'une part les developeurs ne sont pas obliges de respecter (pourquoi init au lieu de initialize ou setup?) et que d'autres part les utilisateurs de librairies risquent de ne pas utiliser (par faute de documentation ou par simple oubli) et donc d'utiliser des objets improprement initialises (avec les bugs qui s'en suivent bien sur).&lt;/p&gt;&lt;p&gt;Je recommande a ce sujet la lecture du debut du chapitre 6 de &quot;Thinking in C++ &quot; qui explique que le concept de constructeur a ete specialement introduit dans le language C++ pour supprimer une classe d'erreur due a la non-initialisation des structs en C. Le chapitre est en ligne ici:&lt;br /&gt;&lt;a href=&quot;http://nicolas.blancpain.free.fr/Documents/Cpp/onlinev1/Chapter06.html&quot; rel=&quot;nofollow&quot;&gt;http://nicolas.blancpain.free.fr/Documents/Cpp/onlinev1/Chapter06.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Bon, cela dit, Flash est une platforme speciale, du fait que certain objects (components en particulier) peuvent etre places sur le stage sans donner acces a l'appel du constructeur. Dans leur cas, une autre methode est souhaitable pour controller l'initialisation. Perso, je recommande de ne pas utiliser de method init pour toutes les classes qui ne representent pas des objets sur le stage.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;quote&gt;Pour ma part ce qui me dérange en AS2 ... c'est justement que si l'on met rien dans le constructeur le compilateur force l'ajout du super() ! ... Il m'arrive parfois que j'ai vraiment pas besoin de l'initialisation du constructeur de la super classe&lt;/quote&gt;&lt;/p&gt;&lt;p&gt;Hmm, je me demande si cette situation n'est pas un signe de probleme dans le design? Le constructeur garantit que toutes les parties d'un l'objet sont initialisees correctement. Dans le cas d'une classe derivee, comme certaines parties n'existent que dans la classe mere, le constructeur de la classe mere doit etre appele pour garantir leur initialisation (at ainsi de suite pour toutes les classes meres et grand-meres). Donc a mon avis, c'est un comportement souhaitable qu'un appel au constructeur de la classe mere soit automatiquement introduit dans les constructeurs des classes derivees.&lt;/p&gt;&lt;p&gt;Dans quelles situations souhaites-tu instancier un objet sans appeler le constructeur de la classe mere?&lt;/p&gt;&lt;p&gt;Timoth'&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - ekameleon</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2514</link>
    <guid isPermaLink="false">urn:md5:7a29e792e5fa4f3f5db19cdf31dc4121</guid>
    <pubDate>Wed, 10 May 2006 23:07:03 +0000</pubDate>
    <dc:creator>ekameleon</dc:creator>
    
    <description>&lt;p&gt;&lt;quote&gt;De plus, les puristes disent qu'un constructeur ne doit pas prendre de paramètres, il est mieux de lui prérférer une méthode init, et bien que je sois d'accord la plupart du temps, il existe à la pratique des cas ou je préfère faire comme ca...&lt;/quote&gt;&lt;/p&gt;&lt;p&gt;Franchement nous sommes depuis le départ avec des &quot;fonctions constructeurs&quot;... pour moi le constructeur est justement la fonction qui permet de lancer l'initialisation de l'instance, je vois pas l'intérêt de créer une méthode init() uniquement pour initialiser l'instance ?? cela demande du coup de lancer 2 méthodes pour le prix d'une &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;&lt;p&gt;Pour ma part je me sert d'une fonction &quot;init&quot; dans mon constructeur uniquement pour initialiser des instructions qui peuvent nécessiter d'intervenir avant l'appel du contenu du constructeur de la SuperClass... en mettant une fonction init dans le constructeur de ma SuperClass cela me permet ensuite de surcharger cette méthode dans la classe qui hérite de la première et de définir certaines méthodes, propriétés etc.... mais à part cela... la fonction constructeur fait très bien l'affaire.&lt;/p&gt;&lt;p&gt;Pour ma part ce qui me dérange en AS2 ... c'est justement que si l'on met rien dans le constructeur le compilateur force l'ajout du super() ! ... Il m'arrive parfois que j'ai vraiment pas besoin de l'initialisation du constructeur de la super classe .... et cela devient du coup compliqué d'éviter son lancement. &lt;br /&gt;J'aurai préféré qu'on soit &quot;obligé&quot; de taper super() dans tous les cas, pour accéder à la super classe...&lt;/p&gt;&lt;p&gt;EKA+ &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - LAlex</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2513</link>
    <guid isPermaLink="false">urn:md5:a4a1250216984cd56ea581696f2e9b56</guid>
    <pubDate>Wed, 10 May 2006 17:17:03 +0000</pubDate>
    <dc:creator>LAlex</dc:creator>
    
    <description>&lt;p&gt;grand-mister &gt; Je l'ai lu &lt;a href=&quot;http://blog.lalex.com/archives/200409/200-essential-actionscript-review.html&quot; rel=&quot;nofollow&quot;&gt;il y a un an et demi&lt;/a&gt; et je ne me souviens pas forcément de ce qui est dit, je dois avouer que ce n'est pas mon livre de chevet... :p&lt;br /&gt;De plus, les puristes disent qu'un constructeur ne doit pas prendre de paramètres, il est mieux de lui prérférer une méthode &lt;em&gt;init&lt;/em&gt;, et bien que je sois d'accord la plupart du temps, il existe à la pratique des cas ou je préfère faire comme ca... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;&lt;p&gt;@ali_o_kan&gt; Oups, le private va devant le constructeur en fait... &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_redface.gif&quot; alt=&quot;:$&quot; class=&quot;smiley&quot; /&gt; Changé! &lt;img src=&quot;http://common.lalex.com/themes/devblog/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - ali_o_kan</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2512</link>
    <guid isPermaLink="false">urn:md5:1c1af01d8ce4cc08914844884b736576</guid>
    <pubDate>Wed, 10 May 2006 16:37:41 +0000</pubDate>
    <dc:creator>ali_o_kan</dc:creator>
    
    <description>&lt;p&gt;Juste heu le coups du &lt;em&gt;private class&lt;/em&gt; on est en AS3 là ? Ou j'ai louppé un truc :p&lt;/p&gt;&lt;p&gt;Pour un nombre indéfini d'argument, si tu fais un truc du genre :&lt;br /&gt;&lt;code class=&quot;actionscript&quot;&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0066CC;&quot;&gt;arguments&lt;/span&gt;.&lt;span style=&quot;color: #0066CC;&quot;&gt;slice&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/code&gt;&lt;br /&gt;ça devrait passer, non ? le problème c'est que dans ce cas tu as aucun typage.&lt;/p&gt;&lt;p&gt;J'ai pas testé donc ça passe peut-être pas. :p&lt;br /&gt;&lt;/p&gt;</description>
  </item>
      
    
    <item>
    <title>Constructeur et arguments - grand-mister</title>
    <link>http://blog.lalex.com/post/2006/05/10/Constructeur-et-arguments#c2511</link>
    <guid isPermaLink="false">urn:md5:ad1a36bc210b6a1a8c05105e58261f9e</guid>
    <pubDate>Wed, 10 May 2006 15:57:00 +0000</pubDate>
    <dc:creator>grand-mister</dc:creator>
    
    <description>&lt;p&gt;T'as pas lu EAS2 de Moock ? Il me semble qu'il l'explique bien dedans...&lt;/p&gt;</description>
  </item>
      
</channel>
</rss>