Extraer interfaz.
Varios clientes utilizan la misma parte de la interfaz de una clase. Otro caso: parte de la interfaz de dos clases es idéntica.
Mueve esa porción idéntica a su propia interfaz.
##Example
##Why Refactor
-
Las interfaces resultan muy apropiadas cuando las clases desempeñan papeles especiales en distintas situaciones. Usa Extraer interfaz para indicar de forma explícita cuál es ese papel.
-
Otro caso conveniente surge cuando necesitas describir las operaciones que una clase realiza sobre su servidor. Si se planea permitir con el tiempo el uso de servidores de múltiples tipos, todos los servidores deben implementar la interfaz.
##How to Refactor
-
Crea una interfaz vacía.
-
Declara las operaciones comunes en la interfaz.
-
Declara que las clases necesarias implementan la interfaz.
-
Cambia las declaraciones de tipo en el código cliente para que usen la nueva interfaz.