TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Analise de Projetos

Por:   •  15/3/2017  •  Trabalho acadêmico  •  1.191 Palavras (5 Páginas)  •  532 Visualizações

Página 1 de 5

Considere o código a seguir que é um programa para calcular e imprimir o valor devido por um cliente em uma vídeo locadora. O programa recebe como entrada quais filmes o cliente alugou e por quanto tempo. Ele então calcula o valor devido, que depende de quanto tempo o filme foi alugado, e identifica o tipo do filme. Há três tipos de filmes: normal, lançamento e infantil. Além de calcular os custos, o programa também calcula os pontos do locador freqüente, que variam se o filme é um lançamento.

Você é capaz de identificar problemas com relação aos princípios de um bom projeto orientado a objetos?  Faça uma análise e procure apontar estes problemas. Sugestão: Aplique uma engenharia reversa (você sabe o que é engenharia reversa?) e faça um diagrama de classes e o diagrama de sequência para o método Extrato da classe Cliente.

 Aponte os problemas encontrados a partir desta análise.

public class Fita {

    public enum Tipo {

        normal, lancamento, infantil

    };

    private String título;

    private Tipo códigoDePreço;

    public Fita(String título, Tipo códigoDePreço) {

        this.título = título;

        this.códigoDePreço = códigoDePreço;

    }

    public String getTítulo() {

        return título;

    }

    public Tipo getCódigoDePreço() {

        return códigoDePreço;

    }

    public void setCódigoDePreço(Tipo códigoDePreço) {

        this.códigoDePreço = códigoDePreço;

    }

}

-------------------------------------------------------------------------------------------------------------------------------------

public class Aluguel {

    private Fita fita;

    private int diasAlugada;

    public Aluguel(Fita fita, int diasAlugada) {

        this.fita = fita;

        this.diasAlugada = diasAlugada;

    }

    public Fita getFita() {

        return fita;

    }

    public int getDiasAlugada() {

        return diasAlugada;

    }

}

import java.util.ArrayList;

import java.util.Collection;

public class Cliente {

    private String nome;

    private Collection fitasAlugadas = new ArrayList();

    public Cliente(String nome) {

        this.nome = nome;

    }

    public String getNome() {

        return nome;

    }

    public void adicionaAluguel(Aluguel aluguel) {

        fitasAlugadas.add(aluguel);

    }

    public String extrato() {

        final String fimDeLinha = System.getProperty("line.separator");

        double valorTotal = 0.0;

        int pontosDeAlugadorFrequente = 0;

        String resultado = "Registro de Alugueis de " + getNome() + fimDeLinha;

        for (Aluguel f : fitasAlugadas) {

            double valorCorrente = 0.0;

            Aluguel cada = f;

            // determina valores para cada linha

            // switch com enum

            switch (cada.getFita().getCódigoDePreço()) {

            case normal:

                valorCorrente += 2;

                if (cada.getDiasAlugada() > 2) {

                    valorCorrente += (cada.getDiasAlugada() - 2) * 1.5;

...

Baixar como (para membros premium)  txt (4.4 Kb)   pdf (47.4 Kb)   docx (9.5 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com