DEV Community

Raphael da Silva
Raphael da Silva

Posted on • Edited on

POO - Contando histórias com uma interface

Criei um repositório no Github com o intuíto utilizar interfaces para mostrar que existem várias formas de contar uma história. Cada tipo de mídia é uma implementação diferente da interface MidiaParaContarHistoria criada para contar uma história independente da mídia escolhida. Segue a interface:

<?php

namespace ContarHistoria;

/**
 *
 * @author Raphael da Silva
 *
 */
interface MidiaParaContarHistoria
{

    public function contarHistoria();

}
Enter fullscreen mode Exit fullscreen mode

Como a história é contada não é importante, pois o que importa é a história ser contada e não qual tipo de mídia que será utilizada para fazer isso. O tipo de mídia é um detalhe de implementação e, portanto, não é o mais importante. O que é mais importante é o que deve ser feito: contar uma história.

Implementações

Segue a implementação da interface para contar a história com um filme:

<?php

namespace ContarHistoria\Midias;

use ContarHistoria\MidiaParaContarHistoria;

/**
 *
 * @author Raphael da Silva
 *
 */
class HistoriaEmFilme implements MidiaParaContarHistoria
{

    public function contarHistoria()
    {

        echo 'Usar um filme para contar uma história.';

    }

}
Enter fullscreen mode Exit fullscreen mode

Segue a implementação da interface para contar a história com um quadrinho:

<?php

namespace ContarHistoria\Midias;

use ContarHistoria\MidiaParaContarHistoria;

/**
 *
 * @author Raphael da Silva
 *
 */
class HistoriaEmQuadrinhos implements MidiaParaContarHistoria
{

    public function contarHistoria()
    {

        echo 'Usar um quadrinho (aka comicbook) para contar história.';

    }

}
Enter fullscreen mode Exit fullscreen mode

Segue a implementação da interface para contar a história com um livro:

<?php

namespace ContarHistoria\Midias;

use ContarHistoria\MidiaParaContarHistoria;

/**
 *
 * @author Raphael da Silva
 *
 */
class HistoriaEmLivro implements MidiaParaContarHistoria
{

    public function contarHistoria()
    {

        echo 'Usando um livro para contar uma história.';

    }

}

Enter fullscreen mode Exit fullscreen mode

Top comments (0)