🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

Padrões de Design: Criacionais e Estruturais
13 Questions
1 Views

Padrões de Design: Criacionais e Estruturais

Created by
@GraciousTriumph6829

Podcast Beta

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Qual é o princípio que afirma que módulos de alto nível não devem depender de módulos de baixo nível, mas ambos devem depender de abstrações?

  • Princípio da Substituição de Liskov
  • Princípio da Responsabilidade Única
  • Princípio da Inversão de Dependência (correct)
  • Princípio da Segregação de Interfaces
  • Qual padrão comportamental permite que um objeto altere seu comportamento com base em seu estado interno?

  • Estratégia
  • Observador
  • Comando
  • Estado (correct)
  • Qual padrão define uma dependência de um para muitos entre objetos, de forma que a mudança de estado de um objeto notifica automaticamente seus dependentes?

  • Comando
  • Observador (correct)
  • Encadeamento de Responsabilidade
  • Estratégia
  • O que é encapsulado pelo padrão Comando em um objeto?

    <p>Uma solicitação</p> Signup and view all the answers

    Qual dos seguintes padrões de comportamento permite que algoritmos variem independentemente dos clientes que os utilizam?

    <p>Estratégia</p> Signup and view all the answers

    Qual padrão de criação é utilizado para assegurar que uma classe tenha apenas uma instância?

    <p>Singleton</p> Signup and view all the answers

    Qual é o objetivo principal do padrão Adapter?

    <p>Permitir que interfaces incompatíveis funcionem juntas</p> Signup and view all the answers

    Qual princípio SOLID afirma que uma classe deve ter apenas uma razão para mudar?

    <p>Princípio de Responsabilidade Única</p> Signup and view all the answers

    Qual padrão estrutural permite que você adicione funcionalidade a um objeto sem alterar sua estrutura?

    <p>Decorator</p> Signup and view all the answers

    Qual dos padrões de criação permite a criação de grupos de objetos relacionados sem especificar suas classes concretas?

    <p>Abstract Factory</p> Signup and view all the answers

    Qual princípio SOLID indica que os objetos de uma superclasse devem ser substituíveis por objetos de uma subclasse?

    <p>Princípio de Substituição de Liskov</p> Signup and view all the answers

    Qual padrão estrutural organiza objetos em estruturas de árvore para representar hierarquias de parte-todo?

    <p>Composite</p> Signup and view all the answers

    Qual princípio SOLID sugere que entidades de software devem ser abertas para extensão, mas fechadas para modificação?

    <p>Princípio Aberto/Fechado</p> Signup and view all the answers

    Study Notes

    Design Patterns

    Creational Patterns

    • Purpose: Focus on object creation mechanisms to create objects in a controlled manner.
    • Key Patterns:
      • Singleton: Ensures a class has only one instance and provides a global point of access to it.
      • Factory Method: Defines an interface for creating an object but lets subclasses alter the type of created objects.
      • Abstract Factory: Provides an interface for creating families of related or dependent objects without specifying their concrete classes.
      • Builder: Separates the construction of a complex object from its representation, allowing the same construction process to create different representations.
      • Prototype: Creates new objects by copying an existing object, known as the prototype.

    Structural Patterns

    • Purpose: Deal with object composition to form larger structures and ensure they work together.
    • Key Patterns:
      • Adapter: Allows incompatible interfaces to work together by converting the interface of a class into another interface clients expect.
      • Decorator: Adds new functionality to an existing object without altering its structure.
      • Facade: Provides a simplified interface to a complex subsystem, making it easier to use.
      • Bridge: Decouples an abstraction from its implementation, allowing the two to vary independently.
      • Composite: Composes objects into tree structures to represent part-whole hierarchies, allowing clients to treat individual objects and compositions uniformly.

    SOLID Principles

    • Purpose: Set of five principles aimed at improving software design, promoting maintainability and scalability.
    • Principles:
      • Single Responsibility Principle (SRP): A class should have one and only one reason to change, meaning it should only have one job or responsibility.
      • Open/Closed Principle (OCP): Software entities should be open for extension but closed for modification, allowing behavior to be extended without altering existing code.
      • Liskov Substitution Principle (LSP): Objects of a superclass should be replaceable with objects of a subclass without affecting the correct functioning of the program.
      • Interface Segregation Principle (ISP): Clients should not be forced to depend on interfaces they do not use, promoting smaller, more specific interfaces.
      • Dependency Inversion Principle (DIP): High-level modules should not depend on low-level modules; both should depend on abstractions, reducing coupling between components.

    Behavioral Patterns

    • Purpose: Concerned with algorithms and the assignment of responsibilities between objects.
    • Key Patterns:
      • Chain of Responsibility: Passes a request along a chain of handlers, allowing multiple objects to handle the request without the sender needing to be coupled to the handler.
      • Observer: Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
      • Strategy: Defines a family of algorithms, encapsulates each one, and makes them interchangeable, allowing algorithms to vary independently from clients that use them.
      • Command: Encapsulates a request as an object, thereby allowing for parameterization of clients with queues, requests, and operations.
      • State: Allows an object to alter its behavior when its internal state changes, appearing to change its class.

    Padrões de Projeto

    • Objetivo: Fornecer soluções reutilizáveis para problemas comuns de design de software, promovendo flexibilidade, manutenabilidade e extensibilidade.

    Padrões de Criação

    • Objetivo: Concentrar-se em mecanismos de criação de objetos, controlando o processo de instanciação.

    Padrões-chave de criação:

    • Singleton: Garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a ela.
    • Método de Fábrica: Define uma interface para a criação de um objeto, mas permite que subclasses alterem o tipo de objetos criados.
    • Fábrica Abstrata: Fornece uma interface para a criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.
    • Construtor: Separa a construção de um objeto complexo de sua representação, permitindo que o mesmo processo de construção crie diferentes representações.
    • Protótipo: Cria novos objetos copiando um objeto existente, conhecido como protótipo.

    Padrões Estruturais

    • Objetivo: Lidar com a composição de objetos para formar estruturas maiores e garantir que elas funcionem juntas.

    Padrões-chave estruturais:

    • Adaptador: Permite que interfaces incompatíveis trabalhem juntas convertendo a interface de uma classe em outra interface esperada pelos clientes.
    • Decorador: Adiciona novas funcionalidades a um objeto existente sem alterar sua estrutura.
    • Fachada: Fornece uma interface simplificada para um subsistema complexo, tornando-o mais fácil de usar.
    • Ponte: Desacopla uma abstração de sua implementação, permitindo que ambas variem independentemente.
    • Composto: Compõe objetos em estruturas de árvore para representar hierarquias de parte-todo, permitindo que clientes tratem objetos individuais e composições uniformemente.

    Princípios SOLID

    • Objetivo: Conjunto de cinco princípios que visam melhorar o design de software, promovendo manutenabilidade e escalabilidade.

    Princípios SOLID:

    • Princípio da Responsabilidade Única (SRP): Uma classe deve ter apenas uma e única razão para mudar, ou seja, deve ter apenas uma função ou responsabilidade.
    • Princípio Aberto/Fechado (OCP): Entidades de software devem ser abertas para extensão, mas fechadas para modificação, permitindo que o comportamento seja estendido sem alterar o código existente.
    • Princípio da Substituição de Liskov (LSP): Objetos de uma superclasse devem ser substituíveis por objetos de uma subclasse sem afetar o funcionamento correto do programa.
    • Princípio da Segregação de Interface (ISP): Os clientes não devem ser forçados a depender de interfaces que não usam, promovendo interfaces menores e mais específicas.
    • Princípio da Inversão de Dependência (DIP): Módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações, reduzindo o acoplamento entre componentes.

    Padrões Comportamentais

    • Objetivo: Preocupar-se com algoritmos e a atribuição de responsabilidades entre objetos.

    Padrões-chave comportamentais:

    • Cadeia de Responsabilidade: Passa uma solicitação ao longo de uma cadeia de manipuladores, permitindo que vários objetos manipulem a solicitação sem que o remetente seja acoplado ao manipulador.
    • Observador: Define uma dependência de um para muitos entre objetos, de modo que, quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.
    • Estratégia: Define uma família de algoritmos, encapsula cada um e os torna intercambiáveis, permitindo que os algoritmos variem independentemente dos clientes que os utilizam.
    • Comando: Encapsula uma solicitação como um objeto, permitindo assim a parametrização de clientes com filas, solicitações e operações.
    • Estado: Permite que um objeto altere seu comportamento quando seu estado interno muda, aparecendo para mudar sua classe.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Teste seus conhecimentos sobre Padrões de Design, focando nos padrões creacionais e estruturais. Aprenda sobre Singleton, Factory Method, e Adapter, entre outros, e como eles ajudam na criação e composição de objetos em projetos de software.

    More Quizzes Like This

    Software Design Patterns
    10 questions
    Patrones de Diseño en Software
    6 questions
    Design Patterns en Java
    37 questions

    Design Patterns en Java

    ArdentMannerism6466 avatar
    ArdentMannerism6466
    Use Quizgecko on...
    Browser
    Browser