{"id":530,"date":"2022-01-26T01:28:58","date_gmt":"2022-01-26T01:28:58","guid":{"rendered":"https:\/\/www.cybermedian.com\/pt\/?p=530"},"modified":"2022-03-31T13:35:53","modified_gmt":"2022-03-31T05:35:53","slug":"what-is-the-open-closed-principle-ocp","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/","title":{"rendered":"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)?"},"content":{"rendered":"<section class=\"section section--body section--last\">\n<div class=\"section-content\">\n<div class=\"section-inner sectionLayout--insetColumn\">\n<section class=\"section section--body section--first\">\n<div class=\"section-content\">\n<div class=\"section-inner sectionLayout--insetColumn\">\n<p id=\"05f0\" class=\"graf graf--p graf-after--h3\">O\u00a0\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/en.wikipedia.org\/wiki\/Open%E2%80%93closed_principle#:~:text=In%20object%2Doriented%20programming%2C%20the,without%20modifying%20its%20source%20code.\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/en.wikipedia.org\/wiki\/Open%E2%80%93closed_principle#:~:text=In%20object%2Doriented%20programming%2C%20the,without%20modifying%20its%20source%20code.\">Princ\u00edpio Aberto\/Fechado<\/a>\u00a0\u00a0\u00e9 o princ\u00edpio de design mais b\u00e1sico no mundo do desenvolvimento de software.\u00a0Ele nos orienta como construir um sistema est\u00e1vel e flex\u00edvel.<\/p>\n<h4 id=\"ef13\" class=\"graf graf--h4 graf-after--p\"><span id=\"Definition\"><strong class=\"markup--strong markup--h4-strong\">Defini\u00e7\u00e3o:<\/strong><\/span><\/h4>\n<blockquote id=\"bc88\" class=\"graf graf--blockquote graf-after--h4\"><p>Uma entidade de software como classe, m\u00f3dulo e fun\u00e7\u00e3o deve ser aberta para extens\u00e3o e fechada para modifica\u00e7\u00e3o.<\/p><\/blockquote>\n<p id=\"8516\" class=\"graf graf--p graf-after--blockquote\">O significado do princ\u00edpio de abertura e fechamento \u00e9 que uma entidade de software deve ser expandida para conseguir mudan\u00e7as, ao inv\u00e9s de modificar o c\u00f3digo existente para conseguir mudan\u00e7as.<\/p>\n<p id=\"aad3\" class=\"graf graf--p graf-after--p\">O princ\u00edpio de abertura e fechamento \u00e9 um princ\u00edpio que restringe o desenvolvimento e design atuais para as coisas futuras da entidade de software.<\/p>\n<p id=\"3cf8\" class=\"graf graf--p graf-after--p\">Nota: O princ\u00edpio de abertura e fechamento \u00e9 aberto para extens\u00e3o e fechado para modifica\u00e7\u00e3o.\u00a0Isso n\u00e3o significa que nenhuma modifica\u00e7\u00e3o ser\u00e1 feita.\u00a0Mudan\u00e7as em m\u00f3dulos de baixo n\u00edvel devem ser acopladas a m\u00f3dulos de alto n\u00edvel, caso contr\u00e1rio ser\u00e1 um fragmento de c\u00f3digo isolado e sem sentido.<\/p>\n<p id=\"adad\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">A import\u00e2ncia do princ\u00edpio de abertura e fechamento:<\/strong><\/p>\n<ul class=\"postList\">\n<li id=\"4231\" class=\"graf graf--li graf-after--p\">O impacto dos princ\u00edpios de abertura e fechamento nos testes<\/li>\n<\/ul>\n<p id=\"dd2a\" class=\"graf graf--p graf-after--li\">O princ\u00edpio de abertura e fechamento \u00e9 manter o c\u00f3digo de teste original ainda funcionando normalmente, s\u00f3 precisamos testar o c\u00f3digo estendido.<\/p>\n<ul class=\"postList\">\n<li id=\"e807\" class=\"graf graf--li graf-after--p\">O princ\u00edpio de abertura e fechamento pode melhorar a reutiliza\u00e7\u00e3o<\/li>\n<\/ul>\n<p id=\"1236\" class=\"graf graf--p graf-after--li\">No\u00a0\u00a0<a class=\"markup--anchor markup--p-anchor\" 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.\" target=\"_blank\" rel=\"noopener\" 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.\">design orientado a objetos<\/a>\u00a0, toda a l\u00f3gica \u00e9 combinada a partir da l\u00f3gica at\u00f4mica, em vez de implementar uma l\u00f3gica de neg\u00f3cios em uma classe de forma independente.\u00a0S\u00f3 assim o c\u00f3digo pode ser reutilizado.\u00a0Quanto menor a granularidade, maior a possibilidade de ser reutilizado.<\/p>\n<ul class=\"postList\">\n<li id=\"4999\" class=\"graf graf--li graf-after--p\">Princ\u00edpio aberto e fechado pode melhorar a manuten\u00e7\u00e3o<\/li>\n<li id=\"0c21\" class=\"graf graf--li graf-after--li\">Requisitos de desenvolvimento orientado a objetos<\/li>\n<\/ul>\n<p id=\"6c46\" class=\"graf graf--p graf-after--li\"><strong class=\"markup--strong markup--p-strong\">Como usar o princ\u00edpio de abertura e fechamento:<\/strong><\/p>\n<p id=\"3568\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Primeiro<\/strong>\u00a0, restrinja a extens\u00e3o atrav\u00e9s da interface ou classe abstrata, limite a extens\u00e3o do limite e n\u00e3o permita m\u00e9todos p\u00fablicos que n\u00e3o existam na interface ou classe abstrata;<\/p>\n<p id=\"8d58\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Segundo<\/strong>\u00a0, tente usar interfaces ou classes abstratas para tipos de par\u00e2metros e objetos de refer\u00eancia em vez de classes de implementa\u00e7\u00e3o;<\/p>\n<p id=\"c031\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Terceiro<\/strong>\u00a0, a camada de abstra\u00e7\u00e3o deve ser mantida o mais est\u00e1vel poss\u00edvel, uma vez confirmada, nenhuma modifica\u00e7\u00e3o \u00e9 permitida.<\/p>\n<p id=\"22c7\" class=\"graf graf--p graf-after--p\">O encapsulamento de mudan\u00e7as tem dois significados:<\/p>\n<p id=\"cda0\" class=\"graf graf--p graf-after--p\">Primeiro, encapsule as mesmas mudan\u00e7as em uma interface ou classe abstrata;<\/p>\n<p id=\"8a51\" class=\"graf graf--p graf-after--p graf--trailing\">Segundo, encapsular diferentes mudan\u00e7as em diferentes interfaces ou classes abstratas.\u00a0Duas altera\u00e7\u00f5es diferentes n\u00e3o devem aparecer na mesma interface ou classe abstrata.<\/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 id=\"69e6\" class=\"graf graf--h4 graf--leading\"><span id=\"Examples\">Exemplos<\/span><\/h4>\n<p id=\"56bf\" class=\"graf graf--p graf-after--h4\">Um exemplo, abrir e fechar portas manualmente.<\/p>\n<figure id=\"d3f2\" class=\"graf graf--figure graf-after--p\"><img decoding=\"async\" class=\"graf-image\" src=\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/0wlXaJtn3Bexx9ev7.png\" data-image-id=\"0*wlXaJtn3Bexx9ev7.png\" data-width=\"453\" data-height=\"148\" \/><\/figure>\n<p id=\"c2c2\" class=\"graf graf--p graf-after--figure\">Caso haja uma nova demanda, \u00e9 necess\u00e1rio aumentar a fun\u00e7\u00e3o de abertura e fechamento manual da gaveta.\u00a0Para o c\u00f3digo, voc\u00ea precisa adicionar uma classe Drawer e modificar a classe Hand ao mesmo tempo.<\/p>\n<figure id=\"1d14\" class=\"graf graf--figure graf-after--p\"><img decoding=\"async\" class=\"graf-image\" src=\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/1QXaFJLucsecnatWUuuuH6Q.png\" data-image-id=\"1*QXaFJLucsecnatWUuuuH6Q.png\" data-width=\"781\" data-height=\"500\" data-is-featured=\"true\" \/><\/figure>\n<p id=\"ce83\" class=\"graf graf--p graf-after--figure\">Seguindo o exemplo do princ\u00edpio de abertura e fechamento OCP, abrir e fechar a porta manualmente depende de uma interface, e a classe de implementa\u00e7\u00e3o espec\u00edfica implementa essa interface.<\/p>\n<figure id=\"28a1\" class=\"graf graf--figure graf-after--p\"><img decoding=\"async\" class=\"graf-image\" src=\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/1NVWYY0ZYvgMJbnENhw1QKw.png\" data-image-id=\"1*NVWYY0ZYvgMJbnENhw1QKw.png\" data-width=\"800\" data-height=\"461\" \/><\/figure>\n<p id=\"2372\" class=\"graf graf--p graf-after--figure\">Quando \u00e9 necess\u00e1rio aumentar o n\u00famero de m\u00e3os para abrir e fechar a geladeira, a classe refrigerador implementa essa interface sem modificar a classe e a interface Hand originais.<\/p>\n<figure id=\"6688\" class=\"graf graf--figure graf-after--p\"><img decoding=\"async\" class=\"graf-image\" src=\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/1iR6WQOaVLjFUMy1056vL-w.png\" data-image-id=\"1*iR6WQOaVLjFUMy1056vL-w.png\" data-width=\"946\" data-height=\"464\" \/><\/figure>\n<h4 id=\"246b\" class=\"graf graf--h4 graf-after--figure\"><span id=\"More_Object_Oriented_Resources\">Mais recursos orientados a objetos<\/span><\/h4>\n<ul class=\"postList\">\n<li id=\"3002\" class=\"graf graf--li graf-after--h4\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/reflectoring.io\/open-closed-principle-explained\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/reflectoring.io\/open-closed-principle-explained\/\">O Princ\u00edpio Aberto-Fechado Explicado<\/a><\/li>\n<li id=\"be77\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/uml-class-diagram-tutorial\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/uml-class-diagram-tutorial\/\">Tutorial de diagrama de classe UML<\/a><\/li>\n<li id=\"d80e\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/what-is-class-diagram\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/what-is-class-diagram\/\">O que \u00e9 Diagrama de Classes?<\/a><\/li>\n<li id=\"f4cf\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/online.visual-paradigm.com\/diagrams\/solutions\/free-class-diagram-tool\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/online.visual-paradigm.com\/diagrams\/solutions\/free-class-diagram-tool\/\">Ferramenta Gratuita de Diagrama de Classe<\/a><\/li>\n<li id=\"8e66\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"http:\/\/online%20class%20diagram%20software\/\" target=\"_blank\" rel=\"noopener\" data-href=\"http:\/\/Online Class Diagram Software\">Software de diagrama de classe online<\/a><\/li>\n<li id=\"1b39\" class=\"graf graf--li graf-after--li graf--trailing\"><a class=\"markup--anchor markup--li-anchor\" 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\" target=\"_blank\" rel=\"noopener\" 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\">O que \u00e9 a Linguagem de Modelagem Unificada (UML)?<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>O princ\u00edpio aberto \/ fechado \u00e9 o princ\u00edpio mais b\u00e1sico de design no mundo do desenvolvimento de software. Ele nos orienta como construir um sistema est\u00e1vel e flex\u00edvel. Uma entidade de software como classe, m\u00f3dulo e fun\u00e7\u00e3o deve ser aberta para extens\u00e3o e fechada para modifica\u00e7\u00e3o.<\/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>O que \u00e9 o princ\u00edpio aberto-fechado (OCP)? - Cibermediano<\/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\/pt\/what-is-the-open-closed-principle-ocp\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)? - Cibermediano\" \/>\n<meta property=\"og:description\" content=\"O princ\u00edpio aberto \/ fechado \u00e9 o princ\u00edpio mais b\u00e1sico de design no mundo do desenvolvimento de software. Ele nos orienta como construir um sistema est\u00e1vel e flex\u00edvel. Uma entidade de software como classe, m\u00f3dulo e fun\u00e7\u00e3o deve ser aberta para extens\u00e3o e fechada para modifica\u00e7\u00e3o.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/\" \/>\n<meta property=\"og:site_name\" content=\"Cibermediano\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-26T01:28:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-31T05:35:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/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=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"vpadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/\"},\"author\":{\"name\":\"vpadmin\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\"},\"headline\":\"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)?\",\"datePublished\":\"2022-01-26T01:28:58+00:00\",\"dateModified\":\"2022-03-31T05:35:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/\"},\"wordCount\":587,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg\",\"keywords\":[\"cn-done\",\"es-done\",\"ja-done\",\"tw-done\"],\"articleSection\":[\"Agile Project Management\",\"Software Engineering\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/\",\"name\":\"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)? - Cibermediano\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg\",\"datePublished\":\"2022-01-26T01:28:58+00:00\",\"dateModified\":\"2022-03-31T05:35:53+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg\",\"contentUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg\",\"width\":900,\"height\":600,\"caption\":\"Open-Close Principle\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/\",\"name\":\"Cibermediano\",\"description\":\"Aprendendo uma coisa nova todos os dias\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a\",\"name\":\"vpadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/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\/pt\/author\/vpadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)? - Cibermediano","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\/pt\/what-is-the-open-closed-principle-ocp\/","og_locale":"pt_PT","og_type":"article","og_title":"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)? - Cibermediano","og_description":"O princ\u00edpio aberto \/ fechado \u00e9 o princ\u00edpio mais b\u00e1sico de design no mundo do desenvolvimento de software. Ele nos orienta como construir um sistema est\u00e1vel e flex\u00edvel. Uma entidade de software como classe, m\u00f3dulo e fun\u00e7\u00e3o deve ser aberta para extens\u00e3o e fechada para modifica\u00e7\u00e3o.","og_url":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/","og_site_name":"Cibermediano","article_published_time":"2022-01-26T01:28:58+00:00","article_modified_time":"2022-03-31T05:35:53+00:00","og_image":[{"width":900,"height":600,"url":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg","type":"image\/jpeg"}],"author":"vpadmin","twitter_card":"summary_large_image","twitter_creator":"@vpadmin","twitter_misc":{"Escrito por":"vpadmin","Tempo estimado de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/"},"author":{"name":"vpadmin","@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a"},"headline":"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)?","datePublished":"2022-01-26T01:28:58+00:00","dateModified":"2022-03-31T05:35:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/"},"wordCount":587,"commentCount":0,"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg","keywords":["cn-done","es-done","ja-done","tw-done"],"articleSection":["Agile Project Management","Software Engineering"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/","url":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/","name":"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)? - Cibermediano","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage"},"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg","datePublished":"2022-01-26T01:28:58+00:00","dateModified":"2022-03-31T05:35:53+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#primaryimage","url":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg","contentUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2022\/01\/open-closed-principle.jpg","width":900,"height":600,"caption":"Open-Close Principle"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/pt\/what-is-the-open-closed-principle-ocp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/pt\/"},{"@type":"ListItem","position":2,"name":"O que \u00e9 o princ\u00edpio aberto-fechado (OCP)?"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/pt\/#website","url":"https:\/\/www.cybermedian.com\/pt\/","name":"Cibermediano","description":"Aprendendo uma coisa nova todos os dias","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/0122cdf8fc3b73482dd8a30c8500f75a","name":"vpadmin","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cybermedian.com\/pt\/#\/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\/pt\/author\/vpadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts\/530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/comments?post=530"}],"version-history":[{"count":6,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts\/530\/revisions"}],"predecessor-version":[{"id":9953,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts\/530\/revisions\/9953"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/media\/1383"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/media?parent=530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/categories?post=530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/tags?post=530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}