Public interface

Public interface

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.

Design

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::Use protocol classes to define public interfaces.::The characteristics of a protocol class are:::*It neither contains nor inherits from classes that contain member data, non-virtual functions, or private (or protected) members of any kind.::*It has a non-inline virtual destructor defined with an empty implementation.::*All member functions other than the destructor, including inherited functions, are declared pure virtual and left undefined.::Benefits::*The benefits of using protocol classes include:::*Insulating applications from the external client::*Insulating changes that are internal to the interface::*Insulating changes to the public interface from changes to the implementation of the interface::*Insulation has costs, but these tend to be outweighed by the gains in interoperability and reusability.::Costs:::*Going through the implementation pointer::*Addition of one level of indirection per access::*Addition of the size of the implementation pointer per object to memory requirements

References

*Various methodologies, such as refactoring, support the determination of interfaces. Refactoring generally applies to the entire software implementation, but is especially helpful in properly flushing out interfaces.
*There are other approaches defined through the pattern community. You can obtain these methodologies from the pattern community at [http://hillside.net/patterns/] .
*See "Java Design: Building Better Apps & Applets" for a good introductory methodology that also applies to the C/C++ community.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Interface (Java) — An interface in the Java programming language is an abstract type that is used to specify an interface (in the generic sense of the term) that classes must implement. Interfaces are declared using the interface keyword, and may only contain… …   Wikipedia

  • Public Land Mobile Network — Le Réseau Terrestre Mobile Public (littéralement Public Land Mobile Network ou PLMN en anglais), plus couramment appelé réseau mobile , désigne un réseau de télécommunications qui permet aux utilisateurs autorisés d accéder à différents services… …   Wikipédia en Français

  • Interface Builder — Développeur Apple Dernière version Int …   Wikipédia en Français

  • Public Netbase — (Public) Netbase wurde 1994 vom Wiener Institut für neue Kulturtechnologien/t0 als Netzkulturinstitution ins Leben gerufen und bot dem Kunst und Kulturbereich eine Plattform für eine selbstbestimmte Nutzung von neuen Medien. An der Schnittstelle… …   Deutsch Wikipedia

  • Interface En Ligne De Commande — Une interface en ligne de commande est une interface homme machine dans laquelle la communication entre l utilisateur et l ordinateur s effectue en mode texte : l utilisateur tape du texte au clavier pour demander à l ordinateur d effectuer… …   Wikipédia en Français

  • interface — The use of this word was transformed between the publication of the original OED entry in 1901 and that of the updated entry in OED2 in 1989. To the earlier editors it meant simply ‘a surface lying between two portions of matter or space, and… …   Modern English usage

  • Interface Réseau — Dans le domaine des télécommunications et des communications informatiques, le terme Interface réseau peut signifier : La partie qui assure la connexion entre un terminal utilisateur et un réseau public ou privé La carte réseau d un… …   Wikipédia en Français

  • Interface reseau — Interface réseau Dans le domaine des télécommunications et des communications informatiques, le terme Interface réseau peut signifier : La partie qui assure la connexion entre un terminal utilisateur et un réseau public ou privé La carte… …   Wikipédia en Français

  • Interface neuronale directe — Pour les articles homonymes, voir IND et BCI. Schéma d une interface neuronale directe Une interface neuronale directe aussi appelée IND ou BCI …   Wikipédia en Français

  • Public land mobile network — In telecommunication, a public land mobile network (PLMN) is a network that is established and operated by an administration or by a recognized operating agency (ROA) for the specific purpose of providing land mobile telecommunications services… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”