<?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>Commentaires sur : AS3 Création d&#8217;un Singleton</title>
	<atom:link href="http://www.delfiweb.com/as3-implementation-pattern-singleton/article121413.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.delfiweb.com/as3-implementation-pattern-singleton/article121413.html</link>
	<description>Ressources flash, framework HAXE, AS3, AS2, tutoriaux, scripts.</description>
	<lastBuildDate>Mon, 17 Jan 2011 16:48:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Par : ekameleon</title>
		<link>http://www.delfiweb.com/as3-implementation-pattern-singleton/article121413.html/comment-page-1#comment-44</link>
		<dc:creator>ekameleon</dc:creator>
		<pubDate>Wed, 06 May 2009 18:14:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.delfiweb.com/?p=141#comment-44</guid>
		<description>Hello :)

Aucune contrainte :) Ta classe reste une classe et la constante c&#039;est juste une instance globale. 

Si la classe a un constructeur public pas de problème. Tout dépend de ton code pas de la technique ;)

Pour ma part je trouve inutile de sécuriser les classes au niveau de leur constructeur... le pattern singleton c&#039;est avant tout la centralisation d&#039;une instance unique et globale.

Sinon avec l&#039;IoC (avec VEGAS par exemple) suffit d&#039;utiliser dans la fabrique une définition d&#039;objet singleton d&#039;un objet du type de ta classe et plus besoin de se prendre la tête... 

factory.getObject(&quot;mysingleton&quot;) 

Plus de méthode getInstance() verbeuse dans les classes et plus de soucis pour tester les classes si on les laisse simple et public (unit test de meilleur qualité)

eKA+ :)</description>
		<content:encoded><![CDATA[<p>Hello <img src='http://www.delfiweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Aucune contrainte <img src='http://www.delfiweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ta classe reste une classe et la constante c&#8217;est juste une instance globale. </p>
<p>Si la classe a un constructeur public pas de problème. Tout dépend de ton code pas de la technique <img src='http://www.delfiweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Pour ma part je trouve inutile de sécuriser les classes au niveau de leur constructeur&#8230; le pattern singleton c&#8217;est avant tout la centralisation d&#8217;une instance unique et globale.</p>
<p>Sinon avec l&#8217;IoC (avec VEGAS par exemple) suffit d&#8217;utiliser dans la fabrique une définition d&#8217;objet singleton d&#8217;un objet du type de ta classe et plus besoin de se prendre la tête&#8230; </p>
<p>factory.getObject(&laquo;&nbsp;mysingleton&nbsp;&raquo;) </p>
<p>Plus de méthode getInstance() verbeuse dans les classes et plus de soucis pour tester les classes si on les laisse simple et public (unit test de meilleur qualité)</p>
<p>eKA+ <img src='http://www.delfiweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Matthieu</title>
		<link>http://www.delfiweb.com/as3-implementation-pattern-singleton/article121413.html/comment-page-1#comment-43</link>
		<dc:creator>Matthieu</dc:creator>
		<pubDate>Wed, 06 May 2009 18:09:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.delfiweb.com/?p=141#comment-43</guid>
		<description>Salut Eka,

Merci pour ton conseil judicieux.
Je rajoute cela de suite dans mon framework pour la gestion Singleton du Logger. Tellement simple que je n&#039;y avais pas pensé...

Par contre pour le singleton à partir d&#039;une classe simple et d&#039;une constante du type de la classe, cela n&#039;empêche pas d&#039;instancier directement la classe ? 
Ce qui peut être génant dans certains cas, il peut arriver qu&#039;il soit obligatoire de passer par le singleton, et sans pouvoir instancier la classe directement.</description>
		<content:encoded><![CDATA[<p>Salut Eka,</p>
<p>Merci pour ton conseil judicieux.<br />
Je rajoute cela de suite dans mon framework pour la gestion Singleton du Logger. Tellement simple que je n&#8217;y avais pas pensé&#8230;</p>
<p>Par contre pour le singleton à partir d&#8217;une classe simple et d&#8217;une constante du type de la classe, cela n&#8217;empêche pas d&#8217;instancier directement la classe ?<br />
Ce qui peut être génant dans certains cas, il peut arriver qu&#8217;il soit obligatoire de passer par le singleton, et sans pouvoir instancier la classe directement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : ekameleon</title>
		<link>http://www.delfiweb.com/as3-implementation-pattern-singleton/article121413.html/comment-page-1#comment-41</link>
		<dc:creator>ekameleon</dc:creator>
		<pubDate>Fri, 01 May 2009 16:17:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.delfiweb.com/?p=141#comment-41</guid>
		<description>Oui en effet beaucoup de possibilités mais pour ma part à ta place je ferais une classe simple et ensuite dans un package une simple constante ayant pour type la classe.

/////////
package com.utils 
{
   public class MyClass {}
}

package com.utils
{
   public const singleton:MyClass = new MyClass() ;
}
//////////

Je trouve cela plus élégant :) Par exemple pour ton exemple au dessus tu utilises le système de log de VEGAS pour ma part dans mes applications je crée un singleton de type ILogger :

http://code.google.com/p/astr/source/browse/trunk/AS3/trunk/src/astro/logging/logger.as

package astro.logging 
{
    import vegas.logging.ILogger;
    import vegas.logging.Log;   
    
    /**
     * The logger of the application.
     */
    public const logger:ILogger = Log.getLogger( &quot;myApplication&quot;) ;

}

Comme cela plus de soucis pour utiliser des logs partout dans l&#039;application avec ce singleton.

EKA+ :)</description>
		<content:encoded><![CDATA[<p>Oui en effet beaucoup de possibilités mais pour ma part à ta place je ferais une classe simple et ensuite dans un package une simple constante ayant pour type la classe.</p>
<p>/////////<br />
package com.utils<br />
{<br />
   public class MyClass {}<br />
}</p>
<p>package com.utils<br />
{<br />
   public const singleton:MyClass = new MyClass() ;<br />
}<br />
//////////</p>
<p>Je trouve cela plus élégant <img src='http://www.delfiweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Par exemple pour ton exemple au dessus tu utilises le système de log de VEGAS pour ma part dans mes applications je crée un singleton de type ILogger :</p>
<p><a href="http://code.google.com/p/astr/source/browse/trunk/AS3/trunk/src/astro/logging/logger.as" rel="nofollow">http://code.google.com/p/astr/source/browse/trunk/AS3/trunk/src/astro/logging/logger.as</a></p>
<p>package astro.logging<br />
{<br />
    import vegas.logging.ILogger;<br />
    import vegas.logging.Log;   </p>
<p>    /**<br />
     * The logger of the application.<br />
     */<br />
    public const logger:ILogger = Log.getLogger( &laquo;&nbsp;myApplication&nbsp;&raquo;) ;</p>
<p>}</p>
<p>Comme cela plus de soucis pour utiliser des logs partout dans l&#8217;application avec ce singleton.</p>
<p>EKA+ <img src='http://www.delfiweb.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

