{"id":4246,"date":"2025-08-31T13:36:09","date_gmt":"2025-08-31T11:36:09","guid":{"rendered":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/?page_id=4246"},"modified":"2026-04-09T12:49:22","modified_gmt":"2026-04-09T10:49:22","slug":"elementor-4246","status":"publish","type":"page","link":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4246\/","title":{"rendered":"Open-Closed Principle"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"4246\" class=\"elementor elementor-4246\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d3e5706 e-con-full e-flex e-con e-parent\" data-id=\"1d3e5706\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-13735c25 e-flex e-con-boxed e-con e-child\" data-id=\"13735c25\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4637de6 elementor-icon-list--layout-inline elementor-mobile-align-center elementor-align-left elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"4637de6\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"icon icon-envelope1\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">natalia.kaczynska.programista@gmail.com<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1811e11 elementor-widget elementor-widget-shortcode\" data-id=\"1811e11\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"mega-menu-wrap-secondary_menu\" class=\"mega-menu-wrap\"><div class=\"mega-menu-toggle\"><div class=\"mega-toggle-blocks-left\"><\/div><div class=\"mega-toggle-blocks-center\"><\/div><div class=\"mega-toggle-blocks-right\"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-label=\"Show\/hide menu\" class=\"mega-toggle-animated mega-toggle-animated-slider\" type=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" aria-controls=\"mega-menu-secondary_menu\">\n                  <span class=\"mega-toggle-animated-box\">\n                    <span class=\"mega-toggle-animated-inner\"><\/span>\n                  <\/span>\n                <\/button><\/div><\/div><\/div><ul id=\"mega-menu-secondary_menu\" class=\"mega-menu max-mega-menu mega-menu-horizontal mega-no-js\" data-event=\"hover\" data-effect=\"fade_up\" data-effect-speed=\"400\" data-effect-mobile=\"slide\" data-effect-speed-mobile=\"400\" data-mobile-force-width=\"false\" data-second-click=\"go\" data-document-click=\"collapse\" data-vertical-behaviour=\"standard\" data-breakpoint=\"768\" data-unbind=\"true\" data-mobile-state=\"collapse_all\" data-mobile-direction=\"vertical\" data-hover-intent-timeout=\"300\" data-hover-intent-interval=\"100\"><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-4547\" id=\"mega-menu-item-4547\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/porftolio-v2\/\">Portfolio<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-home mega-align-bottom-left mega-menu-flyout mega-menu-item-3974\" id=\"mega-menu-item-3974\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/\">Homepage<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-3975\" id=\"mega-menu-item-3975\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/about\/\">About me<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-megamenu mega-menu-grid mega-align-bottom-left mega-menu-grid mega-menu-item-4304\" id=\"mega-menu-item-4304\"><a class=\"mega-menu-link\" href=\"#\" aria-expanded=\"false\" aria-controls=\"mega-sub-menu-4304\">Articles<span class=\"mega-indicator\" aria-hidden=\"true\"><\/span><\/a>\n<ul class=\"mega-sub-menu\" role='presentation' id='mega-sub-menu-4304'>\n<li class=\"mega-menu-row\" id=\"mega-menu-4304-0\">\n\t<ul class=\"mega-sub-menu\" style='--columns:2' role='presentation'>\n<li class=\"mega-menu-column mega-menu-columns-3-of-2\" style=\"--columns:2; --span:3\" id=\"mega-menu-4304-0-0\">\n\t\t<ul class=\"mega-sub-menu\">\n<li class=\"mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-disable-link mega-menu-item-4306\" id=\"mega-menu-item-4306\"><a class=\"mega-menu-link\" tabindex=\"0\">Design patterns<span class=\"mega-indicator\" aria-hidden=\"true\"><\/span><\/a>\n\t\t\t<ul class=\"mega-sub-menu\" id='mega-sub-menu-4306'>\n<li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4314\" id=\"mega-menu-item-4314\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4099\/\">Strategy<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4313\" id=\"mega-menu-item-4313\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/budowniczy\/\">Builder<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4312\" id=\"mega-menu-item-4312\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/fabryka\/\">Factory<\/a><\/li>\t\t\t<\/ul>\n<\/li><li class=\"mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-disable-link mega-menu-item-4305\" id=\"mega-menu-item-4305\"><a class=\"mega-menu-link\" tabindex=\"0\">SOLID<span class=\"mega-indicator\" aria-hidden=\"true\"><\/span><\/a>\n\t\t\t<ul class=\"mega-sub-menu\" id='mega-sub-menu-4305'>\n<li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4311\" id=\"mega-menu-item-4311\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4232\/\">Single responsibility<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4310\" id=\"mega-menu-item-4310\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4246\/\">Open-Closed Principle<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4309\" id=\"mega-menu-item-4309\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/liskov-substitution-principle\/\">Liskov Substitution Principle<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4308\" id=\"mega-menu-item-4308\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4278\/\">Interface Segregation Principle<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4307\" id=\"mega-menu-item-4307\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4292\/\">Dependency Inversion Principle<\/a><\/li>\t\t\t<\/ul>\n<\/li>\t\t<\/ul>\n<\/li>\t<\/ul>\n<\/li><\/ul>\n<\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-3976\" id=\"mega-menu-item-3976\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/contact\/\">Contact<\/a><\/li><\/ul><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b113afa e-flex e-con-boxed e-con e-parent\" data-id=\"b113afa\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9430ddb elementor-widget elementor-widget-heading\" data-id=\"9430ddb\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Open Close Principle (OCP) (zasada otwarte-zamkni\u0119te)<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-168b745 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"168b745\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f91a62 elementor-widget elementor-widget-text-editor\" data-id=\"3f91a62\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>M\u00f3wi ona, \u017ce nasz kod powinien by\u0107 <strong><em data-start=\"531\" data-end=\"586\">otwarty na rozszerzanie, ale zamkni\u0119ty na modyfikacje<\/em><\/strong>. W praktyce oznacza to, \u017ce kiedy wprowadzamy nowe funkcjonalno\u015bci, powinni\u015bmy unika\u0107 ingerencji w istniej\u0105cy kod, aby nie wprowadza\u0107 b\u0142\u0119d\u00f3w i u\u0142atwi\u0107 utrzymanie systemu.<\/p><p>Poni\u017cej zaprezentuj\u0119 przyk\u0142ad programu &#8211; kalkulatora, kt\u00f3ry <strong>\u0142amie wspomnian\u0105 zasad\u0119.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08d332e elementor-widget elementor-widget-wp-widget-custom_html\" data-id=\"08d332e\" data-element_type=\"widget\" data-widget_type=\"wp-widget-custom_html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"textwidget custom-html-widget\"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Calculator {\r\n    public double calculate(String operation, double x, double y) {\r\n        switch(operation) {\r\n            case &quot;add&quot;:\r\n                return x + y;\r\n            case &quot;subtract&quot;:\r\n                return x - y;\r\n            default:\r\n                throw new IllegalArgumentException(&quot;Unknown operation: &quot; + operation);\r\n        }\r\n    }\r\n}\r\n\r\n<\/pre><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1587563 e-flex e-con-boxed e-con e-parent\" data-id=\"1587563\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b02f157 elementor-widget elementor-widget-wp-widget-custom_html\" data-id=\"b02f157\" data-element_type=\"widget\" data-widget_type=\"wp-widget-custom_html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"textwidget custom-html-widget\"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Demo {\r\n    public static void main(String&#x5B;] args){\r\n        Calculator calc = new Calculator();\r\n        System.out.println(calc.calculate(&quot;add&quot;, 5, 3));\r\n        System.out.println(calc.calculate(&quot;subtract&quot;, 89, 34));\r\n    }\r\n}\r\n\r\n<\/pre><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67707b5 elementor-widget elementor-widget-text-editor\" data-id=\"67707b5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>W powy\u017cszym przyk\u0142adzie z czasem mogliby\u015bmy chcie\u0107 doda\u0107 jak\u0105\u015b now\u0105 operacj\u0119 do funkcji switch, a wtedy jest to <strong>modyfikacja kodu<\/strong> (takie zachowanie tak\u017ce \u0142amie t\u0105 zasad\u0119).<\/p><p>Poni\u017cej zaprezentuj\u0119 poprawion\u0105 wersj\u0119 przyk\u0142adu <strong>zachowuj\u0105c\u0105 OCP<\/strong>:<\/p><p>Najpierw tworzymy wsp\u00f3lny interfejs:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1136bd6 elementor-widget elementor-widget-wp-widget-custom_html\" data-id=\"1136bd6\" data-element_type=\"widget\" data-widget_type=\"wp-widget-custom_html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"textwidget custom-html-widget\"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic interface Operation {\r\n    double calculate(double x, double y);\r\n}\r\n\r\n<\/pre><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1e0e9ad e-flex e-con-boxed e-con e-parent\" data-id=\"1e0e9ad\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eb17838 elementor-widget elementor-widget-wp-widget-custom_html\" data-id=\"eb17838\" data-element_type=\"widget\" data-widget_type=\"wp-widget-custom_html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"textwidget custom-html-widget\"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class Add implements Operation {\r\n    @Override\r\n    public double calculate(double x, double y) {\r\n        return x + y;\r\n    }\r\n}\r\n<\/pre><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e9eaf93 e-flex e-con-boxed e-con e-parent\" data-id=\"e9eaf93\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-30ad69e elementor-widget elementor-widget-text-editor\" data-id=\"30ad69e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Analogiczn\u0105 klas\u0119 implementujemy dla odejmowania.<\/p><p>Zmodyfikowana klasa Calculator:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6777172 elementor-widget elementor-widget-wp-widget-custom_html\" data-id=\"6777172\" data-element_type=\"widget\" data-widget_type=\"wp-widget-custom_html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"textwidget custom-html-widget\"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nimport java.util.HashMap;\r\nimport java.util.Map;\r\n\r\npublic class Calculator {\r\n    private final Map operations = new HashMap();\r\n\r\n    public Calculator() {\r\n        operations.put(&quot;add&quot;, new Add());\r\n        operations.put(&quot;subtract&quot;, new Subtract());\r\n    }\r\n    public double calculate(String operation, double x, double y) {\r\n        if (operations.containsKey(operation)) {\r\n            return operations.get(operation).calculate(x, y);\r\n        }\r\n        throw new IllegalArgumentException(&quot;Unknown operation: &quot; + operation);\r\n    }\r\n}\r\n<\/pre><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c269dc e-flex e-con-boxed e-con e-parent\" data-id=\"2c269dc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div>","protected":false},"excerpt":{"rendered":"<p>natalia.kaczynska.programista@gmail.com Open Close Principle (OCP) (zasada otwarte-zamkni\u0119te) M\u00f3wi ona, \u017ce nasz kod powinien by\u0107 otwarty na rozszerzanie, ale zamkni\u0119ty na [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-4246","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages\/4246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/comments?post=4246"}],"version-history":[{"count":16,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages\/4246\/revisions"}],"predecessor-version":[{"id":4869,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages\/4246\/revisions\/4869"}],"wp:attachment":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/media?parent=4246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}