Extrair Interface.
Vários clientes estão usando a mesma parte da interface de uma classe. Outro caso: parte da interface em duas classes é idêntica.
Mova essa porção idêntica para sua própria interface.
##Example
##Why Refactor
-
Interfaces são muito adequadas quando classes desempenham papéis especiais em diferentes situações. Use Extrair Interface para indicar explicitamente qual papel.
-
Outro caso conveniente surge quando você precisa descrever as operações que uma classe realiza em seu servidor. Se for planejado permitir, no futuro, o uso de servidores de múltiplos tipos, todos os servidores devem implementar a interface.
##How to Refactor
-
Crie uma interface vazia.
-
Declare as operações comuns na interface.
-
Declare as classes necessárias como implementadoras da interface.
-
Altere as declarações de tipo no código cliente para usar a nova interface.