<?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 pour Blog de Youssef</title>
	<atom:link href="https://blog.developpez.com/youssef/comments/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/youssef</link>
	<description></description>
	<lastBuildDate>Thu, 19 Aug 2010 10:04:56 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Commentaires sur Singleton par adiguba</title>
		<link>https://blog.developpez.com/youssef/p9211/design-patterns/2-creational-patterns/singleton#comment-7</link>
		<dc:creator><![CDATA[adiguba]]></dc:creator>
		<pubDate>Thu, 19 Aug 2010 10:04:56 +0000</pubDate>
		<guid isPermaLink="false">#comment-7</guid>
		<description><![CDATA[Salut,&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Oui exacte , je ne voulais pas trop compliqué les choses. Mais si on veut faire les choses en respectant les règles de l&#039;art je dois rendre mon singleton thread-safe , et interdire le clonage et l&#039;héritage. &lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Pourtant le code n&#039;en est pas plus compliqué. Au contraire même :&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;code&gt;public final class FileLogger implements Logger {&#160;&lt;br /&gt;
&#160;&#160;private static FileLogger logger = new FileLogger();&#160;&lt;br /&gt;
&#160;&lt;br /&gt;
&#160;&#160;// Interdir les objets clients l&#039;utilisation du constructor&#160;&lt;br /&gt;
&#160;&#160;private FileLogger() {&#160;&lt;br /&gt;
&#160;&#160;}&#160;&lt;br /&gt;
&#160;&lt;br /&gt;
&#160;&#160;public static FileLogger getFileLogger() {&#160;&lt;br /&gt;
&#160;&#160;&#160;&#160;return logger;&#160;&lt;br /&gt;
&#160;&#160;}&#160;&lt;br /&gt;
&#160;&#160;&lt;br /&gt;
&#160;&#160;// Autres méthodes de la classe&#160;&lt;br /&gt;
}&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le reste L&#039;intérêt du singleton est de manipuler un objet avec un état qui pourrait varier pendant la durée de vie de l&#039;application, le tout lié à des Factory par exemple.&lt;br /&gt;
&lt;br /&gt;
Par contre il faut faire extrêmement attention lorsqu&#039;on veut partager des ressources tel que les connections aux BD... Il y a d&#039;autres solution pour cela !&lt;br /&gt;
&lt;br /&gt;
a++]]></description>
		<content:encoded><![CDATA[<p>Salut,</p>
<blockquote><p>Oui exacte , je ne voulais pas trop compliqué les choses. Mais si on veut faire les choses en respectant les règles de l&rsquo;art je dois rendre mon singleton thread-safe , et interdire le clonage et l&rsquo;héritage. </p></blockquote>
<p>Pourtant le code n&rsquo;en est pas plus compliqué. Au contraire même :</p>
<blockquote>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">public final class FileLogger implements Logger {&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;private static FileLogger logger = new FileLogger();&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;// Interdir les objets clients l'utilisation du constructor&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;private FileLogger() {&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;public static FileLogger getFileLogger() {&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return logger;&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;&lt;br /&gt;<br />
&amp;nbsp;&amp;nbsp;// Autres méthodes de la classe&amp;nbsp;&lt;br /&gt;<br />
}</div></div>
</blockquote>
<p>
Pour le reste L&rsquo;intérêt du singleton est de manipuler un objet avec un état qui pourrait varier pendant la durée de vie de l&rsquo;application, le tout lié à des Factory par exemple.</p>
<p>Par contre il faut faire extrêmement attention lorsqu&rsquo;on veut partager des ressources tel que les connections aux BD&#8230; Il y a d&rsquo;autres solution pour cela !</p>
<p>a++</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Singleton par Philippe Vialatte</title>
		<link>https://blog.developpez.com/youssef/p9211/design-patterns/2-creational-patterns/singleton#comment-6</link>
		<dc:creator><![CDATA[Philippe Vialatte]]></dc:creator>
		<pubDate>Wed, 18 Aug 2010 15:41:45 +0000</pubDate>
		<guid isPermaLink="false">#comment-6</guid>
		<description><![CDATA[&gt; A part le problème de la connexion de base de données qui est une problématique résolu à mon avis au niveau des serveurs d&#039;application grâce à la notion de DataSource&lt;br /&gt;
&lt;br /&gt;
Non, justement, en implémentant un Singleton sur tes connexions, tu te prives de l&#039;utilisation du pool de connexion, ou tu la rends potentiellement instable (en fonction de la qualité de ton implémentation du singleton)&lt;br /&gt;
&lt;br /&gt;
&gt; Je pense que le Pattern Singleton doit être utilisé chaque fois qu&#039;une seule instance est suffisante que ça serait pour avoir un système plus rapide.&lt;br /&gt;
Je crois que tu manques le point que je te levais précédemment...&lt;br /&gt;
Si une ressource est couteuse à créer, ok.&lt;br /&gt;
Si ta ressource ne coute quasi rien à créer, le fait d&#039;utiliser un singleton va revenir, en terme de design, à l&#039;utilisation d&#039;une variable globale, ce qui est peu recommandé...en plus, implémenter un singleton en te disant que cela va accélérer ton système revient à faire une optimisation prématurée, basée sur de la spéculation plus que sur une mesure objective&lt;br /&gt;
&lt;br /&gt;
Je peux te garantir qu&#039;à l&#039;usage, tu trouveras excessivement peu de cas ou ton Singleton est un vrai plus en terme de design et ne pourrait pas être avantageusement remplacé par une Factory un peu bien pensée...&lt;br /&gt;
&lt;br /&gt;
Maintenant, je ne te demandes pas de me croire, mais de quelques problèmes indirectement ou directement liés à des singletons rencontrés au cours de ma modeste expérience, c&#039;est un pattern que je ne réserverais qu&#039;à des cas ou le besoin d&#039;utiliser un singleton est motivé par une limite technique]]></description>
		<content:encoded><![CDATA[<p>> A part le problème de la connexion de base de données qui est une problématique résolu à mon avis au niveau des serveurs d&rsquo;application grâce à la notion de DataSource</p>
<p>Non, justement, en implémentant un Singleton sur tes connexions, tu te prives de l&rsquo;utilisation du pool de connexion, ou tu la rends potentiellement instable (en fonction de la qualité de ton implémentation du singleton)</p>
<p>> Je pense que le Pattern Singleton doit être utilisé chaque fois qu&rsquo;une seule instance est suffisante que ça serait pour avoir un système plus rapide.<br />
Je crois que tu manques le point que je te levais précédemment&#8230;<br />
Si une ressource est couteuse à créer, ok.<br />
Si ta ressource ne coute quasi rien à créer, le fait d&rsquo;utiliser un singleton va revenir, en terme de design, à l&rsquo;utilisation d&rsquo;une variable globale, ce qui est peu recommandé&#8230;en plus, implémenter un singleton en te disant que cela va accélérer ton système revient à faire une optimisation prématurée, basée sur de la spéculation plus que sur une mesure objective</p>
<p>Je peux te garantir qu&rsquo;à l&rsquo;usage, tu trouveras excessivement peu de cas ou ton Singleton est un vrai plus en terme de design et ne pourrait pas être avantageusement remplacé par une Factory un peu bien pensée&#8230;</p>
<p>Maintenant, je ne te demandes pas de me croire, mais de quelques problèmes indirectement ou directement liés à des singletons rencontrés au cours de ma modeste expérience, c&rsquo;est un pattern que je ne réserverais qu&rsquo;à des cas ou le besoin d&rsquo;utiliser un singleton est motivé par une limite technique</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Singleton par zerocoolyoussef</title>
		<link>https://blog.developpez.com/youssef/p9211/design-patterns/2-creational-patterns/singleton#comment-5</link>
		<dc:creator><![CDATA[zerocoolyoussef]]></dc:creator>
		<pubDate>Wed, 18 Aug 2010 14:46:03 +0000</pubDate>
		<guid isPermaLink="false">#comment-5</guid>
		<description><![CDATA[A part le problème de la connexion de base de données qui est une problématique résolu à mon avis au niveau des serveurs d&#039;application grâce à la notion de DataSource.Et si on utilise le pattern pour avoir l&#039;instance de connexion à la base de données grâce au pool de connexion fournie par la datasource du serveur d&#039;application je voie pas ou il aura du bug.&lt;br /&gt;
A part ca,Je pense que le Pattern Singleton doit être utilisé chaque fois qu&#039;une seule instance est suffisante que ça serait pour avoir un système plus rapide.&lt;br /&gt;
C&#039;est pour ça que je dis q&#039;il faut pas utiliser ce pattern juste dans le cas où la création de la ressource est chère où il y&#039;a une limitation matérielle mais à chaque fois q&#039;une seule instance de classe est suffisante.&lt;br /&gt;
Toute fois j&#039;ai vu des personnes qu&#039;il utilise à la place des variables globales où pour maintenir l&#039;état d&#039;un objet à travers les différents  modules de l&#039;application , ou plus pour ne pas avoir à passer l&#039;objet chaque fois comme paramètre aux fonctions. Ca c&#039;est une mauvaise utilisation du Pattern.]]></description>
		<content:encoded><![CDATA[<p>A part le problème de la connexion de base de données qui est une problématique résolu à mon avis au niveau des serveurs d&rsquo;application grâce à la notion de DataSource.Et si on utilise le pattern pour avoir l&rsquo;instance de connexion à la base de données grâce au pool de connexion fournie par la datasource du serveur d&rsquo;application je voie pas ou il aura du bug.<br />
A part ca,Je pense que le Pattern Singleton doit être utilisé chaque fois qu&rsquo;une seule instance est suffisante que ça serait pour avoir un système plus rapide.<br />
C&rsquo;est pour ça que je dis q&rsquo;il faut pas utiliser ce pattern juste dans le cas où la création de la ressource est chère où il y&rsquo;a une limitation matérielle mais à chaque fois q&rsquo;une seule instance de classe est suffisante.<br />
Toute fois j&rsquo;ai vu des personnes qu&rsquo;il utilise à la place des variables globales où pour maintenir l&rsquo;état d&rsquo;un objet à travers les différents  modules de l&rsquo;application , ou plus pour ne pas avoir à passer l&rsquo;objet chaque fois comme paramètre aux fonctions. Ca c&rsquo;est une mauvaise utilisation du Pattern.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Singleton par Philippe Vialatte</title>
		<link>https://blog.developpez.com/youssef/p9211/design-patterns/2-creational-patterns/singleton#comment-4</link>
		<dc:creator><![CDATA[Philippe Vialatte]]></dc:creator>
		<pubDate>Wed, 18 Aug 2010 09:41:04 +0000</pubDate>
		<guid isPermaLink="false">#comment-4</guid>
		<description><![CDATA[&gt; Il nous aide à implémenter une classe pour laquel on a besoin q&#039;une seule instance pendant la durée de vie de l&#039;application comme : Connexion à une base de données,.... &lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de la connexion à la base de données est un très mauvais exemple, en effet, si il est transposé sans réflexion, il peut devenir un point de bug dans une appli (oui, qqun m&#039;à déjà dit que c&#039;était une bonne idée de faire un Singleton pour une connexion à la base de données en web...)&lt;br /&gt;
&lt;br /&gt;
Le pattern singleton est un des plus galvaudé et mal utilisés, il ne devrait avoir de sens que dans le cas ou la construction de la ressource est couteuse, ou qu&#039;une limitation matérielle doit empêcher la création de plusieurs instances (genre, accès à une carte d&#039;interface externe, etc...)&lt;br /&gt;
&lt;br /&gt;
Le problème majeur étant que la plupart du temps, c&#039;est le seul que les lecteurs des livres de design pattern retiennent ;)]]></description>
		<content:encoded><![CDATA[<p>> Il nous aide à implémenter une classe pour laquel on a besoin q&rsquo;une seule instance pendant la durée de vie de l&rsquo;application comme : Connexion à une base de données,&#8230;. </p>
<p>L&rsquo;exemple de la connexion à la base de données est un très mauvais exemple, en effet, si il est transposé sans réflexion, il peut devenir un point de bug dans une appli (oui, qqun m&rsquo;à déjà dit que c&rsquo;était une bonne idée de faire un Singleton pour une connexion à la base de données en web&#8230;)</p>
<p>Le pattern singleton est un des plus galvaudé et mal utilisés, il ne devrait avoir de sens que dans le cas ou la construction de la ressource est couteuse, ou qu&rsquo;une limitation matérielle doit empêcher la création de plusieurs instances (genre, accès à une carte d&rsquo;interface externe, etc&#8230;)</p>
<p>Le problème majeur étant que la plupart du temps, c&rsquo;est le seul que les lecteurs des livres de design pattern retiennent <img src="https://blog.developpez.com/youssef/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Singleton par zerocoolyoussef</title>
		<link>https://blog.developpez.com/youssef/p9211/design-patterns/2-creational-patterns/singleton#comment-3</link>
		<dc:creator><![CDATA[zerocoolyoussef]]></dc:creator>
		<pubDate>Tue, 17 Aug 2010 10:55:33 +0000</pubDate>
		<guid isPermaLink="false">#comment-3</guid>
		<description><![CDATA[Oui exacte , je ne voulais pas trop compliqué les choses. Mais si on veut faire les choses en respectant les règles de l&#039;art je dois  rendre mon singleton thread-safe , et interdire le clonage et l&#039;héritage.]]></description>
		<content:encoded><![CDATA[<p>Oui exacte , je ne voulais pas trop compliqué les choses. Mais si on veut faire les choses en respectant les règles de l&rsquo;art je dois  rendre mon singleton thread-safe , et interdire le clonage et l&rsquo;héritage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Singleton par Gilles TOURREAU</title>
		<link>https://blog.developpez.com/youssef/p9211/design-patterns/2-creational-patterns/singleton#comment-2</link>
		<dc:creator><![CDATA[Gilles TOURREAU]]></dc:creator>
		<pubDate>Tue, 17 Aug 2010 08:17:24 +0000</pubDate>
		<guid isPermaLink="false">#comment-2</guid>
		<description><![CDATA[Il est important de noter que :&lt;br /&gt;
&lt;br /&gt;
- Dans cette exemple, la création de l&#039;instance n&#039;est pas thread-safe. En effet, il est possible de créer plusieurs instances de la classe FileLogger dans différents thread. (La probabilité que cela arrive est très faible, mais existante !). Dans ce cas, il faut protéger les accès concurrents via un mutex ou un moniteur.&lt;br /&gt;
- La durée de vie du singleton dépend du type d&#039;application. Par exemple, en .NET, la durée de vie d&#039;une variable statique (et donc d&#039;un singleton) est celui d&#039;un AppDomain. La durée de vie de ces objets est donc différente dans une application Windows et dans une application Web.]]></description>
		<content:encoded><![CDATA[<p>Il est important de noter que :</p>
<p>&#8211; Dans cette exemple, la création de l&rsquo;instance n&rsquo;est pas thread-safe. En effet, il est possible de créer plusieurs instances de la classe FileLogger dans différents thread. (La probabilité que cela arrive est très faible, mais existante !). Dans ce cas, il faut protéger les accès concurrents via un mutex ou un moniteur.<br />
&#8211; La durée de vie du singleton dépend du type d&rsquo;application. Par exemple, en .NET, la durée de vie d&rsquo;une variable statique (et donc d&rsquo;un singleton) est celui d&rsquo;un AppDomain. La durée de vie de ces objets est donc différente dans une application Windows et dans une application Web.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commentaires sur Constant Data Manager par ylarvor</title>
		<link>https://blog.developpez.com/youssef/p9204/design-patterns/1-basic-patterns/constant_data_manager#comment-1</link>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
		<pubDate>Mon, 16 Aug 2010 09:23:50 +0000</pubDate>
		<guid isPermaLink="false">#comment-1</guid>
		<description><![CDATA[intéressant, le principe de publier un design pattern de temps en temps, c&#039;est assez lourd d&#039;approche en principe, un feuilleton permet de s&#039;intéresser doucement au problème.]]></description>
		<content:encoded><![CDATA[<p>intéressant, le principe de publier un design pattern de temps en temps, c&rsquo;est assez lourd d&rsquo;approche en principe, un feuilleton permet de s&rsquo;intéresser doucement au problème.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
