Boa noite....
Fiquei com uma duvida referente ao Open Closed, já vi alguns outros tutorias mais ainda não consegui entender 100% sua aplicação. Por exemplo neste curso temos a interface Pontuavel. Ao implementar esta interface em uma classe, nós passamos a exigir que essa classe implemente um metódo chamado recuperarPontuacao, e até ai tudo bem a final definimos exatamente o que precisavamos.
Para o meu exemplo, vou utilizar classes que não fazem parte do projeto.
Vamos supor que eu tenha a classe Post e a classe Vídeo.
Ambas implementaram a interface Pontuavel, que serve para que as mesmas recuperem suas pontuações. Porém agora vamos dizer que eu também precise pegar a duração, tanto de um Video quanto de um Post.
Como eu poderia fazer para que ambas as minhas classes Video e Post também recebam a interface "Duravel".
///////////////////////////////////////// class Post implements Pontuavel { public function __construct(private string $nome, private int $duracao) { }
public function recuperarPontuacao(): int
{
return 100;
}
}
class Video implements Pontuavel { public function __construct(private string $nome, private int $duracao) { }
public function recuperarPontuacao(): int
{
return 200;
}
} //////////////////////////////////////////////////////