<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Generic Factory Method</title><link>https://sourceforge.net/p/projectutilities/wiki/Generic%2520Factory%2520Method/</link><description>Recent changes to Generic Factory Method</description><atom:link href="https://sourceforge.net/p/projectutilities/wiki/Generic%20Factory%20Method/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 08 Oct 2013 12:38:05 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/projectutilities/wiki/Generic%20Factory%20Method/feed" rel="self" type="application/rss+xml"/><item><title>Generic Factory Method modified by &lt;REDACTED&gt;</title><link>https://sourceforge.net/p/projectutilities/wiki/Generic%2520Factory%2520Method/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Generic factory method with factory method map&lt;/p&gt;
&lt;p&gt;Exmaple:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="vi"&gt;#include&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;FactoryMethod.hpp&amp;quot;&lt;/span&gt;
&lt;span class="vi"&gt;#include&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;iostream&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nx"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;pu&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ProjectUtilites&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;struct&lt;/span&gt; &lt;span class="nb"&gt;Field&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt; &lt;span class="nx"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nl"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Filed:&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;struct&lt;/span&gt; &lt;span class="nx"&gt;GoodField&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Field&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;GoodField&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt; &lt;span class="nx"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nl"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Good&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;struct&lt;/span&gt; &lt;span class="nx"&gt;BadField&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Field&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;BadField&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt; &lt;span class="nx"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nl"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Bad&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;int&lt;/span&gt; &lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="nx"&gt;pu&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nl"&gt;FactoryMethodMap&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nb"&gt;Field&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nl"&gt;add&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;GoodField&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;good&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// adding with default create function using new    &lt;/span&gt;
    &lt;span class="nx"&gt;pu&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nl"&gt;FactoryMethodMap&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nb"&gt;Field&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nl"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;bad&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt;() -&amp;gt; Field * { return new BadField; } );
    pu::FactoryMethodMap&lt;span class="nt"&gt;&amp;lt; Field&lt;/span&gt; &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;::create( &amp;quot;good&amp;quot; );
    pu::FactoryMethodMap&lt;span class="nt"&gt;&amp;lt; Field&lt;/span&gt; &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;::create( &amp;quot;bad&amp;quot; );
    pu::FactoryMethodMap&lt;span class="nt"&gt;&amp;lt; Field&lt;/span&gt; &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;::create( &amp;quot;good&amp;quot; );
    return 0;
}
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Print in console:&lt;br /&gt;
Filed:Good&lt;br /&gt;
Filed:Bad&lt;br /&gt;
Filed:Good&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 08 Oct 2013 12:38:05 -0000</pubDate><guid>https://sourceforge.nete6d055d91e72fc494b754ce7e2768f16db826b25</guid></item></channel></rss>