Veřejné rozhraní - Public interface

A veřejné rozhraní je logický bod, ve kterém nezávislé softwarové entity interagují. Entity mohou vzájemně interagovat v rámci jednoho počítače, v síti nebo v celé řadě dalších topologií. Aby mohla interakce pokračovat, je důležité, aby veřejná rozhraní byla stabilní a navržená tak, aby podporovala budoucí změny, vylepšení a ukončení podpory.


Design

Vedení

  • Projekt musí poskytnout další dokumenty popisující plány a postupy, které lze použít k vyhodnocení souladu projektu.
  • Poskytněte dokument návrhu architektury.
  • Poskytněte dokument standardů kódování.
  • Poskytněte dokument s plánem vydání softwaru.
  • Poskytněte dokument s plánem na ukončení zastaralých rozhraní.
  • Vytvořte plně izolované třídy.
  • Izolovat veřejná rozhraní od závislostí při kompilaci.

Osvědčené postupy

  • Představte uživateli úplné a koherentní sady konceptů.
  • Navrhněte rozhraní, která se mají staticky psát.
  • Minimalizujte závislosti rozhraní na jiných rozhraních.
  • Express rozhraní z hlediska typů na úrovni aplikace.
  • Použijte tvrzení pouze k podpoře rozvoje a integrace.

Příklady

  • C ++ rozhraní
K definování veřejných rozhraní použijte třídy protokolu.
Vlastnosti třídy protokolu jsou:
  • Neobsahuje ani nedědí z tříd, které obsahují členská data, nevirtuální funkce nebo soukromé (nebo chráněné) členy jakéhokoli druhu.
  • Má nelineární virtuální destruktor definovaný s prázdnou implementací.
  • Všechny členské funkce jiné než destruktor, včetně zděděných funkcí, jsou deklarovány jako čisté virtuální a zůstávají nedefinované.
Výhody
Mezi výhody používání tříd protokolu patří:
  • Izolace aplikací od externího klienta
  • Izolační změny, které jsou interní v rozhraní
  • Izolační změny veřejného rozhraní od změn po implementaci rozhraní
  • Izolace má náklady, ale ty mají tendenci být vyváženy zisky v interoperabilitě a opětovném použití.
Náklady:
  • Prochází ukazatelem implementace
  • Přidání jedné úrovně indirection na každý přístup
  • Přidání velikosti ukazatele implementace na objekt k požadavkům na paměť

Reference

  • Různé metodiky, jako např refaktorování, podporovat určování rozhraní. Refaktoring se obecně vztahuje na celou implementaci softwaru, ale je obzvláště užitečný při správném vypláchnutí rozhraní.
  • Existují další přístupy definované prostřednictvím vzorové komunity. Tyto metodiky můžete získat od vzorové komunity na adrese [1].
  • Viz „Java Design: Building Better Apps & Applets“, kde najdete dobrou úvodní metodiku, která platí také pro komunitu C / C ++.