Filtrar


Questões por página:
Os princípios da orientação a objetos são importantes para a análise e projeto de sistemas, permitindo uma melhor organização e reutilização do código. Entre os princípios, destacam-se a abstração, encapsulamento, herança e polimorfismo. Marque a opção que define, corretamente, um desses princípios.
O conceito do padrão de projeto aplicado a software fornece um meio de auxiliar os desenvolvedores a alavancar o conhecimento de outros arquitetos talentosos e experientes.
No livro “Design Patterns: Elements of Reusable Object-Oriented Software”, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides introduzem os princípios de padrões de projetos e fornecem um catálogo bastante utilizado por desenvolvedores de software. Os padrões são conhecidos como Padrões GoF (Gang of Four), em referência aos quatro autores do livro.
Imagem associada para resolução da questão
O diagrama de sequência acima ilustra as colaborações entre objetos que possibilitam implementar qual padrão GoF?
Princípios de projeto são recomendações concretas que desenvolvedores de software devem seguir para atender às propriedades de coesão, acoplamento, ocultamento de informação e extensibilidade de um projeto. Considere o código a seguir:

class Financeiro {  void calculaImpostoDeRenda() {  // cálculo do imposto  }  void geraRelatorioPDF() {  // código para gerar PDF  } }


Segundo os princípios de projeto conhecidos como S.O.L.I.D., o código mencionado acima viola o princípio:
As classes, bem como os seus objetos, contêm atributos e métodos que estão intimamente relacionados. Os objetos podem se comunicar entre si, mas eles, em geral, não sabem como outros objetos são implementados, uma vez que os detalhes de implementação permanecem ocultos dentro dos próprios objetos. Assinale a alternativa que apresenta corretamente o nome desse ocultamento de informações, crucial na boa prática da engenharia de software.

Sobre o uso de interfaces em orientação a objetos, podemos afirmar que:


I. evita que alterações de código em determinados componentes do sistema sejam refletidas por todo o sistema.

II. representa um contrato entre componentes do sistema.

III. permite a utilização das implementações das classes concretas ao invés da utilização das classes abstratas.


Está(ão) CORRETA(S), apenas, a(s) proposição(ões)