Onde eu uso Interfaces?

Uma explicação simples sobre o uso de interfaces na linguagem de programação PHP.

As interfaces são utilizadas quando você precisa ter certeza de que um objeto responde a determinados métodos, independente de que tipo ele seja.

Exemplo: garantindo que um objeto possa ser tributado

No artigo sobre o Princípio do Aberto/Fechado, vimos uma classe chamada de impostômetro, que é responsável por somar o valor dos impostos dos objetos que ela recebe (remédios, cosméticos, serviços diversos, etc.).

  1. Definindo que quem implementa essa interface tem que escrever um método getValorImpostos();
  2. Obrigando o argumento $item do método somar() a ser um objeto do tipo Tributavel (indução de tipo).

O que acontece quando violo a interface?

Se eu crio uma classe implementando a interface Tributavel e esqueço de implementar o método getValorImpostos(), o PHP cospe um erro fatal:

Interfaces vs métodos abstratos

Interfaces funcionam de uma forma muito parecida com classes e métodos abstratos. A diferença é que uma classe pode implementar várias interfaces, mas só pode estender uma única classe-mãe.

  • Quando preciso implantar mais de uma interface;
  • Quando favoreço o uso de composição ao invés de herança.

Written by

Software development nerd. In 💙 with Ruby, PHP, JavaScript, Crystal, and other techy stuff.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store