{"id":1152582,"date":"2023-02-02T08:00:00","date_gmt":"2023-02-02T11:00:00","guid":{"rendered":"https:\/\/www.estrategiaconcursos.com.br\/blog\/?p=1152582"},"modified":"2023-06-23T13:38:10","modified_gmt":"2023-06-23T16:38:10","slug":"engenharia-software-padroes-projeto","status":"publish","type":"post","link":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/","title":{"rendered":"Engenharia de Software em Destaque: Padr\u00f5es de Projeto"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-red-color has-text-color\" id=\"h-introducao\">Introdu\u00e7\u00e3o<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Para retomar a nossa s\u00e9rie especial de temas sobre Engenharia de <em>Software<\/em>, uma das disciplinas de Tecnologia da Informa\u00e7\u00e3o mais cobradas em provas de concursos, escolhemos falar hoje de padr\u00f5es de projeto.<\/p>\n\n\n\n<p>Antes de mais nada, padr\u00f5es de projeto \u00e9 um t\u00f3pico que confunde muito os candidatos. Por ser um assunto t\u00e9cnico, ele pode ser aprofundado com tranquilidade pelas bancas para derrubar os candidatos (calma, pois nem sempre isso ocorre).<\/p>\n\n\n\n<p>O nosso desafio de hoje \u00e9 simplific\u00e1-lo para facilitar o seu aprendizado, mesmo que voc\u00ea n\u00e3o seja da \u00e1rea de TI. Voc\u00ea vai perceber que padr\u00f5es de projeto s\u00e3o um pouco \u201cdecoreba\u201d, mas vai conseguir entender o porqu\u00ea das coisas. Veja como as se\u00e7\u00f5es est\u00e3o organizadas:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Objetivo<\/strong><\/li>\n\n\n\n<li><strong>Padr\u00f5es de Projeto Criacionais<\/strong><\/li>\n\n\n\n<li><strong>Padr\u00f5es de Projeto Estruturais<\/strong><\/li>\n\n\n\n<li><strong>Padr\u00f5es de Projeto Comportamentais<\/strong><\/li>\n\n\n\n<li><strong>Mapa Mental<\/strong><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>A publica\u00e7\u00e3o destina-se a todos os concurseiros de alto n\u00edvel de TI e da \u00e1rea Fiscal, de acordo com o hist\u00f3rico que temos das bancas. Contudo, sempre recomendamos que voc\u00ea confirme a cobran\u00e7a no conte\u00fado program\u00e1tico do seu edital, a fim de evitar surpresas ou perder tempo desnecessariamente.<\/p>\n\n\n\n<p>Para compreender padr\u00f5es de projeto, \u00e9 recomend\u00e1vel que voc\u00ea possua algumas no\u00e7\u00f5es de orienta\u00e7\u00e3o a objetos. Caso voc\u00ea ainda n\u00e3o tenha visto esse assunto, sugerimos que voc\u00ea estude o material do Estrat\u00e9gia Concursos e retorne a este artigo quando estiver preparado.<\/p>\n\n\n\n<p>A leitura de hoje ser\u00e1 bem objetiva, de modo que seja poss\u00edvel concluir de uma s\u00f3 vez. Contudo, caso n\u00e3o disponha de tempo suficiente, voc\u00ea pode dividi-la em 2 partes, sem preju\u00edzo nenhum. Podemos come\u00e7ar ent\u00e3o?<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong><mark style=\"background-color:#fcb900\" class=\"has-inline-color\">Tempo de leitura aproximada: 15 a 20 minutos<\/mark><\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-red-color has-text-color\" id=\"h-objetivo\">Objetivo<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Primeiramente, os padr\u00f5es de projeto s\u00e3o um conjunto de solu\u00e7\u00f5es conhecidas para problemas comuns no desenvolvimento de <em>software<\/em>. Em outras palavras, voc\u00ea uniformiza uma maneira para resolver determinado problema (sempre que surgir o problema X, vou fazer Y).<\/p>\n\n\n\n<p>Observe que padr\u00f5es de projeto est\u00e3o intimamente ligados ao conceito de reaproveitamento, cada vez mais necess\u00e1rio em grandes projetos de sistemas. Por conseguinte, a manuten\u00e7\u00e3o da solu\u00e7\u00e3o tende a ser mais simples, reduzindo os custos da demanda.<\/p>\n\n\n\n<p>Existem 2 conjuntos de padr\u00f5es de projeto: Gang of Four (GoF) e General Responsibility Assignment Software Patterns (GRASP). No mundo dos concursos, o conjunto mais cobrado (diga-se de passagem, disparado) \u00e9 o GoF. Por conseguinte, ele ser\u00e1 o foco do nosso artigo.<\/p>\n\n\n\n<p>O GoF divide os padr\u00f5es de projeto em 3 grupos: criacionais, estruturais e comportamentais. Se voc\u00ea estiver vendo esse assunto pela primeira vez, ir\u00e1 reparar que todos eles s\u00e3o em ingl\u00eas. Nesse caso, conhecer o idioma pode ajudar na memoriza\u00e7\u00e3o.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-red-color has-text-color\" id=\"h-padroes-de-projeto-criacionais\">Padr\u00f5es de Projeto Criacionais<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Estes padr\u00f5es auxiliam a cria\u00e7\u00e3o de objetos. S\u00e3o eles: <em>abstract factory<\/em>, <em>builder<\/em>, <em>factory method<\/em>, <em>prototype<\/em> e <em>singleton<\/em>. Vamos falar um pouco sobre cada um.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-abstract-factory-e-builder\">Padr\u00f5es de Projeto <em>Abstract Factory<\/em> e <em>Builder<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\"><strong><em>Abstract Factory<\/em>: <\/strong>fornece uma interface para cria\u00e7\u00e3o de fam\u00edlias de objetos relacionados ou dependentes, sem especificar as suas classes concretas.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Suponha que voc\u00ea tenha uma interface para definir o professor, que seria uma esp\u00e9cie de generaliza\u00e7\u00e3o, e tenha inten\u00e7\u00e3o de criar objetos associados a ele, conforme a atua\u00e7\u00e3o dos docentes (professor de artigo, professor de videoaula, professor de pdf etc.). As subclasses teriam os mesmos m\u00e9todos da classe que representa o professor, com implementa\u00e7\u00f5es diferentes.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\"><strong><em>Builder<\/em><\/strong><strong>: <\/strong>separa um objeto complexo da sua representa\u00e7\u00e3o, de forma que o mesmo processo de constru\u00e7\u00e3o possa criar diferentes representa\u00e7\u00f5es.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>O que \u00e9 complexo para voc\u00ea? Elaborar uma trilha estrat\u00e9gica \u00e9 complexo? Provavelmente sim, pois envolve muitas a\u00e7\u00f5es. Veja que neste caso poderia aplicar o padr\u00e3o <em>builder<\/em> para simplificar a constru\u00e7\u00e3o.<\/p>\n\n\n\n<p>Na pr\u00e1tica, a trilha seria dividida em v\u00e1rias classes, cada uma delas respons\u00e1vel por implementar um peda\u00e7o da trilha. Pense que n\u00f3s vamos dividir para conquistar.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-factory-method-prototype-e-singleton\">Padr\u00f5es de Projeto <em>Factory Method<\/em>, <em>Prototype <\/em>e <em>Singleton<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\"><strong><em>Factory Method<\/em><\/strong>: define uma interface para criar objetos, mas permite que as subclasses decidam qual classe ir\u00e3o instanciar.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>A aula que voc\u00ea assiste no Estrat\u00e9gia pode possuir diversos formatos: v\u00eddeo, pdf, \u00e1udios etc. Quem decide o formato \u00e9 o aluno, conforme as v\u00e1rias possibilidades apresentadas.<\/p>\n\n\n\n<p>Por meio do <em>factory method<\/em>, \u00e9 poss\u00edvel representar uma classe aula e subclasses, que seriam as suas especifica\u00e7\u00f5es. A escolha do aluno determinar\u00e1 a cria\u00e7\u00e3o da inst\u00e2ncia.<\/p>\n\n\n\n<p>Veja que esse padr\u00e3o parece com o <em>abstract factory<\/em>, o que confunde bastante. Atente para as defini\u00e7\u00f5es, pois as bancas sempre fazem pegadinhas com isso.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\"><strong><em>Prototype<\/em><\/strong>: fornece um prot\u00f3tipo para a constru\u00e7\u00e3o de objetos.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Esse padr\u00e3o \u00e9 um pouco mais f\u00e1cil de entender. O <em>prototype<\/em> serve para clonar objetos. Um ambiente de teste do Estrat\u00e9gia, por exemplo, \u00e9 uma c\u00f3pia do ambiente de produ\u00e7\u00e3o real, onde os alunos estudam. Sempre que precisarmos criar r\u00e9plicas, vamos utilizar esse padr\u00e3o. &nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\"><strong><em>Singleton<\/em><\/strong>: garante que uma classe espec\u00edfica s\u00f3 possua uma \u00fanica inst\u00e2ncia, a qual \u00e9 acess\u00edvel de forma global e uniforme.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Assim como o <em>prototype<\/em>, o <em>singleton<\/em> \u00e9 bem conhecido e utilizado. Normalmente, define-se uma classe com o intuito de permitir a cria\u00e7\u00e3o de v\u00e1rios objetos. O <em>singleton<\/em> \u00e9 um padr\u00e3o para amarrar que a classe tenha apenas um \u00fanico objeto, uma \u00fanica inst\u00e2ncia.<\/p>\n\n\n\n<p>Suponha que o Estrat\u00e9gia restrinja o sistema para que os alunos n\u00e3o consigam fazer mais de um <em>login<\/em> simultaneamente. Ou seja, voc\u00ea n\u00e3o poderia estar logado no celular e no <em>desktop <\/em>para estudar o conte\u00fado. Esta seria uma aplica\u00e7\u00e3o do <em>singleton<\/em>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-red-color has-text-color\" id=\"h-padroes-de-projeto-estruturais\">Padr\u00f5es de Projeto Estruturais<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Estes padr\u00f5es buscam adapta\u00e7\u00f5es em objetos e classes, a fim de formar estruturas maiores. S\u00e3o eles: <em>adapter<\/em>, <em>bridge<\/em>, <em>composite<\/em>, <em>decorator<\/em>, <em>fa\u00e7ade<\/em>, <em>flyweight<\/em> e <em>proxy<\/em>. Vamos falar um pouco sobre cada um.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-adapter-e-bridge\">Padr\u00f5es de Projeto <em>Adapter <\/em>e <em>Bridge<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong><em>Adapter<\/em><\/strong>: converte a interface de uma classe por outra.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Voc\u00ea j\u00e1 reparou que os nossos artigos contam com um recurso de \u00e1udio, bem no in\u00edcio da publica\u00e7\u00e3o? Se n\u00e3o reparou ainda, ent\u00e3o corra l\u00e1 para conferir (mas n\u00e3o demore, pois voc\u00ea est\u00e1 estudando e n\u00f3s estamos de olho).<\/p>\n\n\n\n<p>Este recurso \u00e9 uma convers\u00e3o autom\u00e1tica do texto que est\u00e1 na publica\u00e7\u00e3o. Veja que convers\u00f5es, adapta\u00e7\u00f5es desta natureza podem ser feitas com o padr\u00e3o <em>adapter<\/em>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong><em>Bridge<\/em><\/strong>: desacopla a interface de sua implementa\u00e7\u00e3o, ocultando detalhes.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Este padr\u00e3o est\u00e1 intimamente ligado a uma quest\u00e3o de organiza\u00e7\u00e3o. N\u00f3s vamos separar a abstra\u00e7\u00e3o e a implementa\u00e7\u00e3o em classes diferentes. Imagine que a aula seja a sua abstra\u00e7\u00e3o.<\/p>\n\n\n\n<p>\u00c9 poss\u00edvel assisti-la de v\u00e1rias maneiras diferentes (por exemplo, v\u00eddeo ou pdf). Cada uma dessas maneiras seria uma inst\u00e2ncia da sua classe de implementa\u00e7\u00e3o.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-composite-e-decorator\">Padr\u00f5es de Projeto <em>Composite<\/em> e <em>Decorator<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong><em>Composite<\/em><\/strong>: monta objetos em estruturas de \u00e1rvore, em que tanto as folhas (objetos individuais) quanto os demais (grupos de objetos) sejam tratados uniformemente.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>O <em>composite<\/em> lembra a \u00e1rvore. Voc\u00ea j\u00e1 deve ter ouvido falar em \u00e1rvore, pois estuda conosco. Sim, \u00e9 disso que estamos falando. A plataforma do Estrat\u00e9gia organiza assuntos e aulas em estruturas de \u00e1rvores.<\/p>\n\n\n\n<p>Pense em cada um dos n\u00f3s da \u00e1rvore como se fossem objetos. O <em>composite<\/em> facilitar\u00e1 o tratamento desses objetos. Se voc\u00ea souber disso, j\u00e1 conseguir\u00e1 acertar muitas quest\u00f5es.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong><em>Decorator<\/em><\/strong>: atribui responsabilidades adicionais a um objeto, de forma din\u00e2mica.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Esse padr\u00e3o oferece uma alternativa \u00e0 heran\u00e7a tradicional, trabalhando com agrega\u00e7\u00e3o e composi\u00e7\u00e3o. Adicionam-se novos comportamentos aos objetos, utilizando classes separadas. E essa adi\u00e7\u00e3o \u00e9 feita em tempo de execu\u00e7\u00e3o.<\/p>\n\n\n\n<p>O exemplo tradicional desse assunto envolve janelas dos programas. Voc\u00ea j\u00e1 reparou que pode aparecer uma barra de rolagem quando voc\u00ea abre um arquivo pdf? Esse recurso pode ser proporcionado com o uso do <em>decorator<\/em>.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-facade-flyweight-e-proxy\">Padr\u00f5es de Projeto <em>Fa\u00e7ade<\/em>, <em>Flyweight <\/em>e <em>Proxy<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong><em>Fa\u00e7ade<\/em><\/strong>: oferece uma interface simplificada para um subsistema, tornando-o mais f\u00e1cil de usar.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Para entender o <em>fa\u00e7ade<\/em>, pense na \u00c1rea do Aluno do Estrat\u00e9gia. Voc\u00ea consegue acessar diversos cursos e funcionalidades por meio de uma \u00fanica porta de entrada. Ao logar no sistema, voc\u00ea ter\u00e1 acesso aos pdfs, v\u00eddeos, \u00e1udios etc. O <em>fa\u00e7ade<\/em> unifica a interface para acessar o ambiente.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong><em>Flyweight<\/em><\/strong>: cria uma estrutura de compartilhamento de objetos pequenos, economizando mem\u00f3ria.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Este padr\u00e3o \u00e9 muito utilizado quando h\u00e1 limita\u00e7\u00f5es de recursos. Se voc\u00ea possui informa\u00e7\u00f5es semelhantes, \u00e9 poss\u00edvel condens\u00e1-las em \u00fanico objeto, a fim de economizar mem\u00f3ria. Fique tranquilo, pois as bancas n\u00e3o costumam aprofundar muito este padr\u00e3o.<\/p>\n\n\n\n<p>Pense no Youtube. Caso queira visualizar as grava\u00e7\u00f5es de um dia todo do Estrat\u00e9gia, ao vivo na plataforma, voc\u00ea ir\u00e1 abrir o Youtube v\u00e1rias vezes? Provavelmente n\u00e3o. Voc\u00ea abrir\u00e1 a aplica\u00e7\u00e3o uma vez e assistir\u00e1 quantos v\u00eddeos quiser com o mesmo programa aberto. Efici\u00eancia de recursos.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong><em>Proxy<\/em><\/strong>: fornece um substituto para outro objeto controlar seu acesso.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Para entender este padr\u00e3o, pense em um procurador. Se voc\u00ea n\u00e3o puder tomar posse no seu concurso em que foi aprovado, por qualquer motivo, provavelmente voc\u00ea ir\u00e1 mandar um procurador no seu lugar.<\/p>\n\n\n\n<p>O procurador \u00e9 algu\u00e9m que ir\u00e1 substitui-lo legalmente. Esse conceito parece bastante com o <em>proxy<\/em>. Este padr\u00e3o cria um intermedi\u00e1rio para estabelecer a comunica\u00e7\u00e3o com o objeto original.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-red-color has-text-color\" id=\"h-padroes-de-projeto-comportamentais\">Padr\u00f5es de Projeto Comportamentais<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Estes padr\u00f5es focam em algoritmos e responsabilidades dos objetos. S\u00e3o eles: <em>chain of responsability<\/em>, <em>command<\/em>, <em>interpreter,<\/em> <em>iterator<\/em>, <em>mediator<\/em>, <em>memento<\/em>, <em>observer<\/em>, <em>state<\/em>, <em>strategy<\/em>, <em>template method<\/em> e <em>visitor<\/em>. Vamos falar um pouco sobre cada um.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-chain-of-responsibility-e-command\">Padr\u00f5es de Projeto <em>Chain of Responsibility<\/em> e <em>Command<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Chain of Responsibility<\/em><\/strong>: utiliza a ideia de baixo acoplamento para permitir que outros objetos da cadeia tenham a oportunidade de tratar uma solicita\u00e7\u00e3o.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>De forma simples, o <em>chain of responsibility<\/em> \u00e9 um padr\u00e3o que trabalha com corrente. Pense em uma s\u00e9rie de objetos encadeados. Eles decidir\u00e3o se ir\u00e3o atender \u00e0 solicita\u00e7\u00e3o ou se ir\u00e3o pass\u00e1-la adiante para o pr\u00f3ximo objeto da corrente (e por a\u00ed vai).<\/p>\n\n\n\n<p>Vamos dar um exemplo simples. Suponha que voc\u00ea ligou para o Estrat\u00e9gia e descobriu que o sistema funciona com URA (Unidade de Resposta Aud\u00edvel). Para comprar pacotes, disque 0; para comprar assinaturas, disque 1&#8230;<\/p>\n\n\n\n<p>Ao escolher 0 (voc\u00ea vai comprar um pacote), voc\u00ea percebe que h\u00e1 outras subop\u00e7\u00f5es ali dentro (pacotes de TI, pacotes fiscais etc.). A escolha do d\u00edgito ir\u00e1 determinar a equipe que vai atender voc\u00ea (TI ou fiscais, por exemplo).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Command<\/em><\/strong>: encapsula uma solicita\u00e7\u00e3o como um objeto, o que lhe permite parametrizar outros objetos com diferentes solicita\u00e7\u00f5es.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>A palavra-chave desse padr\u00e3o \u00e9 par\u00e2metro. O <em>command<\/em> permite que um par\u00e2metro escolhido possa desencadear uma escolha. Vamos dar mais um exemplo para facilitar a sua vida.<\/p>\n\n\n\n<p>Voc\u00ea j\u00e1 reparou que a \u00c1rea do Aluno conta com v\u00e1rias op\u00e7\u00f5es? Voc\u00ea pode baixar material, pode imprimi-lo etc. Cada um desses \u00edcones \u00e9 um par\u00e2metro a ser chamado por voc\u00ea, que desencadeia uma a\u00e7\u00e3o.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-interpreter-e-iterator\">Padr\u00f5es de Projeto <em>Interpreter <\/em>e <em>Iterator<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Interpreter<\/em><\/strong>: define uma representa\u00e7\u00e3o para sua gram\u00e1tica juntamente com um interpretador, que traduz senten\u00e7as na l\u00edngua.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Esse padr\u00e3o \u00e9 mais t\u00e9cnico e est\u00e1 associado diretamente com compiladores. Os c\u00f3digos-fontes seguem uma linguagem de programa\u00e7\u00e3o, que \u00e9 interpretada \/ compilada nos ambientes para funcionar. O <em>interpreter<\/em> cuida disso.<\/p>\n\n\n\n<p>Um exemplo pr\u00e1tico do dia a dia \u00e9 o corretor ortogr\u00e1fico do Microsoft Word. Ele traduz o que voc\u00ea escreve para verificar se o texto segue a gram\u00e1tica da l\u00edngua portuguesa. Observe que \u00e9 um tipo de interpreta\u00e7\u00e3o.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Iterator<\/em><\/strong>: fornece uma maneira de acessar sequencialmente os elementos de um objeto agregado, sem expor a sua representa\u00e7\u00e3o interna.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Este padr\u00e3o \u00e9 muito utilizado com estruturas de dados, tais como fila, pilha etc. Imagine que voc\u00ea tenha um objeto fila e precise acessar seus elementos. Esse acesso sequencial poder\u00e1 ser feito pelo padr\u00e3o <em>iterator<\/em>.<\/p>\n\n\n\n<p>O conceito de fila \u00e9 o mesmo do mundo real (fila de banco, fila de caixa do mercado etc.). Se voc\u00ea entrar em contato com o Estrat\u00e9gia pelo <em>chat<\/em>, provavelmente ir\u00e1 entrar em uma fila. Quem est\u00e1 esperando h\u00e1 mais tempo \u00e9 atendido primeiro; quem chega, entra no final da fila.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-mediator-e-memento\">Padr\u00f5es de Projeto <em>Mediator <\/em>e <em>Memento<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Mediator<\/em><\/strong>: cria um objeto que age como um mediador, controlando a intera\u00e7\u00e3o entre um conjunto de objetos.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Neste padr\u00e3o, voc\u00ea cria um objeto intermedi\u00e1rio para estabelecer a comunica\u00e7\u00e3o com outros objetos. Ele vai mediar a intera\u00e7\u00e3o (por isso, o nome <em>mediator<\/em>).<\/p>\n\n\n\n<p>Cuidado para n\u00e3o confundir o padr\u00e3o <em>mediator<\/em> com o padr\u00e3o <em>proxy<\/em>. No caso do <em>proxy<\/em>, os demais objetos acham que est\u00e3o lidando com o original. No caso do <em>mediator<\/em>, eles sabem que \u00e9 um outro objeto intermedi\u00e1rio que estabelece a comunica\u00e7\u00e3o. Mas as bancas nunca cobraram isso.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Memento<\/em><\/strong>: armazena o estado interno de um objeto em um determinado momento, para que seja poss\u00edvel retorn\u00e1-lo a esse estado, sem que isso cause problemas com o encapsulamento.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Parece dif\u00edcil, mas o <em>memento<\/em> \u00e9 tranquilo. Ele salva um determinado estado do objeto, para voc\u00ea ter a possibilidade de voltar depois. Hummm, ser\u00e1 que isso lembra alguma coisa?<\/p>\n\n\n\n<p>Pense naquele resumo de TI que voc\u00ea est\u00e1 fazendo no Microsoft Word. Voc\u00ea se distrai por alguns minutos e percebe que anotou errado. Para corrigir, voc\u00ea precisa desfazer a escrita. Essa \u00e9 uma boa aplica\u00e7\u00e3o do <em>memento<\/em>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-observer-state-e-strategy\">Padr\u00f5es de Projeto <em>Observer<\/em>, <em>State<\/em> e <em>Strategy<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Observer<\/em><\/strong>: define uma rela\u00e7\u00e3o de depend\u00eancia, de forma que, quando um objeto tem seu estado modificado, os demais s\u00e3o notificados.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>No <em>observer<\/em>, se um objeto mudar de estado, os outros ficam sabendo. Um bom exemplo disso para facilitar o seu entendimento \u00e9 o Youtube. Se o canal do Estrat\u00e9gia postar um novo v\u00eddeo, os usu\u00e1rios com a notifica\u00e7\u00e3o habilitada receber\u00e3o um aviso.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>State<\/em><\/strong>: permite a um objeto alterar seu comportamento quando seu estado interno muda.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Veja que o <em>state<\/em> \u00e9 diferente do <em>observer<\/em>. Se o estado do objeto for alterado, haver\u00e1 uma mudan\u00e7a de comportamento (e n\u00e3o uma simples notifica\u00e7\u00e3o aos demais). Este padr\u00e3o \u00e9 muito utilizado na implementa\u00e7\u00e3o de m\u00e1quina de estados, fluxogramas em geral etc. &nbsp;<\/p>\n\n\n\n<p>Um bom exemplo deste padr\u00e3o \u00e9 a trilha estrat\u00e9gica. Dependendo do conhecimento que voc\u00ea tenha sobre determinado t\u00f3pico da mat\u00e9ria, voc\u00ea vai direcionar o seu estudo para um ponto ou outro.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Strategy<\/em><\/strong>: permite que uma fam\u00edlia de algoritmos seja utilizada de modo independente e seletivo.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Como a pr\u00f3pria defini\u00e7\u00e3o diz, o <em>strategy<\/em> \u00e9 aplicado em caso de fam\u00edlia de algoritmos. Na computa\u00e7\u00e3o, n\u00f3s temos v\u00e1rias formas diferentes de fazer a mesma coisa. Cada forma seria um algoritmo diferente.<\/p>\n\n\n\n<p>Um exemplo simples \u00e9 a ordena\u00e7\u00e3o: podemos aplicar o <em>quick<\/em> <em>sort<\/em>, o <em>merge<\/em> <em>sort<\/em> etc. O seu estudo tamb\u00e9m pode ser feito de v\u00e1rias formas: alguns alunos preferem estudar por pdf, outros por videoaulas etc. S\u00e3o v\u00e1rias maneiras de adquirir conhecimento e chegar \u00e0 aprova\u00e7\u00e3o.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-luminous-vivid-orange-color has-text-color has-medium-font-size\" id=\"h-padroes-de-projeto-template-method-e-visitor\">Padr\u00f5es de Projeto <em>Template Method <\/em>e <em>Visitor<\/em><\/h4>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Template Method<\/em><\/strong>: define o esqueleto de um algoritmo em uma opera\u00e7\u00e3o, adiando a defini\u00e7\u00e3o de alguns passos para a subclasse.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>O <em>template method<\/em> cria uma classe abstrata, que seria o esqueleto de um determinado conceito do mundo real. Posteriormente, as subclasses concretas ir\u00e3o preencher esse esqueleto.<\/p>\n\n\n\n<p>Veja que este padr\u00e3o est\u00e1 intimamente ligado ao conceito de abstra\u00e7\u00e3o. Suponha que o resumo do conte\u00fado seja a sua abstra\u00e7\u00e3o. O resumo pode ser concretizado em v\u00e1rios formatos (pdf, docx, etc.).<\/p>\n\n\n\n<p>Veja que o <em>strategy<\/em> e o <em>template method<\/em> s\u00e3o bem parecidos. A diferen\u00e7a \u00e9 que o <em>strategy<\/em> trabalha com conceitos de heran\u00e7a, enquanto o <em>template method<\/em> trabalha com conceitos de delega\u00e7\u00e3o e composi\u00e7\u00e3o. Mas n\u00e3o se preocupe porque as bancas n\u00e3o devem se aprofundar tanto assim. &nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f4b9c8\"><strong><em>Visitor<\/em><\/strong>: define opera\u00e7\u00f5es independentes a serem realizadas sobre elementos de uma estrutura.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Embora seja o \u00faltimo, este padr\u00e3o \u00e9 o mais dif\u00edcil de todos (brincadeira, rs). O <em>visitor<\/em> \u00e9 utilizado quando voc\u00ea precisa definir novas opera\u00e7\u00f5es e n\u00e3o quer mexer nas classes que j\u00e1 criou (evitar a famosa \u201cpolui\u00e7\u00e3o\u201d). As novas opera\u00e7\u00f5es seriam ent\u00e3o definidas em uma classe separada.<\/p>\n\n\n\n<p>Como o artigo j\u00e1 est\u00e1 acabando, voc\u00ea deve estar ansioso pelo mapa mental. Vamos utiliz\u00e1-lo ent\u00e3o como exemplo. Suponha que voc\u00ea j\u00e1 tenha alguns mapas prontos, mas aprendeu um novo conceito. A fim de n\u00e3o misturar com os mapas que j\u00e1 possui, voc\u00ea decide criar mais um.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-red-color has-text-color\" id=\"h-mapa-mental\">Mapa Mental<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Agora sim, chegamos ao momento que voc\u00ea queria. Temos a certeza de que alguns alunos pularam todo o restante do artigo e vieram direto para este mapa mental de padr\u00f5es de projeto. Estamos de olho.<\/p>\n\n\n\n<p>O mapa de hoje \u00e9 m\u00e1gico, muito especial. Sabe por qu\u00ea? Porque este \u00e9 o mapa original dos nossos estudos, que nos ajudou com a nossa aprova\u00e7\u00e3o. Assim como ele trouxe sorte para n\u00f3s, est\u00e1 decretado que ele tamb\u00e9m trar\u00e1 sorte para voc\u00ea. Aproveite ent\u00e3o e revise-o periodicamente:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"492\" src=\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13215900\/image-151.png\" alt=\"Figura 1 - Mapa Mental de Padr\u00f5es de Projeto.\" class=\"wp-image-1152585\" srcset=\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13215900\/image-151.png 886w, https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13215900\/image-151-300x167.png 300w, https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13215900\/image-151-768x426.png 768w, https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13215900\/image-151-610x339.png 610w, https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13215900\/image-151-150x83.png 150w\" sizes=\"auto, (max-width: 886px) 100vw, 886px\" \/><figcaption class=\"wp-element-caption\">Figura 1 &#8211; Mapa Mental de Padr\u00f5es de Projeto.<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-vivid-red-color has-text-color\" id=\"h-conclusao\">Conclus\u00e3o<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Em suma, apresentamos hoje um resumo de padr\u00f5es de projeto, um dos principais assuntos abordados na disciplina de Engenharia de <em>Software<\/em>. Assim, se voc\u00ea leu o artigo na \u00edntegra e entendeu bem os conceitos, o pr\u00f3ximo passo agora ser\u00e1 realizar muitas quest\u00f5es para treinar.<\/p>\n\n\n\n<p>Alunos aprovados realizam centenas ou at\u00e9 milhares de quest\u00f5es para atingir seu objetivo. O acesso ao Sistema de Quest\u00f5es do Estrat\u00e9gia \u00e9 feito pelo link: <a href=\"https:\/\/concursos.estrategia.com\/\">https:\/\/concursos.estrategia.com\/<\/a>.<\/p>\n\n\n\n<p>N\u00e3o esque\u00e7a tamb\u00e9m de retornar ao t\u00f3pico periodicamente para fazer revis\u00f5es. Elas s\u00e3o fundamentais para promover a fixa\u00e7\u00e3o do conte\u00fado aprendido. Para agilizar o processo, utilize tamb\u00e9m o mapa mental disponibilizado como seu aliado.&nbsp;<\/p>\n\n\n\n<p>Por fim, se voc\u00ea quiser aprofundar o conte\u00fado ou tirar d\u00favidas espec\u00edficas da linguagem, busque o material do Estrat\u00e9gia Concursos. N\u00f3s oferecemos diversos cursos em pdf, videoaulas e \u00e1udios para voc\u00ea ouvir onde quiser. Saiba mais por meio do link <a href=\"https:\/\/www.estrategiaconcursos.com.br\/cursos\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.estrategiaconcursos.com.br\/cursos\/<\/a>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Bons estudos e at\u00e9 a pr\u00f3xima!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><em>Cristiane Selem Ferreira Neves \u00e9 Bacharel em Ci\u00eancia da Computa\u00e7\u00e3o e Mestre em Sistemas de Informa\u00e7\u00e3o pela Universidade Federal do Rio de Janeiro (UFRJ), al\u00e9m de possuir a certifica\u00e7\u00e3o Project Management Professional pelo Project Management Institute (PMI). J\u00e1 foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevid\u00eancia (2012\/2013), TJ-RJ (2022) e TCE-RJ (2022). Atualmente exerce o cargo efetivo de Especialista em Previd\u00eancia Social \u2013 Ci\u00eancia da Computa\u00e7\u00e3o no Rioprevid\u00eancia, al\u00e9m de ser colaboradora do Blog do Estrat\u00e9gia Concursos.<\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-text-align-center has-cyan-bluish-gray-background-color has-background\"><a href=\"https:\/\/www.estrategiaconcursos.com.br\/blog\/concursos-abertos\/\" target=\"_blank\" rel=\"noreferrer noopener\">Concursos Abertos<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-center\"><strong>Quer Saber Tudo de Concursos Previstos?<\/strong><\/h4>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-center\"><strong>Confira Nossos Artigos<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-center has-cyan-bluish-gray-background-color has-background\"><a href=\"https:\/\/www.estrategiaconcursos.com.br\/blog\/concursos-2023\/\" target=\"_blank\" rel=\"noreferrer noopener\">Concursos 2023<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conhe\u00e7a os principais padr\u00f5es de projeto cobrados nas provas de Engenharia de Software, disciplina important\u00edssima de TI.<\/p>\n","protected":false},"author":2462,"featured_media":1152615,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"post_tipo":"article","footnotes":""},"categories":[1,220184,1983,220182,220183],"tags":[40,220172,221283,25,776],"tax_estado":[219964,219965,219966,219967,219968,219969,219970,219971,219972,219973,219974,219975,219976,219977,219978,219979,219980,219981,219982,219983,219984,219985,219986,219987,219988,219989,219990],"class_list":["post-1152582","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cursos-e-concursos","category-engenharias-e-ti","category-fiscal-estadual","category-fiscal-federal","category-fiscal-municipal","tag-concurso","tag-engenharia-de-software","tag-padroes-de-projeto","tag-tecnologia-da-informacao","tag-ti","tax_estado-ac","tax_estado-al","tax_estado-am","tax_estado-ap","tax_estado-ba","tax_estado-ce","tax_estado-df","tax_estado-es","tax_estado-go","tax_estado-ma","tax_estado-mg","tax_estado-ms","tax_estado-mt","tax_estado-pa","tax_estado-pb","tax_estado-pe","tax_estado-pi","tax_estado-pr","tax_estado-rj","tax_estado-rn","tax_estado-ro","tax_estado-rr","tax_estado-rs","tax_estado-sc","tax_estado-se","tax_estado-sp","tax_estado-to"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Padr\u00f5es de Projeto: Engenharia de Software em Destaque<\/title>\n<meta name=\"description\" content=\"Conhe\u00e7a os principais padr\u00f5es de projeto cobrados nas provas de Engenharia de Software, disciplina important\u00edssima de TI.\" \/>\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.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Engenharia de Software em Destaque: Padr\u00f5es de Projeto\" \/>\n<meta property=\"og:description\" content=\"Conhe\u00e7a os principais padr\u00f5es de projeto cobrados nas provas de Engenharia de Software, disciplina important\u00edssima de TI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/\" \/>\n<meta property=\"og:site_name\" content=\"Estrat\u00e9gia Concursos\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-02T11:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-23T16:38:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png\" \/>\n\t<meta property=\"og:image:width\" content=\"567\" \/>\n\t<meta property=\"og:image:height\" content=\"378\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Cristiane Selem Ferreira Neves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EstratConcursos\" \/>\n<meta name=\"twitter:site\" content=\"@EstratConcursos\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cristiane Selem Ferreira Neves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/\"},\"author\":{\"name\":\"Cristiane Selem Ferreira Neves\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/4afd42dbb493f6ef0c87baf438fd3904\"},\"headline\":\"Engenharia de Software em Destaque: Padr\u00f5es de Projeto\",\"datePublished\":\"2023-02-02T11:00:00+00:00\",\"dateModified\":\"2023-06-23T16:38:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/\"},\"wordCount\":3208,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png\",\"keywords\":[\"Concurso\",\"engenharia de software\",\"padr\u00f5es de projeto\",\"Tecnologia da Informa\u00e7\u00e3o\",\"TI\"],\"articleSection\":[\"Concursos P\u00fablicos\",\"Engenharias e TI\",\"Fiscal - Estadual (ICMS)\",\"Fiscal - Federal (RFB e AFT)\",\"Fiscal - Municipal (ISS)\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#respond\"]}],\"copyrightYear\":\"2023\",\"copyrightHolder\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/\",\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/\",\"name\":\"Padr\u00f5es de Projeto: Engenharia de Software em Destaque\",\"isPartOf\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png\",\"datePublished\":\"2023-02-02T11:00:00+00:00\",\"dateModified\":\"2023-06-23T16:38:10+00:00\",\"description\":\"Conhe\u00e7a os principais padr\u00f5es de projeto cobrados nas provas de Engenharia de Software, disciplina important\u00edssima de TI.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage\",\"url\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png\",\"contentUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png\",\"width\":567,\"height\":378},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Engenharia de Software em Destaque: Padr\u00f5es de Projeto\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website\",\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/\",\"name\":\"Estrat\u00e9gia Concursos\",\"description\":\"O blog da Estrat\u00e9gia Concursos traz not\u00edcias sobre concursos e artigos de professores oferecendo cursos para concursos (pdf + videaulas) no site.\",\"publisher\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\",\"name\":\"Estrat\u00e9gia Concursos\",\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg\",\"contentUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg\",\"width\":230,\"height\":60,\"caption\":\"Estrat\u00e9gia Concursos\"},\"image\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/EstratConcursos\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/4afd42dbb493f6ef0c87baf438fd3904\",\"name\":\"Cristiane Selem Ferreira Neves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/75398471ed0bdb2b96874c4f62eccff4b792181d3ee38d22ddd2bcb33c82e45a?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/75398471ed0bdb2b96874c4f62eccff4b792181d3ee38d22ddd2bcb33c82e45a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/75398471ed0bdb2b96874c4f62eccff4b792181d3ee38d22ddd2bcb33c82e45a?s=96&d=mm&r=g\",\"caption\":\"Cristiane Selem Ferreira Neves\"},\"description\":\"Cristiane Selem Ferreira Neves \u00e9 Bacharel em Ci\u00eancia da Computa\u00e7\u00e3o e Mestre em Sistemas de Informa\u00e7\u00e3o pela Universidade Federal do Rio de Janeiro (UFRJ), al\u00e9m de possuir a certifica\u00e7\u00e3o Project Management Professional pelo Project Management Institute (PMI). J\u00e1 foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevid\u00eancia (2012\/2013), TJ-RJ (2022), TCE-RJ (2022) e CGE-SC (2022\/2023). Atualmente exerce o cargo efetivo de Auditora de Controle Externo \u2013 Tecnologia da Informa\u00e7\u00e3o e integra o corpo docente da Escola de Contas de Gest\u00e3o do TCE-RJ, al\u00e9m de ser produtora de conte\u00fado dos Blogs do Estrat\u00e9gia Concursos, OAB e Carreiras Jur\u00eddicas.\",\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/author\/cristianeselemgmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Padr\u00f5es de Projeto: Engenharia de Software em Destaque","description":"Conhe\u00e7a os principais padr\u00f5es de projeto cobrados nas provas de Engenharia de Software, disciplina important\u00edssima de TI.","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.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/","og_locale":"pt_BR","og_type":"article","og_title":"Engenharia de Software em Destaque: Padr\u00f5es de Projeto","og_description":"Conhe\u00e7a os principais padr\u00f5es de projeto cobrados nas provas de Engenharia de Software, disciplina important\u00edssima de TI.","og_url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/","og_site_name":"Estrat\u00e9gia Concursos","article_published_time":"2023-02-02T11:00:00+00:00","article_modified_time":"2023-06-23T16:38:10+00:00","og_image":[{"width":567,"height":378,"url":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png","type":"image\/png"}],"author":"Cristiane Selem Ferreira Neves","twitter_card":"summary_large_image","twitter_creator":"@EstratConcursos","twitter_site":"@EstratConcursos","twitter_misc":{"Escrito por":"Cristiane Selem Ferreira Neves","Est. tempo de leitura":"16 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#article","isPartOf":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/"},"author":{"name":"Cristiane Selem Ferreira Neves","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/4afd42dbb493f6ef0c87baf438fd3904"},"headline":"Engenharia de Software em Destaque: Padr\u00f5es de Projeto","datePublished":"2023-02-02T11:00:00+00:00","dateModified":"2023-06-23T16:38:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/"},"wordCount":3208,"commentCount":0,"publisher":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage"},"thumbnailUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png","keywords":["Concurso","engenharia de software","padr\u00f5es de projeto","Tecnologia da Informa\u00e7\u00e3o","TI"],"articleSection":["Concursos P\u00fablicos","Engenharias e TI","Fiscal - Estadual (ICMS)","Fiscal - Federal (RFB e AFT)","Fiscal - Municipal (ISS)"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#respond"]}],"copyrightYear":"2023","copyrightHolder":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/","url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/","name":"Padr\u00f5es de Projeto: Engenharia de Software em Destaque","isPartOf":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage"},"image":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage"},"thumbnailUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png","datePublished":"2023-02-02T11:00:00+00:00","dateModified":"2023-06-23T16:38:10+00:00","description":"Conhe\u00e7a os principais padr\u00f5es de projeto cobrados nas provas de Engenharia de Software, disciplina important\u00edssima de TI.","breadcrumb":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#primaryimage","url":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png","contentUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2023\/01\/13224018\/imagemdestaque.png","width":567,"height":378},{"@type":"BreadcrumbList","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/engenharia-software-padroes-projeto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.estrategiaconcursos.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Engenharia de Software em Destaque: Padr\u00f5es de Projeto"}]},{"@type":"WebSite","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website","url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/","name":"Estrat\u00e9gia Concursos","description":"O blog da Estrat\u00e9gia Concursos traz not\u00edcias sobre concursos e artigos de professores oferecendo cursos para concursos (pdf + videaulas) no site.","publisher":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.estrategiaconcursos.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization","name":"Estrat\u00e9gia Concursos","url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg","contentUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg","width":230,"height":60,"caption":"Estrat\u00e9gia Concursos"},"image":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/EstratConcursos"]},{"@type":"Person","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/4afd42dbb493f6ef0c87baf438fd3904","name":"Cristiane Selem Ferreira Neves","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/75398471ed0bdb2b96874c4f62eccff4b792181d3ee38d22ddd2bcb33c82e45a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/75398471ed0bdb2b96874c4f62eccff4b792181d3ee38d22ddd2bcb33c82e45a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/75398471ed0bdb2b96874c4f62eccff4b792181d3ee38d22ddd2bcb33c82e45a?s=96&d=mm&r=g","caption":"Cristiane Selem Ferreira Neves"},"description":"Cristiane Selem Ferreira Neves \u00e9 Bacharel em Ci\u00eancia da Computa\u00e7\u00e3o e Mestre em Sistemas de Informa\u00e7\u00e3o pela Universidade Federal do Rio de Janeiro (UFRJ), al\u00e9m de possuir a certifica\u00e7\u00e3o Project Management Professional pelo Project Management Institute (PMI). J\u00e1 foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevid\u00eancia (2012\/2013), TJ-RJ (2022), TCE-RJ (2022) e CGE-SC (2022\/2023). Atualmente exerce o cargo efetivo de Auditora de Controle Externo \u2013 Tecnologia da Informa\u00e7\u00e3o e integra o corpo docente da Escola de Contas de Gest\u00e3o do TCE-RJ, al\u00e9m de ser produtora de conte\u00fado dos Blogs do Estrat\u00e9gia Concursos, OAB e Carreiras Jur\u00eddicas.","url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/author\/cristianeselemgmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts\/1152582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/users\/2462"}],"replies":[{"embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1152582"}],"version-history":[{"count":35,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts\/1152582\/revisions"}],"predecessor-version":[{"id":1238133,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts\/1152582\/revisions\/1238133"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/media\/1152615"}],"wp:attachment":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1152582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1152582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1152582"},{"taxonomy":"tax_estado","embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/tax_estado?post=1152582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}