{"id":76,"date":"2023-03-10T09:35:35","date_gmt":"2023-03-10T08:35:35","guid":{"rendered":"http:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/?p=76"},"modified":"2023-03-17T12:38:05","modified_gmt":"2023-03-17T11:38:05","slug":"factory","status":"publish","type":"post","link":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/?p=76","title":{"rendered":"Factory &#8211; Design Pattern"},"content":{"rendered":"\n<p>Wzorce Projektowe ang. Design Patterns, s\u0105 to uporz\u0105dkowane i sprawdzone w praktyce rozwi\u0105zania cz\u0119sto spotykanych problem\u00f3w programistycznych. Ich implementacja nie tylko rozwi\u0105zuje napotkany problem ale r\u00f3wnie\u017c u\u0142atwia komunikacj\u0119 w zespole oraz szybsze zrozumienie kodu przez innych programist\u00f3w.<\/p>\n\n\n\n<p>Wzorzec projektowy Fabryka ang. Factory, enkapsuluje tworzenie obiekt\u00f3w. Oddelegowuje tworzenie obiekt\u00f3w do innych klas. Jednym ze sposob\u00f3w implementacji wzorca Fabryka, jest &#8222;metoda fabrykuj\u0105ca&#8221;.<\/p>\n\n\n\n<p>Implementacja z u\u017cyciem metody fabrykuj\u0105cej opiera si\u0119 na nast\u0119puj\u0105cych elementach. Klasa abstrakcyjna &#8222;Factory&#8221;, z abstrakcyjn\u0105 metod\u0105 publiczn\u0105, zwracaj\u0105c\u0105 obiekt typu &#8222;Klasa&#8221;, do kt\u00f3rej implementowana jest Fabryka. Kolejnym elementem jest &#8222;KlasaFactory&#8221;, w kt\u00f3rej to znajduje si\u0119 metoda zwracaj\u0105ca obiekt klasy1 lub obiekt klasy2 o typie &#8222;Klasa&#8221;. &#8222;KlasaFactory&#8221; wykorzystuje &#8222;enum&#8221;, do okre\u015blenia jaki typ obiektu chcemy stworzy\u0107 z wykorzystaniem metody &#8222;createKlasa&#8221; w &#8222;KlasaFactory&#8221;. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"713\" src=\"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/03\/image-1-1024x713.png\" alt=\"\" class=\"wp-image-95\" srcset=\"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/03\/image-1-1024x713.png 1024w, https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/03\/image-1-300x209.png 300w, https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/03\/image-1-768x535.png 768w, https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/03\/image-1-167x116.png 167w, https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/03\/image-1.png 1204w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Implementacja wzorca Factory z wykorzystaniem metody fabrykuj<\/figcaption><\/figure>\n\n\n\n<p>Wykorzystanie wzorca projektowego Factory, zmniejsza prawdopodobie\u0144stwo pope\u0142niania b\u0142\u0119d\u00f3w podczas wielokrotnym tworzeniu obiekt\u00f3w o okre\u015blonych parametrach. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wzorce Projektowe ang. Design Patterns, s\u0105 to uporz\u0105dkowane i sprawdzone w praktyce rozwi\u0105zania cz\u0119sto spotykanych problem\u00f3w programistycznych. Ich implementacja nie tylko rozwi\u0105zuje napotkany problem ale r\u00f3wnie\u017c u\u0142atwia komunikacj\u0119 w zespole oraz szybsze zrozumienie kodu przez innych programist\u00f3w. Wzorzec projektowy Fabryka ang. Factory, enkapsuluje tworzenie obiekt\u00f3w. Oddelegowuje tworzenie obiekt\u00f3w do innych klas. Jednym ze sposob\u00f3w implementacji &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/?p=76\" class=\"more-link\">Read more<span class=\"screen-reader-text\"> &#8222;Factory &#8211; Design Pattern&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-76","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/posts\/76","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=76"}],"version-history":[{"count":5,"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions"}],"predecessor-version":[{"id":102,"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions\/102"}],"wp:attachment":[{"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/krystian-surowiec.profesjonalnyprogramista.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}