<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=60&amp;t=13104&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-03T07:39:31+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=60&amp;t=13104&amp;mode</id>
<entry>
<author><name><![CDATA[PROTON]]></name></author>
<updated>2015-10-03T07:38:04+01:00</updated>
<published>2015-10-03T07:38:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13104&amp;p=141284#p141284</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13104&amp;p=141284#p141284"/>
<title type="html"><![CDATA[Re: Dependency Injection]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13104&amp;p=141284#p141284"><![CDATA[
A więc czym jest Dependency Injection? Jest to wzorzec projektowy który likwiduje zależności między klasami. W tradycyjnym programowaniu klasy łączy się po przez dziedziczenie, są one połączone już na etapie ich projektowania, jakakolwiek podmiana klasy wymaga edytowania ich kodu.<br />Natomiast wykorzystując DI klasy łączy się dopiero w głównym programie, podczas tworzenia ich instancji. W powyższym przykładzie wskaźnik do instancji klasy <strong>MyLogger</strong> przekazujemy do konstruktora klasy <strong>cWork</strong>,jest on zapisywany pod wskaźnikiem <em>_log</em> w tym momencie powstaje połączenie obiektów. <strong>cWork</strong> zapisuje u siebie wskaźnik do <strong>MyLogger</strong> pod <em>cLogger* _log</em>. W monecie wywołania funkcji <em>loguj</em> z <strong>cWork</strong>, wywoływana jest funkcja <em>log</em> z <strong>MyLogger</strong>.<br />[syntax=cpp]void loguj(std::string d){<br />        _log-&gt;log(d);<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1315">PROTON</a> — 3 paź 2015, o 07:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PROTON]]></name></author>
<updated>2015-10-03T07:39:31+01:00</updated>
<published>2015-10-02T22:21:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13104&amp;p=141270#p141270</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13104&amp;p=141270#p141270"/>
<title type="html"><![CDATA[Dependency Injection]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13104&amp;p=141270#p141270"><![CDATA[
Po rozmowie z kolegą raf stwierdziłem, że nie ma w internecie dobrego przykładu Dependency Injection dla C++.<br />Teraz zamieszczę przykład, rano postaram się go opisać.<br />[syntax=cpp]#include &lt;iostream&gt;<br />#include &lt;string&gt;<br /><br />class cLogger{<br />    public:<br />    virtual void log(std::string data) = 0;<br />};<br /><br />class MyLogger : public cLogger{<br />    public:<br />    virtual void log(std::string data){<br />        std::cout&lt;&lt;&quot;MyLogger message&#91;&quot;&lt;&lt;data&lt;&lt;&quot;&#93;&quot;&lt;&lt;std::endl;<br />    }<br />};<br /><br />class cWork {<br />    public:<br />    cWork(cLogger* l):_log(l){}<br />    void loguj(std::string d){<br />        _log-&gt;log(d);<br />    }<br />    private:<br />    cLogger* _log;<br />};<br /><br />int main(){<br />    MyLogger l;<br />    cWork work(&amp;l);<br />    work.loguj(&quot;Hello World!&quot;);<br />    return 0;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1315">PROTON</a> — 2 paź 2015, o 22:21</p><hr />
]]></content>
</entry>
</feed>