{"id":230,"date":"2023-10-02T21:52:22","date_gmt":"2023-10-02T19:52:22","guid":{"rendered":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/?page_id=230"},"modified":"2023-10-03T22:37:05","modified_gmt":"2023-10-03T20:37:05","slug":"wzorce-projektowe","status":"publish","type":"page","link":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/blog\/wzorce-projektowe\/","title":{"rendered":"Wzorce Projektowe"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"230\" class=\"elementor elementor-230\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-693890f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"693890f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e7394c4\" data-id=\"e7394c4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6cbd0b1 elementor-widget elementor-widget-heading\" data-id=\"6cbd0b1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.18.0 - 20-12-2023 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-default\">Wzorce Projektowe<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-adac5ea elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"adac5ea\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d10917d\" data-id=\"d10917d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5567d82 elementor-position-right elementor-widget__width-initial elementor-vertical-align-top elementor-widget elementor-widget-image-box\" data-id=\"5567d82\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.18.0 - 20-12-2023 *\/\n.elementor-widget-image-box .elementor-image-box-content{width:100%}@media (min-width:768px){.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper,.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{display:flex}.elementor-widget-image-box.elementor-position-right .elementor-image-box-wrapper{text-align:right;flex-direction:row-reverse}.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper{text-align:left;flex-direction:row}.elementor-widget-image-box.elementor-position-top .elementor-image-box-img{margin:auto}.elementor-widget-image-box.elementor-vertical-align-top .elementor-image-box-wrapper{align-items:flex-start}.elementor-widget-image-box.elementor-vertical-align-middle .elementor-image-box-wrapper{align-items:center}.elementor-widget-image-box.elementor-vertical-align-bottom .elementor-image-box-wrapper{align-items:flex-end}}@media (max-width:767px){.elementor-widget-image-box .elementor-image-box-img{margin-left:auto!important;margin-right:auto!important;margin-bottom:15px}}.elementor-widget-image-box .elementor-image-box-img{display:inline-block}.elementor-widget-image-box .elementor-image-box-title a{color:inherit}.elementor-widget-image-box .elementor-image-box-wrapper{text-align:center}.elementor-widget-image-box .elementor-image-box-description{margin:0}<\/style><div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/wzorceProjektowe-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-225\" alt=\"\" srcset=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/wzorceProjektowe-150x150.png 150w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/wzorceProjektowe-300x300.png 300w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/elementor\/thumbs\/wzorceProjektowe-qda94rwi5uy2nbgnqdfd9gdfgnnmdsm9eus02hxlns.png 100w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/wzorceProjektowe.png 512w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">Co to s\u0105 wzorce projektowe?<\/h3><p class=\"elementor-image-box-description\">Mo\u017cna to wyt\u0142umaczy\u0107 w bardzo prosty spos\u00f3b. Grupa do\u015bwiadczonych programist\u00f3w zauwa\u017cy\u0142a, \u017ce pewne problemy si\u0119 powtarzaj\u0105 w wielu r\u00f3\u017cnych projektach. Wpadli na pomys\u0142, by spisa\u0107 typowe rozwi\u0105zania tych problem\u00f3w. Te rozwi\u0105zania to w\u0142a\u015bnie Wzorce Projektowe. Innymi s\u0142owami jest to spos\u00f3b pisania kodu, tworzenia zale\u017cno\u015bci, nazywania klas, kt\u00f3ry ma na celu pom\u00f3c programi\u015bcie, osobie przegl\u0105daj\u0105cej ten kod, jak r\u00f3wnie\u017c osobie, kt\u00f3ra dopiero do\u0142\u0105czy\u0142a do projektu. <\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b5e300a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b5e300a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-939bdcd\" data-id=\"939bdcd\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ec160c2 elementor-position-left elementor-view-default elementor-mobile-position-top elementor-vertical-align-top elementor-widget elementor-widget-icon-box\" data-id=\"ec160c2\" data-element_type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/plugins\/elementor\/assets\/css\/widget-icon-box.min.css\">\t\t<div class=\"elementor-icon-box-wrapper\">\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-dice-three\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t<span  >\n\t\t\t\t\t\tWyr\u00f3\u017cniamy 3 grupy wzorc\u00f3w projektowych\t\t\t\t\t<\/span>\n\t\t\t\t<\/h3>\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t-Wzorce kreacyjne \u2013 wykorzystujemy je do tworzenia i konfiguracji obiekt\u00f3w, zwi\u0119kszaj\u0105c ich elastyczno\u015b\u0107 i u\u0142atwiaj\u0105c ponowne u\u017cycie kodu (na przyk\u0142ad: Fabryka Factory)<br>\n-Wzorce strukturalne \u2013 opisuj\u0105 struktury powi\u0105zanych ze sob\u0105 obiekt\u00f3w, zachowuj\u0105c przy tym elastyczno\u015b\u0107 i efektywno\u015b\u0107 tych struktur (na przyk\u0142ad: Adapter Adapter)<br>\n-Wzorce behawioralne \u2013 dotycz\u0105 algorytm\u00f3w i rozdzielania odpowiedzialno\u015bci pomi\u0119dzy obiektami (na przyk\u0142ad Stan State)\n\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1935ce8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1935ce8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-81ece38\" data-id=\"81ece38\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b54fc6d elementor-position-right elementor-view-default elementor-mobile-position-top elementor-vertical-align-top elementor-widget elementor-widget-icon-box\" data-id=\"b54fc6d\" data-element_type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon elementor-animation-\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"far fa-hand-point-right\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t<span  >\n\t\t\t\t\t\tCzy wzorce to niezb\u0119dna wiedza dla programisty?\t\t\t\t\t<\/span>\n\t\t\t\t<\/h3>\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tZaczn\u0119 od tego, \u017ce nie jest to niezb\u0119dna wiedza dla programisty. Mo\u017cna wiele lat programowa\u0107, mierzy\u0107 si\u0119 z problemami i rozwi\u0105zywa\u0107 je w\u0142asnymi si\u0142ami, tylko po co? Jak mawia klasyk: po co wymy\u015bla\u0107 ko\u0142o na nowo? Zapewne wi\u0119kszo\u015b\u0107 problem\u00f3w, kt\u00f3re bym napotka\u0142, kto\u015b ju\u017c kiedy\u015b przerabia\u0142, ba nawet znalaz\u0142 rozwi\u0105zanie i podzieli\u0142 si\u0119 z innymi za po\u015brednictwem Wzorc\u00f3w Projektowych. Aby lepiej przekaza\u0107 czym s\u0105 wzorce projektowe przybli\u017c\u0119 dzia\u0142anie kilku z nich.\t\t\t\t\t<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9a7c9c8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9a7c9c8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-df3846f\" data-id=\"df3846f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cac6dab elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"cac6dab\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/fabryka\/\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/factory-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-224\" alt=\"\" srcset=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/factory-150x150.png 150w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/factory-300x300.png 300w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/factory.png 512w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/fabryka\/\">Fabryka<\/a><\/h3><p class=\"elementor-image-box-description\">tworzenie nowych obiekt\u00f3w nie musi by\u0107 trudne<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-953d37d\" data-id=\"953d37d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-afe0699 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"afe0699\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/adapter\/\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/adapter-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-222\" alt=\"\" srcset=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/adapter-150x150.png 150w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/adapter-300x300.png 300w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/adapter.png 512w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/adapter\/\">Adapter<\/a><\/h3><p class=\"elementor-image-box-description\">nie tylko przej\u015bcie z cinch na jack<\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-ba85ddf\" data-id=\"ba85ddf\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b7d8955 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"b7d8955\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/state\/\" tabindex=\"-1\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"512\" src=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/stage.png\" class=\"attachment-full size-full wp-image-223\" alt=\"\" srcset=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/stage.png 512w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/stage-300x300.png 300w, https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/wp-content\/uploads\/2023\/10\/stage-150x150.png 150w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/state\/\">Stan<\/a><\/h3><p class=\"elementor-image-box-description\"><span style=\"font-family: Poppins, sans-serif; text-align: start; white-space-collapse: collapse;\">czyli zapami\u0119tujemy aktualny etap<\/span><\/p><\/div><\/div>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Wzorce Projektowe Co to s\u0105 wzorce projektowe? Mo\u017cna to wyt\u0142umaczy\u0107 w bardzo prosty spos\u00f3b. Grupa do\u015bwiadczonych programist\u00f3w zauwa\u017cy\u0142a, \u017ce pewne problemy si\u0119 powtarzaj\u0105 w wielu r\u00f3\u017cnych projektach. Wpadli na pomys\u0142, by spisa\u0107 typowe rozwi\u0105zania tych problem\u00f3w. Te rozwi\u0105zania to w\u0142a\u015bnie Wzorce Projektowe. Innymi s\u0142owami jest to spos\u00f3b pisania kodu, tworzenia zale\u017cno\u015bci, nazywania klas, kt\u00f3ry ma [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":154,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-230","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages\/230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/comments?post=230"}],"version-history":[{"count":16,"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages\/230\/revisions"}],"predecessor-version":[{"id":315,"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages\/230\/revisions\/315"}],"up":[{"embeddable":true,"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages\/154"}],"wp:attachment":[{"href":"https:\/\/pawel-majchrzak.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/media?parent=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}