Trabalho POO ISCTE 2018
16 Março, 2018
Projeto POO ISCTE 2018/2019
21 Outubro, 2018

Pontos a melhorar nos trabalhos de POO ISCTE

J á saíram as notas da primeira entrega do trabalho de POO do ISCTE. Não sendo a entrega final, estas notas são apenas indicativas e têm como objectivo dar a possibilidade ao aluno de melhorar alguns aspectos do seu projecto.

Nesta avaliação houve alguns comentários frequentes que deixo abaixo algumas dicas para melhorarem:

  • Código demasiado concentrado na classe Farm – Devem evitar que a classe Farm fique muito extensa. Tudo o que sejam funcionalidades de determinado objecto, devem estar nele. Por exemplo a mudança de estados (de verde para maduro e posteriormente para podre), a movimentação dos elementos e o resultado das interacções. Na classe Farm apenas chamam/invocam as funções respectivas, em vez de as implementar na totalidade nesta classe;

  • Não utilização de interfaces – apesar do pacote inicial disponibilizado pelos professores já conter o uso de interfaces, é necessário utilizar mais. A sugestão dada pelos Professores é o uso das interfaces Interactable e Updatable. Uma interface consiste numa “classe” que contem apenas a declaração das operações que vão existir nas classes que a implementam. A sintaxe de uma interface é bastante simples:

    public interface Updatable{
    }
    

    Posteriomente é necessário especificar que classes vão implementar a interface:

    public class Vegetable extends FarmObject implements Updatable{
    }
    
  • Tirar melhor partido da herança – um dos objectivos da utilização de herança é o de evitar alguma repetição de código. Tudo o que sejam atributos e métodos que vão ser partilhados por mais de um objecto, devem estar na classe base. Por exemplo todos os vegetais vão ter um atributo que especifica se este já foi cuidado ou não. Este atributo pode estar definido apenas na classe Vegetable, em vez de estar definido individualmente em cada vegetal;

Estes foram os comentários mais comuns feitos pelos Professores. Alguma dúvida adicional digam.

//]]>