Design Patterns - Parte 3 - Artigo Clube Delphi 124
Será mostrado como usar os conhecimentos adquiridos nos artigos anteriores para criar um programa independente de banco de dados ou de tecnologia de acesso, tornando tudo isso configurável. Serão utilizados os padrões Singleton, Factory Method e Abstract Factory.
ArtigosDelphiDesign Patterns - Parte 3 - Artigo Clube Delphi 124
Será mostrado como usar
os conhecimentos adquiridos nos artigos anteriores para criar um programa
independente de banco de dados ou de tecnologia de acesso, tornando tudo isso
configurável. Serão utilizados os padrões Singleton, Factory Method e Abstract
Factory.
Para
que serve
Abstract Factory é um
modo de desacoplar ainda mais os sistemas, por delegar a criação de famílias
inteiras de objetos sem se especificar uma classe concreta e usando uma única
interface. Esse padrão permite decidir “tardiamente” qual a classe do objeto
que será instanciado, tornando possível que várias partes do sistema sejam
intercambiáveis.
Em
que situação o tema é útil
Pode ser usado em
qualquer situação onde há um conjunto de objetos que podem ser substituídos
entre si para atender a um requisito. Serão aplicados esses conceitos na
criação, configuração e conexão com bancos de dados. Porém não se aplica
somente a isso. Num sistema de comunicações internas, por exemplo, pode-se
decidir se uma mensagem é um SMS ou um e-mail em tempo de execução. Também é
possível adiar a criação de gráficos após decidir pelo uso ou não de uma
determinada API quando estiver criando games por exemplo.
Resumo do DevMan
A maior
parte da literatura sobre Design Patterns aplica os padrões Factory Method e
Abstract Factory à bibliotecas gráficas (Motif e Windows) para criação de
Widgets como caixas de texto, combos etc. Assim, ao se criar um formulário,
pode-se decidir em tempo de execução qual API usar. Isso torna o sistema
compatível com diversos padrões de janelas e com diversos sistemas
operacionais.
Como no
Delphi nós já temos a VCL e o sistema multiplataforma não é o foco desse
artigo, esses conceitos serão aplicados tanto à conexão com o banco de dados
como à escolha de que tipo de componente usar. Sistemas modernos podem ser
configurados com qualquer banco de dados. O tipo de SGBD utilizado nunca
deveria ser pré-requisito ou fator decisivo para a implementação de um projeto,
já que dados são uma coisa, de propriedade do cliente, e o sistema é outra
coisa. Os sistemas não só devem ser flexíveis a ponto de utilizar diversas
bases de dados como devem fazê-lo instantaneamente, ou até simultaneamente,
integrando sistemas distintos.
Muito se comenta sobre a orientação a objetos e
sua importância em aplicações bem estruturadas, flexíveis, robustas e de
qualidade. Embora seja sempre comentada, a orientação a objetos ainda não é
algo frequentemente utilizado pela comunidade Delphi, porém, esta série de
artigos vem abordar um dos principais temas relacionados à POO e padrões de
projeto. O intuito de tudo isto é fazer com que o leitor adote a orientação a
objetos como uma forma de desenvolvimento cotidiano, fazendo com que qualquer
aplicação ou problema seja resolvido de uma forma mais ampla, que permita facilidade
de manutenção e poupe menos tempo.
Como já sabemos, os padrões de projeto foram
criados para revolucionar a forma de se desenvolver softwares, sendo adotados
principalmente no segmento de orientação a objetos. Estudar padrões de projeto
não só torna o seu desenvolvimento muito mais produtivo, como também faz com
que você possua muito mais interesse em se aprofundar na orientação a objetos e
desenvolver softwares que utilizem estas metodologias e conceitos.
Nos artigos anteriores foram explorados muito
os padrões Factory Method e Abstract Factory. Lembrando que o Factory Method é um
método que se responsabiliza pela criação (e possível configuração ou ligação)
de um objeto ou de um grupo de objetos. Ainda comentando sobre a importância da
POO em aplicações flexíveis, vimos como o padrão Abstract Factory pode ajudar
na flexibilidade do projeto, por postergar a decisão de que famílias de objetos
criam para o cliente dos objetos propriamente ditos.
Além de continuar a explorar o padrão Abstract
Factory, estudaremos outros padrões como o Singleton (já discutido), Mediator e
Adapter, implementando-os como soluções para alguns dos problemas que teremos
adiante. Será vista uma forma simples de se implementar um Singleton, e que é
uma alternativa elegante, segura e encapsulada para variáveis públicas globais.
Este artigo irá abordar a base para a criação
de um sistema multibanco, utilização de métodos de fábrica e fábricas abstratas
para criação de objetos de conexão com o banco de dados, configuração da SQL, criação
de DataSets corretos de acordo com o tipo, ligação ao Database e configuração dos
Providers para que os dados possam ser acessados e modificados.
Note que todas estas operações serão realizadas
através da orientação a objetos, utilizando padrões de projeto e com muito
pouco código. Veremos como é simples adotar Design Patterns e como eles podem
tornar a nossa vida muito mais simples, trazendo enorme flexibilidade e
facilidade de expansão de um projeto.
Nota do DevMan
O padrão
Singleton é uma convenção para garantir que um e apenas um objeto seja
instanciado para cada classe. O padrão Singleton também nos dá um ponto de
acesso global, assim como uma variável global, mas sem as desvantagens. Se você
atribuir um objeto a uma variável global, esse objeto poderá ser criado quando
seu aplicativo for iniciado. E se esse objeto tiver muitos recursos e seu
aplicativo nunca acabar de usá-lo? O padrão Singleton é uma das soluções para
este problema, pois garante que os nossos objetos sejam criados somente quando necessários.
É importante dominar bem os conceitos de variáveis e métodos de classe
estática, assim como os modificadores de acesso.
Nota do DevMan
O
Mediator é um dos padrões de projeto para desenvolvimento de softwares
orientados a objetos. Este permite que haja a “mediação” de um sistema por meio
de uma interface. Esse padrão enquadra-se nos padrões comportamentais devido à
maneira como ele pode alterar a execução do software. Para entender de uma
forma clara, conforme um projeto cresce, suas classes crescem exponencialmente
de forma natural, porém, as classes sempre possuem códigos e lógicas
distribuídas entre si. Conforme o crescimento destas classes a comunicação
entre as mesmas será cada vez mais complexa, havendo uma dependência muito
maior entre elas e dificultando na manutenção do projeto. O padrão Mediator vem
como sugestão para resolução deste problema, encapsulando a comunicação entre
estes objetos e reduzindo a dependência entre si.
Nota do DevMan
Um Wrapper nada mais é que um outro nome dado a um padrão de projeto
também conhecido como Adapter. Mais o que seria Adapter? Logo quando está se
iniciando no mundo da orientação a objetos, sempre somos levados a pensar de
uma forma comparativa ao mundo real, logo, transpondo isto para o mundo real, um
adaptador nada mais seria que algo que servisse de “intermediador” parar tornar
possível a compatibilidade entre objetos até então incompatíveis. Tratando-se
de orientação a objetos em si, imagine que você está dando manutenção a um
software já existente e deve criar uma nova classe que se comunique com classes
existentes, porém, as interfaces de ambas as classes são diferentes, o que
impossibilita essa comunicação “direta”. O padrão Adapter resolve este
problema, pois, neste caso seria o “intermediador” encarregado de compreender e
tornar possível a comunicação entre elas. Ele nada mais faz do que converter
uma interface de uma classe para outra interface que o cliente espera
encontrar, fazendo com que interfaces incompatíveis trabalhem juntas.
Nota do DevMan
Outros patterns comumente utilizados em Delphi
Command
O padrão
Command faz parte dos padrões de projeto. Seu objetivo é encapsular qualquer
ação que venha a ser chamada em um momento futuro. Essa ação torna-se um objeto
que pode ser reutilizado, contendo em si a complexidade da chamada da ação
original. Ao aplicar esse padrão conseguimos uma flexibilidade maior no
sistema, já que para adicionar novas ações (comandos) não há necessidade de se
alterar o design do projeto, apenas novos objetos são criados e associados à
interatividade do sistema. Apesar dessa vantagem existe uma desvantagem no seu
uso. Como seu uso implica na execução de objetos que sua única finalidade é
executar uma ação, acabaremos por ter um código que se assemelha muito ao
código procedural, orientado aos comandos.
Oferta válida para todos os planos durante o mês de dezembro
+3 MESES
Grátis
Veja os resultado dos nossos alunos
Conquistas reais de quem está aplicando o método
<Perguntas frequentes>
Carreira
Por onde devo iniciar os estudos?
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos o plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Compartilhe esse conteúdo com um amigo!
Faça login para ganhar recompensas.
Ou
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.