Projeto Primeiro Sistema

olá

galera depois de entender alguns conceitos do java ( ou ter tentando entender )

me deparei com a seguinte situação

será que estou pensando orientado a objetos?

vamos por partes:

estou pensando em fazer um sistema que rode local, esse sistema é uma agenda de tarefas

onde digito o dia e a hora e a descrição que quero e o sistema grava (onde ainda não defini, porque não sei nada sobre gravação, mas tudo a seu tempo)

pensei somente em uma classe, não consegui achar outra

e tenho outra duvida, crio um metodo que insere a tarefa de uma só vez ou que cria somente o objeto na memória

PS1: também não sei como solicitar ao usuário a entrada do texto

[color=red]PS2: se alguem for me ajudar, por favor me ajude dando o caminho das pedras e não fazendo[/color]

muito obrigado

Parabéns pela posição!

Vamos por partes como diria Jack.

Primeiro, é legal vc desde cedo começar a aprender que suas classes de negócio, no seu caso a classe tarefa, não deve se resumir apenas em um saco de propriedades só com os métodos getters/setters.
Vide artigo: http://martinfowler.com/bliki/AnemicDomainModel.html
Elas devem também possuir suas regras de negócio. Por exemplo, uma bem básico que imagino que você possa acoplar na sua classe seria validar para que suas tarefas não possuam uma data menor que a data atual. Ok?

Com relação à persistência, existem algumas abordagens, como os DAOs e também como os repositórios. Eles resumidamente se constituem em criar uma camada que encapsula todas as suas tarefas de persistência.

O que é inserir de uma só vez? Persistir no banco de dados?

Para esse seu simples exemplo, caso vá rodar na linha de comando, pode utilizar o JOptionPane.showINputDialog(…) mesmo!

Com certeza que deve fazer isso, mas estou bem no inicio, ainda não pensei muito sobre o assunto, meu maior problema esta em pensar orientado a objetos

não exatamente!

seria cria o objeto tarefa com todos os dados ( por exemplo dia, hora e tarefa )

[quote=pafuncio]

Para esse seu simples exemplo, caso vá rodar na linha de comando, pode utilizar o JOptionPane.showINputDialog(…) mesmo![/quote]

eu não conheço isso JOptionPane.showINputDialog(…)

mas darei uma pesquisada na documentação e lerei o artigo que me mandou

outra pergunta: nesse sistema, existe outra classe? ou seria essa mesmo?

abraço

para facilitar a forma de pensar OO tente criar mais classes, de cara vc pode criar uma classe para fazer a persistencia(inserir seus dados no banco de dados) e outra para trabalhar com a agenda, criando e usando obejetos dela. que seria a classe com o metodo main.

se quiser mesmo abrir sua mente para o mundo OO recomendo a leitura do livro, Use a cabeça Padroes de Projetos. se esforçe pra conseguir este livro pq ele realmente da uma outra visao sobre o assunto

[quote=pintofree]para facilitar a forma de pensar OO tente criar mais classes, de cara vc pode criar uma classe para fazer a persistencia(inserir seus dados no banco de dados) e outra para trabalhar com a agenda, criando e usando obejetos dela. que seria a classe com o metodo main.

se quiser mesmo abrir sua mente para o mundo OO recomendo a leitura do livro, Use a cabeça Padroes de Projetos. se esforçe pra conseguir este livro pq ele realmente da uma outra visao sobre o assunto[/quote]

é mesmo não tinha pensado em criar uma classe para persistencia,

pensei em fazer tudo na mesma classe…

valeu pela dica, mas seria possivel me dar um exemplo real de como ficaria uma classe DAO para outro exemplo que não seja o meu?

abraço

vc pode deixar essa classe Tarefa somente com os atributos da tarefa e seus getters e setters. cria outra classe AgendaTarefas onde sera implementado o método main que tera as instancias da classe Tarefa.

Ajudei em algo? entendi sua pergunta?

Att,
Marcelo

[quote=Poneis123]vc pode deixar essa classe Tarefa somente com os atributos da tarefa e seus getters e setters. cria outra classe AgendaTarefas onde sera implementado o método main que tera as instancias da classe Tarefa.

Ajudei em algo? entendi sua pergunta?

