SOLID Flashcards

1
Q

O que é SOLID?

A

É uma palavra acrônima dos 5 primeiros princípios da programação orientada a objetos e design de código.
Estes princípios facilitam no desenvolvimento de softwares, tornando-os fáceis de manter e estender.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quem foi o responsável por identificar e quem foi responsável por introduzir os 5 princípios da POO e DC(SOLID) ?

A

Identificado: Robert C Martin (2000)

Introduzido: Michael Feathers. Após observar que os cinco princípios poderiam se encaixar nesta palavra.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Para que serve o solid?

A

Visam a construção de sistemas mais:
- flexíveis
- robustos
- fáceis de manter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Os princípios SOLID podem ser aplicados a qualquer linguagem de POO. Então responda:

Quais são os conceitos de POO?

A
  • Abstração (classe e objetos)
  • Encapsulamento,
  • Herança
  • Polimorfismo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que significa o princípio S de SOLID?

A

SRP

Single Responsability Principle
(Princípio da responsabilidade única)

Uma classe deve ter 1, e somente 1, motivo para mudar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que significa o princípio O de SOLID?

A

OCP

Open Closet Principle
(princípio aberto- fechado)

Deve-se ser capaz de estender um comportamento de uma classe, sem modificá-lo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que significa o princípio L de SOLID?

A

LSP

Liskov Substitution Principle
(Princípio da substituição de Liskov)

As classes derivadas (subclasse) devem ser substituíveis por suas classes base. Por herança.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que significa o princípio I de SOLID?
🔳 ➡️▪️▫️▪️▫️▪️▫️◾️▫️◽️▪️

A

ISP

Interface Segregation Principle
(Princípio da segregação da interface)

As interfaces devem ser refinadas

E sejam específicas ao cliente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que significa o princípio D de SOLID?

A

DIP

Dependency Inversion Principle
(Princípio da inversão da dependência.)

Deve-se depender de Abstrações (interface) Não de implementações.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

SRP

Quais são os princípios da responsabilidade única ?

A
  • Classe deve ter apenas uma única responsabilidade.
  • Cada classe deve ter uma única tarefa ou funcionalidade.
  • Tornar o código mais fácil de entender testar e manter.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

OCP

O que é o princípio aberto-fechado?

A
  • As entidades de software ( classes, módulos, etc.) devem estar abertas para extensão.
  • Fechadas para modificação.
  • Significa que as mudanças no comportamento de uma entidade devem ser realizadas por meio da adição de novas funcionalidades.
  • Não pode alterar o código existente. Minimizando o impacto de mudanças no sistema.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

LSP

O que quer dizer o princípio da substituição de Liskov?

A
  • ” uma classe derivada deve ser substituível por sua classe base sem afetar a correto de programa.”
  • Significa que as classes derivadas devem seguir as mesmas regras e possuir as mesmas propriedades das classes base.
  • Garantir que o código que depende da classe base funcione corretamente quando uma classe derivada é utilizada.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

ISP

Quais são os princípios da segregação de interfaces?

A
  • as interfaces devem ser específicas e granulares, em vez de gerais e abrangentes.
  • Significa que as classes não devem ser forçadas a implementar métodos que não são necessários para sua funcionalidade.
  • Evitar a criação de interfaces pesadas e pouco flexíveis.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

DIP

Qual é o princípio da inversão de dependência?

A

As dependências devem ser invertidas de modo que as classes do Alto Nível não dependam das classes de baixo nível,

mas sim de Abstrações que definam a interface entre elas.

Significa que as dependências devem ser gerenciadas por meio de interfaces,

Reduzindo o acoplamento entre as classes e tornando o código mais fácil de modificar e testar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly