2
respostas

[Reclamação] Orientação incorreta sobre a declaração do método para listar restaurantes dentro da classe

Um ponto fundamental da programação orientada a objetos: a responsabilidade de uma classe.

A melhor prática é que o método lista_restaurantes() seja colocado fora da classe Restaurante.

Por que fora da classe?
A classe Restaurante deve ser responsável apenas por representar um único restaurante. Seus atributos (nome, endereço etc) e métodos devem se referir às características e comportamentos de uma instância individual.

Se você colocar o método lista_restaurantes() dentro da classe, estará violando o princípio de responsabilidade única. A classe passaria a ter duas responsabilidades:

Gerenciar as características de um restaurante individual.

Gerenciar a coleção de todos os restaurantes.

Isso pode levar a um design confuso e difícil de manter.

Onde colocar o método, então?
A solução mais comum e elegante é criar um gerenciador de restaurantes, que pode ser outra classe ou uma função simples.

Opção 1: Usando uma lista global e uma função
Essa é a abordagem mais direta para o seu problema. Você pode criar uma lista fora da classe para armazenar todos os objetos, e uma função para imprimi-los.

Acredito que o curso deveria reforçar as boas prátiacas de OO já que o tema é justamente Python com OO, nesse ponto eu acredito que essa seja uma oportunidade de melhoria do conteúdo.

2 respostas

Oi colega! bom demais sua contribuição, obrigado!

Obrigado colega! A ideia é contribuir para melhorar o que já bom, né?

Seguir o caminho correto desde o começo evita muitos vícios difíceis de corrigir depois.

Abs