Pacotes, Interfaces e Refatoração: Conceitos e Exemplos
Classificado em Computação
Escrito em em português com um tamanho de 4,79 KB.
- Pacotes são criados para organizar o código e evitar conflitos entre classes com o mesmo nome, facilitando assim a localização dos códigos.
- Qual característica do paradigma Orientado a Objetos foi usada principalmente nesse exemplo?O uso de interfaces, um modelo de como a classe deve se comportar, onde as classes que implementam uma interface devem obrigatoriamente implementar os métodos contidos na interface.
- Qual é a diferença entre programar para interfaces e programar para classes concretas? Há algum princípio de projeto aplicado nesse contexto?Quando se programa para interface, é utilizada uma lógica mais abrangente que pode ser facilmente alterada no futuro, caso a regra seja mudada. Programar para classes concretas torna as mudanças mais difíceis de serem realizadas. O princípio de projeto aplicado nesse contexto é o princípio da inversão de dependência.
- No que se refere à arquitetura da aplicação (divisão de camadas), explique como a aplicação foi separada. É possível abstrair algum padrão de projeto nesse sentido?A aplicação foi separada em três camadas: a camada cliente ou interface (TesteOperações), a fachada (Operações) que é a classe que faz a ligação entre a camada de negócio e a camada de cliente, e a camada de negócio (IOperaçoes, Soma, Produto). É possível abstrair o padrão de projeto Facade nesse sentido.
- Com relação à herança, há desvantagens em usá-la? Justifique.Sim, ao utilizar herança, temos o problema de alto acoplamento. As subclasses herdam atributos que não precisariam ser implementados.
- Explique o código: calendario = Calendar.getInstance(); Calendar é uma classe padrão do Java que é abstrata, portanto não pode ser instanciada. Para usar o calendário, é necessário usar o método estático getInstance().
- O que é um método estático?É um método que pode ser chamado a partir da classe, sem necessidade de criar um objeto para executar esse método.
- Em termos de coesão, os métodos gerados após a refatoração foram devidamente bem implementados? Justifique.Sim, agora foi definida apenas uma responsabilidade para cada método. O primeiro método possui apenas um único objetivo. O segundo se preocupa com a impressão dos dados. Os métodos possuem alta coesão e respeitam o princípio de única responsabilidade.
- Quando deve ser usada a refatoração de extração de método?A extração de método deve ser aplicada quando ocorrer duplicação de linhas de código ou quando as operações que são realizadas forem muito longas.
- É possível refatorar um método existente criando outro(s) método(s) a partir deste? Quando isso deve ser implementado?Sim, é possível. Isso deve ser implementado quando o método existente executa várias responsabilidades e é muito extenso.
- Por que refatorar trechos de códigos de modo a criar constantes e variáveis locais?Para deixar o código mais fácil de manter e melhorar a capacidade de leitura do código.
- Por que foi sugerida a refatoração de extração de método na questão 15?Para diminuir a responsabilidade do método main e melhorar a organização do código.
- Definir refatoração.É o processo de modificar um sistema para melhorar a estrutura interna do código sem alterar seu comportamento externo.
- Quais foram as refatorações correspondentes à formatação do código?Foi preciso fazer a indentação do código, pois o mesmo se encontrava sem nenhuma indentação. Também foi realizado espaçamento vertical entre os códigos.