Patterns


About


Design patterns



DefinitionExampleLinks
AdapterEnable incompatible interfaces to interoperatePlug an older object into a newer systemAdapter vs Bridge
Wikipedia
BridgeEnable separation by connecting heirarchies of classes to enable both to vary independently
(avoids a combinatorial explosion as well)
  • recommended - avoid compile time dependency between the two
  • ^programmatic definition, no client/server conceptualisation
Shapes and Drawing APIs, Devices and PlatformsAdapter vs Bridge
Wikipedia
Gateway

Either API gateway (by service provider) or application gateway (by client)

  • minimise latency in calls to subsystems by centralising it in one place
  • can play an orchestration role
  • handle cross-cutting concerns across subsystems
  • translate vocabularies between client and service
  • can be adapter, facade, mediator

Fowler
FacadeSimplified interface to a complex systemHigher level entry point to e.g. posix serial apiWikipedia
ProxySubstitute or extend a real object's interfaceMocking a robot system for simulationWikipedia