Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Design Patterns na prática – Parte 1
Design Patterns na prática – Parte 3
Design Patterns na prática – Parte 4
Nesta segunda parte você vai aprender como criar um agendador de tarefas utilizando a programação orientada a objetos. Nos próximos artigos desta série serão utilizados padrões de projetos para melhorar o agendador criado neste artigo.
Para que serve
Este artigo mostra os primeiros passos necessários para entender a orientação a objetos. Ao final do artigo você estará apto a classes e manipular os objetos provenientes delas.
Em que situação o tema é útil
Programas orientados a objetos já saem ganhando em relação ao programas com código estruturado, pois quando bem utilizada, esta técnica diminui a quantidade de erros do programa e permite que um sistema possa ser alterado com maior facilidade.
Resumo do DevMan
Continuando nossa série de artigos, você vai aprender como utilizar a programação orientada a objetos e entender e aplicar as vantagens dos padrões de projetos. O objetivo do exemplo que vamos iniciar aqui é fazer com que você não se limite em apenas conhecer as técnicas existentes – como, por exemplo, herança, polimorfismo etc. – mas que você conheça as vantagens e desvantagens de cada uma, para que possa decidir qual delas terá um melhor resultado para solucionar os diferentes tipos de problemas que aparecem no dia-a-dia.
Autores: Guinther Pauli e Rafael Stavarengo
Na primeira parte deste curso, iniciamos nossos estudos sobre Design Patterns e Programação Orientada a Objetos. A partir desta parte da série, você vai aprender pelo menos uma alternativa de solução para problemas como: criar um sistema que possa trocar o banco de dados utilizado sem muito esforço, fazer com que um formulário atualize as informações exibidas na hora em que elas forem alteradas ao invés de colocar um Timer para ficar verificando se algo mudou ou não. Você vai aprender todos estes conceitos criando um agendador de tarefas parecido com o agendador do Windows. A lógica é simples: o usuário cria uma tarefa, que será agendada para executar uma ou mais vezes. Neste artigo vamos apresentar os conceitos mais básicos da orientação a objetos. No entanto, apesar de estarmos estudando Design Patterns nesta série, não será usado nenhum padrão por dois motivos: por uma questão didática, pois é mais fácil entender padrões de projetos quando você os aplica. E para que os programadores menos experientes com a orientação a objetos adquiriam conhecimento suficientes para entender o restante da série, onde trataremos de designs mais complexos e soluções para simplificá-los. Ao final deste artigo estará pronta a primeira versão do agendador, com um código pouco flexível. É claro que até a versão final o agendador sofrerá muitas mudanças internas comparada com a que será construída aqui. Com esta primeira versão do agendador você vai aprender a criar classes e manipular objetos, porém ainda não serão abordadas as técnicas para criar um sistema realmente simples de modificar.
Apresentação da aplicação
Para exemplificar os conceitos da orientação a objetos, vamos criar uma aplicação com o objetivo de agendar tarefas para execução. Esta aplicação será parecida com o agendador de tarefas existente no Windows. Primeiro o usuário escolhe algo para ser executado – esta é a tarefa a ser realizada – e depois o usuário escolhe os horários para a execução da tarefa. Em outras palavras, o agendador deve executar um determinado programa em horários pré-programados.
Cada tarefa pode ser agendada para execução uma ou mais vezes, ou seja, é possível agendar a mesma tarefa para executar uma vez no dia 5 e outra no dia 10 de determinado mês. Não deve haver limites para a quantidade de agendamentos de uma tarefa. Se você olhar nas propriedades de alguma tarefa no agendador do Windows, você verá que ele possui tipos diferentes de agendamentos, como: agendamento único, agendamento mensal, agendamento diário, agendamento semanal, entre outros. O agendador que será construído também deve ter tipos diferentes de agendamentos. Para começar vamos criar apenas dois tipos: agendamento único e agendamento diário.
...