Implementando aplicações simples
Simulando uma sessão de usuário
Os conceitos vistos em aulas anteriores (como classes, objetos, métodos e atributos)
serão ilustrados nesta aula através do desenvolvimento de uma aplicação simples. É
importante salientar que existem várias formas de se implementar o sistema proposto em
Java. A forma que apresentaremos a seguir não é a mais adequada ou eficiente, porém é
uma maneira de resolver o problema com os recursos de Java vistos até agora.
A aplicação consiste em simular o login de um usuário em uma máquina, com um
sistema de arquivos "virtual", iniciando uma sessão na mesma. O programa
deverá possuir as seguintes características:
- Existe na máquina uma base de usuários cadastrados e suas respectivas senhas. Apenas
usuários cadastrados podem entrar no sistema.
- Cada usuário possui um diretório raiz "virtual", do tipo /home/login.
- Uma vez iniciada a sessão, o usuário pode criar, remover e listar os seus arquivos e
diretórios, entre outras operações.
Para desenvolver a aplicação, devemos passar pelos seguintes passos:
- Veja e procure entender a assinatura das
classes principais e auxiliares do sistema,
- Veja e procure entender a implementação das
classes principais e auxiliares em Java,
- Veja e procure endender a classe principal
(Sessao),
- Copie a implementação das classes e a classe principal para a sua área (drive h),
- Abra o JDK,
- Compile as classes,
- Execute a classe principal (Sessao).
Leitura
Sessão com suporte a mais comandos.
Exercício
- Modifique a sessão estendida para que a mesma faça uma
outra operação e melhore as que ja estão implementadas. (Opcional)
- Defina uma classe BancoModular similar a Banco, mas que é
definida usando-se a classe ConjuntoDeContas;
isto é, BancoModular deve ter apenas um
atributo essencial, contas, do tipo ConjuntoDeContas.
Compare as duas implementações de bancos: Banco e
BancoModular.
Quais as vantagens e desvantagens de cada abordagem?
Justifique. Note que se não tivermos cuidado podemos
escrever programas orientados a objetos que não são
modulares! (Opcional)
- Suponha que por questões de eficiência temos que
modificar a maneira como contas são armazenadas no
banco; ao invés de arrays temos que usar árvores
binárias. Qual implementação de bancos seria mais
facilmente modificada: Banco
ou BancoModular? Escolha uma delas e faça as
modificações necessárias. (Opcional)
Informações
As equipes já podem começar a implementação do projeto.