<?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>
	Komentarze do: Wzorzec Strategii 🙏. Jak Czytelnie Pisać Kod? 🤔	</title>
	<atom:link href="https://www.bdabek.pl/wzorzec-strategii-%F0%9F%99%8F-jak-czytelnie-pisac-kod-%F0%9F%A4%94/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/</link>
	<description>Bartosz Dąbek</description>
	<lastBuildDate>Fri, 11 Dec 2020 15:31:59 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		Autor: Patryk		</title>
		<link>https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-110</link>

		<dc:creator><![CDATA[Patryk]]></dc:creator>
		<pubDate>Fri, 11 Dec 2020 15:31:59 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1800#comment-110</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-87&quot;&gt;Bartosz Dąbek&lt;/a&gt;.

Generalnie konstrukcje &quot;if..else if .. else` są mało rozszerzalne, nowa strategia będzie powodować modyfikacje tego kodu. Są już tam 4 strategie prawdopodobnie przy 3 już bym się zastanowił czy nie zrobić tego bardziej elastyczniej. Wszystko zależy od wymagań i jak często dochodziłyby by nowe strategie. 

Przykładowo można by stworzyć ComposePaymentStrategy(list: &lt;span&gt;List&#060;PaymentStrategy&#062;&lt;/span&gt;) gdzie &lt;span&gt;PaymentStrategy mogło by samo decydować czy się wybrać na podstawie OrderResult-a&lt;/span&gt;]]></description>
			<content:encoded><![CDATA[<p>Generalnie konstrukcje &#8222;if..else if .. else` są mało rozszerzalne, nowa strategia będzie powodować modyfikacje tego kodu. Są już tam 4 strategie prawdopodobnie przy 3 już bym się zastanowił czy nie zrobić tego bardziej elastyczniej. Wszystko zależy od wymagań i jak często dochodziłyby by nowe strategie. </p>
<p>Przykładowo można by stworzyć ComposePaymentStrategy(list: <span>List&lt;PaymentStrategy&gt;</span>) gdzie <span>PaymentStrategy mogło by samo decydować czy się wybrać na podstawie OrderResult-a</span></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Bartosz Dąbek		</title>
		<link>https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-90</link>

		<dc:creator><![CDATA[Bartosz Dąbek]]></dc:creator>
		<pubDate>Fri, 13 Nov 2020 08:36:24 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1800#comment-90</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-89&quot;&gt;Łukasz&lt;/a&gt;.

To jest bardziej pseudokod niż prawdziwa implementacja. Można byłoby użyć same &lt;strong&gt;if&#039;y&lt;/strong&gt;,&lt;strong&gt; switch/case &lt;/strong&gt;lub &lt;strong&gt;przypisanie do zmiennej&lt;/strong&gt;.

Dzięki za uwagę :)]]></description>
			<content:encoded><![CDATA[<p>To jest bardziej pseudokod niż prawdziwa implementacja. Można byłoby użyć same <strong>if&#8217;y</strong>,<strong> switch/case </strong>lub <strong>przypisanie do zmiennej</strong>.</p>
<p>Dzięki za uwagę 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Łukasz		</title>
		<link>https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-89</link>

		<dc:creator><![CDATA[Łukasz]]></dc:creator>
		<pubDate>Fri, 13 Nov 2020 08:17:31 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1800#comment-89</guid>

					<description><![CDATA[Dlaczego stosujesz &quot;&lt;strong&gt;else&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;strong&gt;if&quot; &lt;/strong&gt;&lt;span&gt;jeżeli masz w warunku poprzednim &quot;return&quot;?&lt;/span&gt;]]></description>
			<content:encoded><![CDATA[<p>Dlaczego stosujesz &#8222;<strong>else</strong><span> </span><strong>if&#8221; </strong><span>jeżeli masz w warunku poprzednim &#8222;return&#8221;?</span></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Bartosz Dąbek		</title>
		<link>https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-87</link>

		<dc:creator><![CDATA[Bartosz Dąbek]]></dc:creator>
		<pubDate>Sat, 07 Nov 2020 06:02:07 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1800#comment-87</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-86&quot;&gt;Krzysiek&lt;/a&gt;.

Pierw bym się zastanowił dlaczego miałbym ich nie używać i czy da mi to wartość (czytelniejszy kod / łatwiejszy w utrzymaniu).

Jeżeli bym stwierdził, że faktycznie trzeba się tego pozbyć to na początku wywaliłbym to do fabryki, która robiłaby to samo tylko, że warstwę niżej.
Jeżeli nadal potrzebowałbym aby koniecznie pozbyć się if/else (lub switch&#039;a) to wrzuciłbym to do mapy. Kluczem byłyby enum PaymentType a wartościami konkretne implementacje strategii.

Jeżeli miałbyś wymaganie aby móc dodawać to dynamicznie to można pokusić się jeszcze o tworzenie konkretnej strategii w runtimie za pomocą refleksji (a w propertisach trzymać definicję tworzonych strategii) - ale w większości przypadków to nie jest konieczne. No i trzeba pamiętać, że kosztem tego jest czytelność kodu.

@Edit
obczaj sobie tutaj jak to jest zrobione (zarówno fabryka jak i refleksja) - https://dzone.com/articles/java-the-strategy-pattern]]></description>
			<content:encoded><![CDATA[<p>Pierw bym się zastanowił dlaczego miałbym ich nie używać i czy da mi to wartość (czytelniejszy kod / łatwiejszy w utrzymaniu).</p>
<p>Jeżeli bym stwierdził, że faktycznie trzeba się tego pozbyć to na początku wywaliłbym to do fabryki, która robiłaby to samo tylko, że warstwę niżej.<br />
Jeżeli nadal potrzebowałbym aby koniecznie pozbyć się if/else (lub switch&#8217;a) to wrzuciłbym to do mapy. Kluczem byłyby enum PaymentType a wartościami konkretne implementacje strategii.</p>
<p>Jeżeli miałbyś wymaganie aby móc dodawać to dynamicznie to można pokusić się jeszcze o tworzenie konkretnej strategii w runtimie za pomocą refleksji (a w propertisach trzymać definicję tworzonych strategii) &#8211; ale w większości przypadków to nie jest konieczne. No i trzeba pamiętać, że kosztem tego jest czytelność kodu.</p>
<p>@Edit<br />
obczaj sobie tutaj jak to jest zrobione (zarówno fabryka jak i refleksja) &#8211; <a href="https://dzone.com/articles/java-the-strategy-pattern" rel="nofollow ugc">https://dzone.com/articles/java-the-strategy-pattern</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Krzysiek		</title>
		<link>https://www.bdabek.pl/wzorzec-strategii-%f0%9f%99%8f-jak-czytelnie-pisac-kod-%f0%9f%a4%94/#comment-86</link>

		<dc:creator><![CDATA[Krzysiek]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 18:49:35 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1800#comment-86</guid>

					<description><![CDATA[jaki poleciłbyś sposób, żeby nie używać IF&#039;ow w miejscu &lt;span&gt;choosePaymentStrategy ?&lt;/span&gt;]]></description>
			<content:encoded><![CDATA[<p>jaki poleciłbyś sposób, żeby nie używać IF&#8217;ow w miejscu <span>choosePaymentStrategy ?</span></p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
