Girish Mahajan (Editor)

Public interface

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

A public interface is the logical point at which independent software entities interact. The entities may interact with each other within a single computer, across a network, or across a variety of other topologies. It is important that public interfaces be stable and designed to support future changes, enhancements, and deprecation in order for the interaction to continue.

Contents

Guidance

  • A project must provide additional documents that describe plans and procedures that can be used to evaluate the project’s compliance.
  • Provide an architecture design document.
  • Provide a coding standards document.
  • Provide a software release plan document.
  • Provide a document with a plan for deprecating obsolete interfaces.
  • Create fully insulated classes.
  • Insulate public interfaces from compile-time dependencies.
  • Best practices

  • Present complete and coherent sets of concepts to the user.
  • Design interfaces to be statically typed.
  • Minimize the interface’s dependencies on other interfaces.
  • Express interfaces in terms of application-level types.
  • Use assertions only to aid development and integration.
  • Examples

  • C++ interface
  • References

    Public interface Wikipedia