Separated Interface Pattern

  1. Motivation
    1. Defines an interface in a separate package from its implementation.
  2. Summary
    1. Define an interface in one package but implement it in another.
    2. This way a client that needs the dependency to the interface can be completely unaware of the implementation. 
    3. The Separated Interface provides a good plug point for Gateway.
    4. Interface implementation can be provided either at compile time or at Runtime using Plugin.
    5. This is mainly a base pattern for packing of implementation and interface binaries.
  3. References