{"id":70,"date":"2023-09-13T20:20:43","date_gmt":"2023-09-13T18:20:43","guid":{"rendered":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?page_id=70"},"modified":"2023-09-18T21:41:20","modified_gmt":"2023-09-18T19:41:20","slug":"blog","status":"publish","type":"page","link":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?page_id=70","title":{"rendered":"Blog"},"content":{"rendered":"\n<div class=\"wp-block-query alignfull is-layout-flow wp-block-query-is-layout-flow\">\n<div class=\"wp-block-group alignfull\" style=\"padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\"><ul style=\"text-transform:none;\" class=\"wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow\"><li class=\"wp-block-post post-74 post type-post status-publish format-standard hentry category-blog\">\n\n<div class=\"wp-block-group is-content-justification-left\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b4bdc4c8 wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-438e4d21 wp-block-group-is-layout-flex\" style=\"padding-bottom:var(--wp--preset--spacing--80)\"><div style=\"font-size:0.9rem;letter-spacing:1px; margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;\" class=\"has-text-align-left has-link-color wp-elements-5599b62b56904c5408ce764ba1a18b73 wp-block-post-date has-text-color has-contrast-color\"><time datetime=\"2023-09-19T23:16:19+02:00\">9\/19\/2023<\/time><\/div>\n\n\n<div class=\"wp-block-group\" style=\"margin-top:0;margin-bottom:0\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><h2 style=\"font-size:4.6rem;font-style:normal;font-weight:600;line-height:1;\" class=\"has-link-color wp-elements-6c63676d444148112043a3d23d59cf70 wp-block-post-title has-text-color has-contrast-color\"><a href=\"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?p=74\" target=\"_self\" >Wzorce projektowe &#8211; Fabryka (factory)<\/a><\/h2>\n\n<div style=\"line-height:1.7;\" class=\"wp-block-post-excerpt has-small-font-size\"><p class=\"wp-block-post-excerpt__excerpt\">Fabryka jest wzorcem kreacyjnym, kt\u00f3rego celem jest u\u0142atwienie tworzenia obiekt\u00f3w tego samego typu bez specyfikowania ich klas. Przyk\u0142adowo jest przydatne w grach strategicznych, gdzie jeden budynek (fabryka) produkuje kilka typ\u00f3w jednostek z r\u00f3\u017cnymi zmiennymi. Og\u00f3lna struktura tego wzorca wygl\u0105da nast\u0119puj\u0105co: W praktyce za\u0142\u00f3\u017cmy, \u017ce mamy aplikacj\u0119 &#8222;symuluj\u0105c\u0105&#8221; dwie restauracje: jedna serwuj\u0105ca burgera XXL i nap\u00f3j<\/p><p class=\"wp-block-post-excerpt__more-text\"><a class=\"wp-block-post-excerpt__more-link\" href=\"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?p=74\">Czytaj dalej&#8230;<\/a><\/p><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div>\n\n<\/li><li class=\"wp-block-post post-87 post type-post status-publish format-standard hentry category-blog\">\n\n<div class=\"wp-block-group is-content-justification-left\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b4bdc4c8 wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-438e4d21 wp-block-group-is-layout-flex\" style=\"padding-bottom:var(--wp--preset--spacing--80)\"><div style=\"font-size:0.9rem;letter-spacing:1px; margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;\" class=\"has-text-align-left has-link-color wp-elements-5599b62b56904c5408ce764ba1a18b73 wp-block-post-date has-text-color has-contrast-color\"><time datetime=\"2023-09-18T22:55:09+02:00\">9\/18\/2023<\/time><\/div>\n\n\n<div class=\"wp-block-group\" style=\"margin-top:0;margin-bottom:0\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><h2 style=\"font-size:4.6rem;font-style:normal;font-weight:600;line-height:1;\" class=\"has-link-color wp-elements-6c63676d444148112043a3d23d59cf70 wp-block-post-title has-text-color has-contrast-color\"><a href=\"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?p=87\" target=\"_self\" >Wzorce projektowe &#8211; Budowniczy (builder)<\/a><\/h2>\n\n<div style=\"line-height:1.7;\" class=\"wp-block-post-excerpt has-small-font-size\"><p class=\"wp-block-post-excerpt__excerpt\">Wzorzec kreacyjny u\u017cywany w przypadku klas z wieloma potencjalnymi konstruktorami i zmiennymi. U\u0142atwia tworzenie nowych obiekt\u00f3w poprzez wywo\u0142ywanie setter\u00f3w klasy Budowniczy, zamiast wypisywania zmiennych w konstruktorze, co mo\u017ce by\u0107 problematyczne w przypadku klas z wieloma zmiennymi, kt\u00f3rych niekoniecznie chcemy wszystkich u\u017cy\u0107. Istniej\u0105 dwa rodzaje tego wzorca. Wersja klasyczna: Oraz wersja prostsza, wbudowana w klas\u0119, kt\u00f3rej<\/p><p class=\"wp-block-post-excerpt__more-text\"><a class=\"wp-block-post-excerpt__more-link\" href=\"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?p=87\">Czytaj dalej&#8230;<\/a><\/p><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div>\n\n<\/li><li class=\"wp-block-post post-75 post type-post status-publish format-standard hentry category-blog\">\n\n<div class=\"wp-block-group is-content-justification-left\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-b4bdc4c8 wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-438e4d21 wp-block-group-is-layout-flex\" style=\"padding-bottom:var(--wp--preset--spacing--80)\"><div style=\"font-size:0.9rem;letter-spacing:1px; margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;\" class=\"has-text-align-left has-link-color wp-elements-5599b62b56904c5408ce764ba1a18b73 wp-block-post-date has-text-color has-contrast-color\"><time datetime=\"2023-09-18T21:27:48+02:00\">9\/18\/2023<\/time><\/div>\n\n\n<div class=\"wp-block-group\" style=\"margin-top:0;margin-bottom:0\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><h2 style=\"font-size:4.6rem;font-style:normal;font-weight:600;line-height:1;\" class=\"has-link-color wp-elements-6c63676d444148112043a3d23d59cf70 wp-block-post-title has-text-color has-contrast-color\"><a href=\"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?p=75\" target=\"_self\" >Wzorce projektowe &#8211; Fasada (facade)<\/a><\/h2>\n\n<div style=\"line-height:1.7;\" class=\"wp-block-post-excerpt has-small-font-size\"><p class=\"wp-block-post-excerpt__excerpt\">Celem wzorca projektowego fasada jest ukrycie klas i funkcji aplikacji, do kt\u00f3rych dany u\u017cytkownik nie powinien mie\u0107 dost\u0119pu. Odbywa si\u0119 to za pomoc\u0105 dodatkowej klasy &#8222;fasadowej&#8221;, w kt\u00f3rej znajduj\u0105 si\u0119 funkcje odnosz\u0105ce si\u0119 do docelowych, ukrywanych klas. Jest to bardzo przydatny wzorzec w przypadku aplikacji, w kt\u00f3rych u\u017cytkownicy maj\u0105 r\u00f3\u017cne poziomy dost\u0119pu. Schemat dzia\u0142ania tego<\/p><p class=\"wp-block-post-excerpt__more-text\"><a class=\"wp-block-post-excerpt__more-link\" href=\"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/?p=75\">Czytaj dalej&#8230;<\/a><\/p><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div>\n\n<\/li><\/ul><\/div><\/div>\n\n\n\n<div class=\"wp-block-group is-content-justification-left\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-4f3b647b wp-block-group-is-layout-constrained\"><\/div><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-70","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/pages\/70","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=70"}],"version-history":[{"count":2,"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/pages\/70\/revisions"}],"predecessor-version":[{"id":86,"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=\/wp\/v2\/pages\/70\/revisions\/86"}],"wp:attachment":[{"href":"https:\/\/jan-napiorkowski.profesjonalnyprogramista.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}