{"id":530,"date":"2022-01-26T01:28:58","date_gmt":"2022-01-26T01:28:58","guid":{"rendered":"https:\/\/www.cybermedian.com\/pl\/?p=530"},"modified":"2025-02-17T11:44:10","modified_gmt":"2025-02-17T03:44:10","slug":"what-is-the-open-closed-principle-ocp","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/","title":{"rendered":"Czym jest zasada otwarte-zamkni\u0119te (OCP)?"},"content":{"rendered":"<section class=\"section section--body section--first\">\n<div class=\"section-content\">\n<div class=\"section-inner sectionLayout--insetColumn\">\n<p class=\"graf graf--p graf-after--h3\" id=\"05f0\">Zasada <a class=\"markup--anchor markup--p-anchor\" data-href=\"https:\/\/en.wikipedia.org\/wiki\/Open%E2%80%93closed_principle#:~:text=In%20object%2Doriented%20programming%2C%20the,without%20modifying%20its%20source%20code.\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open%E2%80%93closed_principle#:~:text=In%20object%2Doriented%20programming%2C%20the,without%20modifying%20its%20source%20code.\" rel=\"noopener\" target=\"_blank\">Otwarte \/ Zamkni\u0119te Zasady<\/a>jest najprostsz\u0105 zasad\u0105 projektowania w \u015bwiecie rozwoju oprogramowania. Wskazuje nam, jak zbudowa\u0107 stabilny i elastyczny system.<\/p>\n<h4 class=\"graf graf--h4 graf-after--p\" id=\"ef13\"><strong class=\"markup--strong markup--h4-strong\">Definicja:<\/strong><\/h4>\n<blockquote class=\"graf graf--blockquote graf-after--h4\" id=\"bc88\">\n<p>Jednostka oprogramowania, taka jak klasa, modu\u0142 i funkcja, powinna by\u0107 otwarta na rozszerzenia i zamkni\u0119ta na modyfikacje.<\/p>\n<\/blockquote>\n<p class=\"graf graf--p graf-after--blockquote\" id=\"8516\">Znaczenie zasady otwierania i zamykania polega na tym, \u017ce jednostka oprogramowania powinna by\u0107 rozszerzana w celu wprowadzenia zmian, a nie poprzez modyfikacj\u0119 istniej\u0105cego kodu.<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"aad3\">Zasada otwierania i zamykania to zasada, kt\u00f3ra ogranicza bie\u017c\u0105cy rozw\u00f3j i projektowanie dla przysz\u0142ych rzeczy jednostki oprogramowania.<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"3cf8\">Uwaga: Zasada otwierania i zamykania jest otwarta na rozszerzenia i zamkni\u0119ta na modyfikacje. Nie oznacza to, \u017ce nie b\u0119d\u0105 dokonywane modyfikacje. Zmiany w modu\u0142ach niskiego poziomu musz\u0105 by\u0107 powi\u0105zane z modu\u0142ami wysokiego poziomu, w przeciwnym razie b\u0119dzie to izolowany i bezsensowny fragment kodu.<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"adad\"><strong class=\"markup--strong markup--p-strong\">Znaczenie zasady otwierania i zamykania:<\/strong><\/p>\n<ul class=\"postList\">\n<li class=\"graf graf--li graf-after--p\" id=\"4231\">Wp\u0142yw zasad otwierania i zamykania na testowanie<\/li>\n<\/ul>\n<p class=\"graf graf--p graf-after--li\" id=\"dd2a\">Zasada otwierania i zamykania polega na tym, aby oryginalny kod testowy nadal m\u00f3g\u0142 dzia\u0142a\u0107 normalnie, musimy tylko przetestowa\u0107 rozszerzony kod.<\/p>\n<ul class=\"postList\">\n<li class=\"graf graf--li graf-after--p\" id=\"e807\">Zasada otwierania i zamykania mo\u017ce poprawi\u0107 ponowne wykorzystanie<\/li>\n<\/ul>\n<p class=\"graf graf--p graf-after--li\" id=\"1236\">W <a class=\"markup--anchor markup--p-anchor\" data-href=\"https:\/\/www.techopedia.com\/definition\/21105\/object-oriented-design-ood#:~:text=Object%2Doriented%20design%20(OOD)%20is%20the%20process%20of%20using,(OOP)%20process%20or%20lifecycle.\" href=\"https:\/\/www.techopedia.com\/definition\/21105\/object-oriented-design-ood#:~:text=Object%2Doriented%20design%20%28OOD%29%20is%20the%20process%20of%20using,%28OOP%29%20process%20or%20lifecycle.\" rel=\"noopener\" target=\"_blank\">projektowaniu obiektowym<\/a>, ca\u0142a logika jest \u0142\u0105czona z logiki atomowej, zamiast wdra\u017ca\u0107 logik\u0119 biznesow\u0105 w klasie niezale\u017cnie. Tylko w ten spos\u00f3b kod mo\u017ce by\u0107 ponownie wykorzystywany. Im mniejsza granularno\u015b\u0107, tym wi\u0119ksza mo\u017cliwo\u015b\u0107 ponownego wykorzystania.<\/p>\n<ul class=\"postList\">\n<li class=\"graf graf--li graf-after--p\" id=\"4999\">Zasada otwarte-zamkni\u0119te mo\u017ce poprawi\u0107 utrzymanie<\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"0c21\">Wymagania dotycz\u0105ce rozwoju obiektowego<\/li>\n<\/ul>\n<p class=\"graf graf--p graf-after--li\" id=\"6c46\"><strong class=\"markup--strong markup--p-strong\">Jak stosowa\u0107 zasad\u0119 otwierania i zamykania:<\/strong><\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"3568\"><strong class=\"markup--strong markup--p-strong\">Po pierwsze<\/strong>, ogranicz rozszerzenie poprzez interfejs lub klas\u0119 abstrakcyjn\u0105, ogranicz rozszerzenie granicy i nie pozwalaj na publiczne metody, kt\u00f3re nie istniej\u0105 w interfejsie lub klasie abstrakcyjnej;<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"8d58\"><strong class=\"markup--strong markup--p-strong\">Po drugie<\/strong>, staraj si\u0119 u\u017cywa\u0107 interfejs\u00f3w lub klas abstrakcyjnych dla typ\u00f3w parametr\u00f3w i obiekt\u00f3w referencyjnych zamiast klas implementacyjnych;<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"c031\"><strong class=\"markup--strong markup--p-strong\">Po trzecie<\/strong>, warstwa abstrakcji powinna by\u0107 utrzymywana tak stabilnie, jak to mo\u017cliwe, po jej potwierdzeniu nie s\u0105 dozwolone modyfikacje.<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"22c7\">Enkapsulacja zmian ma dwa znaczenia:<\/p>\n<p class=\"graf graf--p graf-after--p\" id=\"cda0\">Po pierwsze, enkapsuluj te same zmiany w interfejsie lub klasie abstrakcyjnej;<\/p>\n<p class=\"graf graf--p graf-after--p graf--trailing\" id=\"8a51\">Po drugie, enkapsuluj r\u00f3\u017cne zmiany w r\u00f3\u017cnych interfejsach lub klasach abstrakcyjnych. Dwie r\u00f3\u017cne zmiany nie powinny wyst\u0119powa\u0107 w tym samym interfejsie lub klasie abstrakcyjnej.<\/p>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"section section--body section--last\">\n<div class=\"section-divider\">\n<hr class=\"section-divider\"\/>\n<\/div>\n<div class=\"section-content\">\n<div class=\"section-inner sectionLayout--insetColumn\">\n<h4 class=\"graf graf--h4 graf--leading\" id=\"69e6\">Przyk\u0142ady<\/h4>\n<p class=\"graf graf--p graf-after--h4\" id=\"56bf\">Przyk\u0142ad, otwieranie i zamykanie drzwi r\u0119cznie.<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"d3f2\"><img class=\"graf-image\" data-height=\"148\" data-image-id=\"0*wlXaJtn3Bexx9ev7.png\" data-width=\"453\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/0wlXaJtn3Bexx9ev7.png\"\/><\/figure>\n<p class=\"graf graf--p graf-after--figure\" id=\"c2c2\">Je\u015bli pojawi si\u0119 nowe zapotrzebowanie, konieczne jest zwi\u0119kszenie funkcji otwierania i zamykania szuflady r\u0119cznie. W kodzie musisz doda\u0107 klas\u0119 Szuflada i jednocze\u015bnie zmodyfikowa\u0107 klas\u0119 R\u0119ka.<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"1d14\"><img class=\"graf-image\" data-height=\"500\" data-image-id=\"1*QXaFJLucsecnatWUuuuH6Q.png\" data-is-featured=\"true\" data-width=\"781\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/1QXaFJLucsecnatWUuuuH6Q.png\"\/><\/figure>\n<p class=\"graf graf--p graf-after--figure\" id=\"ce83\">Pod\u0105\u017caj\u0105c za przyk\u0142adem zasady otwierania i zamykania OCP, otwieranie i zamykanie drzwi r\u0119cznie zale\u017cy od interfejsu, a konkretna klasa implementacyjna wdra\u017ca ten interfejs.<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"28a1\"><img class=\"graf-image\" data-height=\"461\" data-image-id=\"1*NVWYY0ZYvgMJbnENhw1QKw.png\" data-width=\"800\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/1NVWYY0ZYvgMJbnENhw1QKw.png\"\/><\/figure>\n<p class=\"graf graf--p graf-after--figure\" id=\"2372\">Gdy konieczne jest zwi\u0119kszenie liczby r\u0105k do otwierania i zamykania lod\u00f3wki, klasa lod\u00f3wki wdra\u017ca ten interfejs bez modyfikacji oryginalnej klasy R\u0119ka i interfejsu.<\/p>\n<figure class=\"graf graf--figure graf-after--p\" id=\"6688\"><img class=\"graf-image\" data-height=\"464\" data-image-id=\"1*iR6WQOaVLjFUMy1056vL-w.png\" data-width=\"946\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/1iR6WQOaVLjFUMy1056vL-w.png\"\/><\/figure>\n<h4 class=\"graf graf--h4 graf-after--figure\" id=\"246b\">Wi\u0119cej zasob\u00f3w dotycz\u0105cych programowania obiektowego<\/h4>\n<ul class=\"postList\">\n<li class=\"graf graf--li graf-after--h4\" id=\"3002\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/reflectoring.io\/open-closed-principle-explained\/\" href=\"https:\/\/reflectoring.io\/open-closed-principle-explained\/\" rel=\"noopener\" target=\"_blank\">Wyja\u015bnienie zasady otwarte-zamkni\u0119te<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"be77\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/uml-class-diagram-tutorial\/\" href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/uml-class-diagram-tutorial\/\" rel=\"noopener\" target=\"_blank\">Samouczek dotycz\u0105cy diagram\u00f3w klas UML<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"d80e\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/what-is-class-diagram\/\" href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/what-is-class-diagram\/\" rel=\"noopener\" target=\"_blank\">Czym jest diagram klas?<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"f4cf\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/online.visual-paradigm.com\/diagrams\/solutions\/free-class-diagram-tool\/\" href=\"https:\/\/online.visual-paradigm.com\/diagrams\/solutions\/free-class-diagram-tool\/\" rel=\"noopener\" target=\"_blank\">Darmowe narz\u0119dzie do diagram\u00f3w klas<\/a><\/li>\n<li class=\"graf graf--li graf-after--li\" id=\"8e66\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"http:\/\/Online Class Diagram Software\" href=\"http:\/\/Online%20Class%20Diagram%20Software\" rel=\"noopener\" target=\"_blank\">Oprogramowanie do diagram\u00f3w klas online<\/a><\/li>\n<li class=\"graf graf--li graf-after--li graf--trailing\" id=\"1b39\"><a class=\"markup--anchor markup--li-anchor\" data-href=\"https:\/\/www.google.com\/search?q=uml+visaul+paradigm&amp;sxsrf=AOaemvJcREGG3huPXRdERD5w15PnUrAxuQ%3A1632104970304&amp;ei=CvJHYYfpEai9mAW8u67YAg&amp;oq=uml+visaul+paradigm&amp;gs_lcp=Cgdnd3Mtd2l6EAMyBwgjELACECcyBAgAEA0yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeOgQIABBDOg0ILhCxAxDHARDRAxBDOggIABCABBCxAzoFCAAQsQM6DgguEIAEELEDEMcBEKMCOgsILhCABBCxAxCDAToECCMQJzoFCAAQkQI6BQgAEIAEOgoIABCABBCHAhAUOgYIABANEB5KBAhBGABQ8fYzWJ-YNGCpmzRoAHACeACAAYUBiAHeDJIBBDE2LjOYAQCgAQHAAQE&amp;sclient=gws-wiz&amp;ved=0ahUKEwiHlvbnwIzzAhWoHqYKHbydCysQ4dUDCA4&amp;uact=5\" href=\"https:\/\/www.google.com\/search?q=uml+visaul+paradigm&amp;sxsrf=AOaemvJcREGG3huPXRdERD5w15PnUrAxuQ%3A1632104970304&amp;ei=CvJHYYfpEai9mAW8u67YAg&amp;oq=uml+visaul+paradigm&amp;gs_lcp=Cgdnd3Mtd2l6EAMyBwgjELACECcyBAgAEA0yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeOgQIABBDOg0ILhCxAxDHARDRAxBDOggIABCABBCxAzoFCAAQsQM6DgguEIAEELEDEMcBEKMCOgsILhCABBCxAxCDAToECCMQJzoFCAAQkQI6BQgAEIAEOgoIABCABBCHAhAUOgYIABANEB5KBAhBGABQ8fYzWJ-YNGCpmzRoAHACeACAAYUBiAHeDJIBBDE2LjOYAQCgAQHAAQE&amp;sclient=gws-wiz&amp;ved=0ahUKEwiHlvbnwIzzAhWoHqYKHbydCysQ4dUDCA4&amp;uact=5\" rel=\"noopener\" target=\"_blank\">Czym jest Zjednoczony J\u0119zyk Modelowania (UML)?<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>The\u00a0Open \/ Closed Principle\u00a0is the most basic design principle in the software development world. It guides us how to build a stable and flexible system. A software entity such as class, module, and function should be open for extension and closed for modification.<\/p>\n","protected":false},"author":1,"featured_media":1383,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"categories":[2,5],"tags":[52,63,62,53],"class_list":["post-530","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-project-management","category-software-engineering","tag-cn-done","tag-es-done","tag-ja-done","tag-tw-done"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Czym jest zasada otwarte-zamkni\u0119te (OCP)? - Cybermediana<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Czym jest zasada otwarte-zamkni\u0119te (OCP)? - Cybermediana\" \/>\n<meta property=\"og:description\" content=\"The\u00a0Open \/ Closed Principle\u00a0is the most basic design principle in the software development world. It guides us how to build a stable and flexible system. A software entity such as class, module, and function should be open for extension and closed for modification.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/\" \/>\n<meta property=\"og:site_name\" content=\"Cybermediana\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-26T01:28:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-17T03:44:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"vpadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vpadmin\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"vpadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/\"},\"author\":{\"name\":\"vpadmin\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\"},\"headline\":\"Czym jest zasada otwarte-zamkni\u0119te (OCP)?\",\"datePublished\":\"2022-01-26T01:28:58+00:00\",\"dateModified\":\"2025-02-17T03:44:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/\"},\"wordCount\":499,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg\",\"keywords\":[\"cn-done\",\"es-done\",\"ja-done\",\"tw-done\"],\"articleSection\":[\"Agile Project Management\",\"Software Engineering\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/\",\"name\":\"Czym jest zasada otwarte-zamkni\u0119te (OCP)? - Cybermediana\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg\",\"datePublished\":\"2022-01-26T01:28:58+00:00\",\"dateModified\":\"2025-02-17T03:44:10+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg\",\"contentUrl\":\"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg\",\"width\":900,\"height\":600,\"caption\":\"Open-Close Principle\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Czym jest zasada otwarte-zamkni\u0119te (OCP)?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/\",\"name\":\"Cybermediana\",\"description\":\"Uczenie si\u0119 jednej nowej rzeczy ka\u017cdego dnia\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\",\"name\":\"vpadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g\",\"caption\":\"vpadmin\"},\"sameAs\":[\"https:\/\/x.com\/vpadmin\"],\"url\":\"https:\/\/www.cybermedian.com\/pl\/author\/vpadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Czym jest zasada otwarte-zamkni\u0119te (OCP)? - Cybermediana","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/","og_locale":"pl_PL","og_type":"article","og_title":"Czym jest zasada otwarte-zamkni\u0119te (OCP)? - Cybermediana","og_description":"The\u00a0Open \/ Closed Principle\u00a0is the most basic design principle in the software development world. It guides us how to build a stable and flexible system. A software entity such as class, module, and function should be open for extension and closed for modification.","og_url":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/","og_site_name":"Cybermediana","article_published_time":"2022-01-26T01:28:58+00:00","article_modified_time":"2025-02-17T03:44:10+00:00","og_image":[{"width":900,"height":600,"url":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg","type":"image\/jpeg"}],"author":"vpadmin","twitter_card":"summary_large_image","twitter_creator":"@vpadmin","twitter_misc":{"Napisane przez":"vpadmin","Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/"},"author":{"name":"vpadmin","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a"},"headline":"Czym jest zasada otwarte-zamkni\u0119te (OCP)?","datePublished":"2022-01-26T01:28:58+00:00","dateModified":"2025-02-17T03:44:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/"},"wordCount":499,"commentCount":0,"image":{"@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg","keywords":["cn-done","es-done","ja-done","tw-done"],"articleSection":["Agile Project Management","Software Engineering"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/","url":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/","name":"Czym jest zasada otwarte-zamkni\u0119te (OCP)? - Cybermediana","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage"},"image":{"@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg","datePublished":"2022-01-26T01:28:58+00:00","dateModified":"2025-02-17T03:44:10+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#primaryimage","url":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg","contentUrl":"https:\/\/www.cybermedian.com\/pl\/wp-content\/uploads\/sites\/16\/2022\/01\/open-closed-principle.jpg","width":900,"height":600,"caption":"Open-Close Principle"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/pl\/what-is-the-open-closed-principle-ocp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Czym jest zasada otwarte-zamkni\u0119te (OCP)?"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/pl\/#website","url":"https:\/\/www.cybermedian.com\/pl\/","name":"Cybermediana","description":"Uczenie si\u0119 jednej nowej rzeczy ka\u017cdego dnia","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a","name":"vpadmin","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3914788226b9b0af628488720662164f4641c6125d0bd38d90ae34f01c8c4ea3?s=96&d=mm&r=g","caption":"vpadmin"},"sameAs":["https:\/\/x.com\/vpadmin"],"url":"https:\/\/www.cybermedian.com\/pl\/author\/vpadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/comments?post=530"}],"version-history":[{"count":4,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/530\/revisions"}],"predecessor-version":[{"id":10026,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/530\/revisions\/10026"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/media\/1383"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/media?parent=530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/categories?post=530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/tags?post=530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}