DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo Clube Delphi 116 - Crie um agendador de tarefas OO – Parte 1

Nesta primeira 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.






Crie um agendador de tarefas OO – Parte 1
Princípios de OO
 
Nesta 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 TTimer 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, que é a primeira parte de uma série, vou apresentar os conceitos mais básicos da orientação a objetos. Não será usado nenhum padrão de projeto nesta primeira parte 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 tratarei 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 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, vou 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.
O primeiro passo é identificar quais são os objetos no problema, e cá entre nós: esta é a parte mais fácil. O problema é: deve ser possível agendar a execução de um programa para um ou mais horários. Desta simples frase é possível tirar os dois primeiros objetos da aplicação, são eles: TTarefa e TAgendamento. Veja diagrama da primeira versão destas classes na Figura 1.

 
Figura 1. A primeria versão das classes de tarefa e agendamento

Nota: Se você tem um pouco de intimidade com os objetos, deve ter estranhado estas duas classes. Talvez esteja se perguntando onde foram parar as associações, heranças, encapsulamento e demais técnicas que são tão importantes. Fique tranquilo: as coisas ainda vão mudar muito até a última versão desta aplicação. Todas estas técnicas serão usadas e outras coisas, além de simples atributos, também serão encapsuladas.

A Figura 1 mostra o quanto as classes TTarefa e TAgendamento são simples. Elas apenas possuem as propriedades que representam as informações que elas gerenciam. Veja a descrição do que significa cada propriedade destas classes a seguir:
•    TTarefa:
o    Nome: este é o nome da tarefa – o usuário é quem decide o que vai colocar;
o    Comando: é o caminho do programa a ser executado;
o    Parâmetros: parâmetro para inicialização do programa – caso seja necessário;
o    IniciarEm: diretório em que o programa será iniciado – geralmente é o mesmo diretório onde o programa está instalado;
o    Comentário: alguma informação a mais que o usuário deseje armazenar na tarefa;
o    Agendamentos: lista dos agendamentos para a execução da tarefa.
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Rafael Stavarengo

Programador de sistemas a 8 anos, integrante da equipe editorial da revista Clube Delphi. Domínio em Java, PHP e UML. Sólido conhecimento em Design Patterns e metodologia ágeis. Graduado em Análise e Desenvolvimento de Sistemas pela UNIPAR.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03