• Adapter
    • Turn one or multiple interfaces into another. Just like a Lightning to MicroUSB adapter, but in software.
  • Facade
    • Wrap one or multiple complex interfaces with a high-level, easy-to-use one.
  • Examples
    • Adapt two types of data storage (in-memory, CouchDB) interfaces to the following one.

      interface DataAdapter {
        getData: (id: string | number, callback: (error: any, data: any) => void) => void
        storeData: (id: string | number, data: any, callback: (error: any) => void) => void
      }