Instruções

Passo 9

Como discutido na lição anterior, métodos abstratos são métodos que devem ser implementados por qualquer classe que herde da classe base abstrata. Eles servem como um contrato, garantindo que todas as estratégias de desconto terão certos métodos obrigatórios. Dentro da sua classe DiscountStrategy, defina um método chamado is_applicable. Use o decorador @abstractmethod acima da definição do método. O método deve ter os seguintes parâmetros: self, product e user_tier. Use a instrução pass no corpo do método. Adicione dicas de tipo para deixar a assinatura do método clara: product deve ser do tipo Product e user_tier deve ser do tipo str.

O que fazer:

Testes:

  • Sua classe `DiscountStrategy` deve ter um método chamado `is_applicable`.
  • Seu método `is_applicable` deve ter o decorador `@abstractmethod`.
  • Seu método `is_applicable` deve ter os parâmetros `self`, `product: Product` e `user_tier: str`.

Preview