{"id":895,"date":"2020-05-12T13:50:54","date_gmt":"2020-05-12T16:50:54","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=895"},"modified":"2020-05-12T13:50:56","modified_gmt":"2020-05-12T16:50:56","slug":"modularidade-do-java-3","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/","title":{"rendered":"Modularidade do Java #3"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#Definicao_de_Modulo\" >Defini\u00e7\u00e3o de M\u00f3dulo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#Importacao_e_Exportacao_de_Modulos\" >Importa\u00e7\u00e3o e Exporta\u00e7\u00e3o de M\u00f3dulos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#Como_Deve_ser_um_Modulo\" >Como Deve ser um M\u00f3dulo<\/a><\/li><\/ul><\/nav><\/div>\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Definicao_de_Modulo\"><\/span>Defini\u00e7\u00e3o de M\u00f3dulo<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Um software \u00e9 um m\u00f3dulo independente e um componente de software implant\u00e1vel de um grande sistema que interage com outros m\u00f3dulos que est\u00e3o ocultos dentro da implementa\u00e7\u00e3o. H\u00e1 uma interface que permite a intercomunica\u00e7\u00e3o modular.<\/p>\n\n\n\n<p>A interface define que componentes que s\u00e3o fornecidos externamente utilize componentes requeridos para uso interno. Um m\u00f3dulo determina um limite para uma espec\u00edfica parte do c\u00f3digo fonte que est\u00e1 dentro do m\u00f3dulo. Isso tamb\u00e9m fornece flexibilidade e aumento de reutiliza\u00e7\u00e3o do sistema de software.<\/p>\n\n\n\n<p>M\u00f3dulos podem ser descobertos a partir da compila\u00e7\u00e3o. Um m\u00f3dulo pode expor alguma das suas classes para o exterior ou encapsular dentro dele e evitar acesso externo.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"521\" height=\"316\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image.png\" alt=\"\" class=\"wp-image-896\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image.png 521w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image-300x182.png 300w\" sizes=\"auto, (max-width: 521px) 100vw, 521px\" \/><\/figure><\/div>\n\n\n\n<p>Um m\u00f3dulo pode ser visto como uma caixa preta. Ele tem um input e um output e executa uma fun\u00e7\u00e3o espec\u00edfica. Pegando o input, aplica algumas l\u00f3gicas de neg\u00f3cio, e retorna um output.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"401\" height=\"153\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image-1.png\" alt=\"\" class=\"wp-image-897\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image-1.png 401w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image-1-300x114.png 300w\" sizes=\"auto, (max-width: 401px) 100vw, 401px\" \/><\/figure><\/div>\n\n\n\n<p>Um m\u00f3dulo \u00e9 reutiliz\u00e1vel, test\u00e1vel, manej\u00e1vel e implant\u00e1vel. M\u00faltiplos m\u00f3dulos podem ser combinados para formar um novo m\u00f3dulo. Programa\u00e7\u00e3o modular \u00e9 a chave para reduzir o n\u00famero de bugs em um sistema complexo de software para o m\u00ednimo.<\/p>\n\n\n\n<p>Dividindo a aplica\u00e7\u00e3o dentro de pequenos m\u00f3dulos, cada m\u00f3dulo ter\u00e1 menos defeitos porque \u00e9 uma funcionalidade que n\u00e3o \u00e9 complexa. Montando esse m\u00f3dulo menos propenso a erro resulta em uma aplica\u00e7\u00e3o com menos erros.<\/p>\n\n\n\n<p>Uma das chaves da modularidade \u00e9 quebrar a aplica\u00e7\u00e3o em pequenos peda\u00e7os, pequenos m\u00f3dulos s\u00e3o f\u00e1ceis de implementar porque tem pouca complexidade. Os m\u00f3dulos podem ser interconectados facilmente na compila\u00e7\u00e3o ou em tempo de execu\u00e7\u00e3o. Cada m\u00f3dulo precisa ser vinculado ao n\u00facleo da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"354\" height=\"439\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image-2.png\" alt=\"\" class=\"wp-image-898\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image-2.png 354w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2020\/05\/image-2-242x300.png 242w\" sizes=\"auto, (max-width: 354px) 100vw, 354px\" \/><\/figure><\/div>\n\n\n\n<p>Um m\u00f3dulo geralmente consiste em duas partes: o m\u00f3dulo de interface e o m\u00f3dulo de implementa\u00e7\u00e3o. O m\u00f3dulo interface definem os objetos que exportam e importam. Os objetos exportados s\u00e3o objetos adequados para serem expostos pelo m\u00f3dulo.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube aligncenter wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video_embed clearfix\"><div class=\"video_embed clearfix\"><iframe loading=\"lazy\" title=\"Sistema de m\u00f3dulos Java 9 (Jigsaw)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/OuZIhnj7BpM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Importacao_e_Exportacao_de_Modulos\"><\/span>Importa\u00e7\u00e3o e Exporta\u00e7\u00e3o de M\u00f3dulos<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Os objetos importados s\u00e3o objetos que o m\u00f3dulo requer de fora para o uso interno. O m\u00f3dulo de implementa\u00e7\u00e3o define as vari\u00e1veis, constantes e implementa\u00e7\u00e3o de m\u00e9todos.<\/p>\n\n\n\n<p>Utilizando um m\u00f3dulo como uma vari\u00e1vel, inst\u00e2ncia de vari\u00e1vel, constante ou fun\u00e7\u00f5es n\u00e3o permitidas. Um m\u00f3dulo pode consistir de objetos que podem ser apenas utilizados internamente e objetos podem ser exportados para outros m\u00f3dulos para uso externo.<\/p>\n\n\n\n<p>Abstra\u00e7\u00e3o de dados, o principal conceito de modularidade, \u00e9 armazenado como uma informa\u00e7\u00e3o oculta para n\u00e3o ser acess\u00edvel de fora, a n\u00e3o ser que seja especificado por uma exporta\u00e7\u00e3o. Por padr\u00e3o, a estrutura interna e implementa\u00e7\u00e3o interna de um m\u00f3dulo s\u00e3o ocultas de outros m\u00f3dulos.<\/p>\n\n\n\n<p>A mudan\u00e7a de execu\u00e7\u00e3o de um m\u00f3dulo espec\u00edfico n\u00e3o deveria ter um impacto em outros m\u00f3dulos. Adicionalmente, seria poss\u00edvel adicionar um novo m\u00f3dulo para o sistema sem quebrar nada no sistema.<\/p>\n\n\n\n<p>Porque apenas a interface de um m\u00f3dulo \u00e9 vis\u00edvel para fora do m\u00f3dulo, isso faz poss\u00edvel para o desenvolvedor mudar a implementa\u00e7\u00e3o interna do m\u00f3dulo sem quebrar a aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p>A estrutura de um software modular \u00e9 basicamente definida por conex\u00f5es e correla\u00e7\u00f5es entre m\u00f3dulos. Algumas caracter\u00edsticas de um m\u00f3dulo incluem:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Um m\u00f3dulo precisa definir interfaces para comunica\u00e7\u00e3o com outros m\u00f3dulos.<\/li><li>Um m\u00f3dulo define separa\u00e7\u00f5es entre o m\u00f3dulo de interface e o m\u00f3dulo de implementa\u00e7\u00e3o.<\/li><li>Um m\u00f3dulo deveria ter um grupo de propriedades que cont\u00e9m informa\u00e7\u00f5es.<\/li><li>Dois ou mais m\u00f3dulos podem ser juntados.<\/li><li>Um m\u00f3dulo deveria ser uma responsabilidade bem definida. Cada fun\u00e7\u00e3o deveria implementar apenas um m\u00f3dulo.<\/li><li>Um m\u00f3dulo precisa ser testado independentemente de outros m\u00f3dulos.<\/li><li>Um erro em um m\u00f3dulo n\u00e3o deveria propagar para os outros m\u00f3dulos.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-embed-youtube aligncenter wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video_embed clearfix\"><div class=\"video_embed clearfix\"><iframe loading=\"lazy\" title=\"M\u00f3dulos em Java 9 - Parte 1 \/ 3\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/B31EmzawqgM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div><\/div>\n<\/div><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_Deve_ser_um_Modulo\"><\/span>Como Deve ser um M\u00f3dulo<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Vamos ver um pequeno exemplo. Se n\u00f3s temos dois m\u00f3dulos Jigsaw chamados A1 e A2, e u pacote no m\u00f3dulo A2 chamado P2, quero acessar no m\u00f3dulo A1, ent\u00e3o algumas condi\u00e7\u00f5es devem ser seguidas:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>O m\u00f3dulo A1 deveria depender do m\u00f3dulo A2; m\u00f3dulo A1 deveria ter uma especifica\u00e7\u00e3o declarando que \u201cnecessita\u201d do m\u00f3dulo A2.<\/li><li>O m\u00f3dulo A2 deveria exportar o pacote P2 para ser acess\u00edvel para outros m\u00f3dulos que depende dele. No nosso caso, na declara\u00e7\u00e3o do m\u00f3dulo A2 n\u00f3s precisamos especificar um \u201cexportar\u201d para o pacote P2.<\/li><\/ul>\n\n\n\n<p>O pacote P2 ser\u00e1 acess\u00edvel ao m\u00f3dulo A1 se ambas as condi\u00e7\u00f5es estiverem corretas na compila\u00e7\u00e3o. Se nenhuma ou apenas uma condi\u00e7\u00e3o mencionada acima for encontrada, ent\u00e3o o P2 n\u00e3o ser\u00e1 acess\u00edvel ao m\u00f3dulo A1.<\/p>\n\n\n\n<p>Essa parte de conceito de configura\u00e7\u00e3o confi\u00e1vel que foi introduzida no JDK9. Olhe os conceitos que constroem a funda\u00e7\u00e3o de uma aplica\u00e7\u00e3o modular:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Forte encapsula\u00e7\u00e3o<\/li><li>Interfaces expl\u00edcitas<\/li><li>Alta coes\u00e3o dos m\u00f3dulos<\/li><li>Baixa acopla\u00e7\u00e3o de m\u00f3dulos<\/li><\/ul>\n\n\n\n<p class=\"has-text-align-center\"><a rel=\"noreferrer noopener\" href=\"https:\/\/deviniciative.wordpress.com\/2019\/10\/01\/entendendo-o-sistema-de-modulos-do-java-parte-2\/\" target=\"_blank\">Entendendo o Sistema de M\u00f3dulos do Java \u2013 Parte\u00a02<\/a><\/p>\n\n\n\n<p>Fonte: <strong>Java 9 Modularity Revealed: Project Jigsaw and Scalable Java Applications (English Edition)\u00a0<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Defini\u00e7\u00e3o de M\u00f3dulo Um software \u00e9 um m\u00f3dulo independente e um componente de software implant\u00e1vel de um grande sistema que interage com outros m\u00f3dulos que est\u00e3o ocultos dentro da implementa\u00e7\u00e3o. H\u00e1 uma interface que permite a intercomunica\u00e7\u00e3o modular. A interface define que componentes que s\u00e3o fornecidos externamente utilize componentes requeridos para uso interno. Um m\u00f3dulo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":337,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-895","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.5 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Modularidade do Java #3 - Viciados em Aprender<\/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:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modularidade do Java #3\" \/>\n<meta property=\"og:description\" content=\"Defini\u00e7\u00e3o de M\u00f3dulo Um software \u00e9 um m\u00f3dulo independente e um componente de software implant\u00e1vel de um grande sistema que interage com outros m\u00f3dulos que est\u00e3o ocultos dentro da implementa\u00e7\u00e3o. H\u00e1 uma interface que permite a intercomunica\u00e7\u00e3o modular. A interface define que componentes que s\u00e3o fornecidos externamente utilize componentes requeridos para uso interno. Um m\u00f3dulo [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Viciados em Aprender\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-12T16:50:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-12T16:50:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/download.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"298\" \/>\n\t<meta property=\"og:image:height\" content=\"169\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"blackzig\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"blackzig\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/\"},\"author\":{\"name\":\"blackzig\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"headline\":\"Modularidade do Java #3\",\"datePublished\":\"2020-05-12T16:50:54+00:00\",\"dateModified\":\"2020-05-12T16:50:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/\"},\"wordCount\":926,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/download.jpg\",\"articleSection\":[\"Java\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/\",\"name\":\"Modularidade do Java #3 - Viciados em Aprender\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/download.jpg\",\"datePublished\":\"2020-05-12T16:50:54+00:00\",\"dateModified\":\"2020-05-12T16:50:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/download.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/download.jpg\",\"width\":298,\"height\":169,\"caption\":\"Modularidade do Java\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/modularidade-do-java-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modularidade do Java #3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\",\"name\":\"Viciados em Aprender\",\"description\":\"Queremos aprender tudo o que for poss\u00edvel nesta vida.\",\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\",\"name\":\"blackzig\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"blackzig\"},\"logo\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.micheladrianomedeiros.com.br\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Modularidade do Java #3 - Viciados em Aprender","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:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/","og_locale":"pt_PT","og_type":"article","og_title":"Modularidade do Java #3","og_description":"Defini\u00e7\u00e3o de M\u00f3dulo Um software \u00e9 um m\u00f3dulo independente e um componente de software implant\u00e1vel de um grande sistema que interage com outros m\u00f3dulos que est\u00e3o ocultos dentro da implementa\u00e7\u00e3o. H\u00e1 uma interface que permite a intercomunica\u00e7\u00e3o modular. A interface define que componentes que s\u00e3o fornecidos externamente utilize componentes requeridos para uso interno. Um m\u00f3dulo [&hellip;]","og_url":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/","og_site_name":"Viciados em Aprender","article_published_time":"2020-05-12T16:50:54+00:00","article_modified_time":"2020-05-12T16:50:56+00:00","og_image":[{"width":298,"height":169,"url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/download.jpg","type":"image\/jpeg"}],"author":"blackzig","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"blackzig","Tempo estimado de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#article","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/"},"author":{"name":"blackzig","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"headline":"Modularidade do Java #3","datePublished":"2020-05-12T16:50:54+00:00","dateModified":"2020-05-12T16:50:56+00:00","mainEntityOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/"},"wordCount":926,"commentCount":0,"publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/download.jpg","articleSection":["Java"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/","name":"Modularidade do Java #3 - Viciados em Aprender","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#primaryimage"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/download.jpg","datePublished":"2020-05-12T16:50:54+00:00","dateModified":"2020-05-12T16:50:56+00:00","breadcrumb":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#primaryimage","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/download.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/download.jpg","width":298,"height":169,"caption":"Modularidade do Java"},{"@type":"BreadcrumbList","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/modularidade-do-java-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/micheladrianomedeiros.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Modularidade do Java #3"}]},{"@type":"WebSite","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/","name":"Viciados em Aprender","description":"Queremos aprender tudo o que for poss\u00edvel nesta vida.","publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/micheladrianomedeiros.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":["Person","Organization"],"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e","name":"blackzig","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","width":1920,"height":1080,"caption":"blackzig"},"logo":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg"},"sameAs":["http:\/\/www.micheladrianomedeiros.com.br\/"]}]}},"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=895"}],"version-history":[{"count":1,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/895\/revisions"}],"predecessor-version":[{"id":899,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/895\/revisions\/899"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/337"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}