Att,
Marcelo[/quote]

se ele fizer isso ele estaria transformando sua classe tarefa em um “Saco de propriedades” como o cara explico ali em cima.

Agenda tarefa poderia ser seu camada de viasualização, onde receberia os dados e enviaria para a tarefa trabalhar

[quote=Poneis123]vc pode deixar essa classe Tarefa somente com os atributos da tarefa e seus getters e setters. cria outra classe AgendaTarefas onde sera implementado o método main que tera as instancias da classe Tarefa.

Ajudei em algo? entendi sua pergunta?

Att,
Marcelo[/quote]

se eu fizesse isso aconteceria como o cara abaixo disse

saco de propriedades

[quote=pintofree][quote=Poneis123]vc pode deixar essa classe Tarefa somente com os atributos da tarefa e seus getters e setters. cria outra classe AgendaTarefas onde sera implementado o método main que tera as instancias da classe Tarefa.

Ajudei em algo? entendi sua pergunta?

Att,
Marcelo[/quote]

se ele fizer isso ele estaria transformando sua classe tarefa em um “Saco de propriedades” como o cara explico ali em cima.

Agenda tarefa poderia ser seu camada de viasualização, onde receberia os dados e enviaria para a tarefa trabalhar[/quote]

mas não seria errado manter apenas uma classe?

como poderia fazer essa classe de visualização?

e como poderia fazer os DAOs

sem fazer com que minha classe tarefa se torne “saco de propriedades”

abraço

Não sei se você conhece Rails, mas os viciados que fazem os videozinhos do tipo “blog em quinze minutos”, utilizam apenas duas classes de domínio Post e Comment, sendo essa segunda uma classe com dependência forte em relação a primeira. (Não sei se “dependência forte” é a expressão correta, mas é aquele diamante preto na linha entre duas classes do UML.) Ou seja, não é nenhum pecado criar poucas classes pra um exemplo simples.

Você provavelmente só pensou em apenas uma classe porque o problema é bastante simples, talvez irreal. É só uma aplicação onde você coloca as tarefas e depois você vê, nada mais.

Como sugestão, páre de ouvir os comentários ditos anteriormente nesse post, e comece a “viajar” no problema. Exemplo: o que eu vou fazer com essas tarefas? Essas tarefas são de responsabilidade de quem? (eu vi uma classe Perfil ou Pessoa por aqui?) O que acontece quando as tarefas não são executadas? E por aí vai…

Aumente o problema proposto. No começo, com um problema “simplão”, é difícil achar mais de uma classe mesmo. Quando tiver esse problema maior, compartilhe com a gente.

[quote=Leonardo3001]Não sei se você conhece Rails, mas os viciados que fazem os videozinhos do tipo “blog em quinze minutos”, utilizam apenas duas classes de domínio Post e Comment, sendo essa segunda uma classe com dependência forte em relação a primeira. (Não sei se “dependência forte” é a expressão correta, mas é aquele diamante preto na linha entre duas classes do UML.) Ou seja, não é nenhum pecado criar poucas classes pra um exemplo simples.

Você provavelmente só pensou em apenas uma classe porque o problema é bastante simples, talvez irreal. É só uma aplicação onde você coloca as tarefas e depois você vê, nada mais.

Como sugestão, páre de ouvir os comentários ditos anteriormente nesse post, e comece a “viajar” no problema. Exemplo: o que eu vou fazer com essas tarefas? Essas tarefas são de responsabilidade de quem? (eu vi uma classe Perfil ou Pessoa por aqui?) O que acontece quando as tarefas não são executadas? E por aí vai…

Aumente o problema proposto. No começo, com um problema “simplão”, é difícil achar mais de uma classe mesmo. Quando tiver esse problema maior, compartilhe com a gente.[/quote]

na realidade, isso é um sistema “razoavel”, pois já pensei em diversas utilidades.

MAS, como estou começando, não achei interessante implantar tudo, queria fazer pouco a pouco, pois não conheço muito sobre JAVA e sobre OO

vou continuar pensando e fazendo assim que tiver algo melhor, posto aqui para alguem me ajudar.

caso alguém queira fazer algum comentário a mais sobre esse assunto ficaria muito agradecido

abraço