User Tools

Site Tools


glossary:interface

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
glossary:interface [2013-05-27 13:53]
2001:8d8:1fe:300:dc7d:911d:da97:87aa created
glossary:interface [2013-08-11 10:51] (current)
christian +talk
Line 1: Line 1:
-====== Interface (Concept) ====== +====== Interface ====== 
-===== Alternative Terms =====+ 
 +===== Meaning 1: Interface as a Concept ===== 
 + 
 +==== Alternative Terms ====
 /*i.e. alternative names meaning the same thing*/ /*i.e. alternative names meaning the same thing*/
  
-===== Definition =====+==== Definition ====
 An **interface** defines the interaction between certain [[modules]]. An **interface** defines the interaction between certain [[modules]].
  
-===== Description =====+==== Description ====
 Interface is a very general concept which refers to the interaction points of arbitrary modules: Interface is a very general concept which refers to the interaction points of arbitrary modules:
   * The interface of a [[class]] is defined by its public [[methods]].   * The interface of a [[class]] is defined by its public [[methods]].
Line 15: Line 18:
   * A [[graphical user interface]] is defined by buttons, menus, text boxes, and other controls.   * A [[graphical user interface]] is defined by buttons, menus, text boxes, and other controls.
  
-The interface defines how a module shall be used. There may be ways circumventing the interface and accessing internal parts of a module directly. This should be avoided ([[principels:Information Hiding/Encapsulation|IH/E]] but is sometimes done. +The interface defines how a module shall be used. There may be ways circumventing the interface and accessing internal parts of a module directly. This should be avoided ([[principels:Information Hiding/Encapsulation|IH/E]]but is sometimes done. 
  
 A module can be described as having a [[provided interface]] and a [[required interface]]. A module can be described as having a [[provided interface]] and a [[required interface]].
  
-===== Examples =====+==== Examples ====
  
  
-===== Alternative Definitions =====+==== Alternative Definitions ====
 /*i.e. slightly different definitions for basically the same thing*/ /*i.e. slightly different definitions for basically the same thing*/
  
-===== See Also =====+==== See Also ====
   * [[Module]]   * [[Module]]
   * [[Application Programming Interface]] (API)   * [[Application Programming Interface]] (API)
Line 31: Line 34:
   * [[Service Provider Interface]] (SPI)   * [[Service Provider Interface]] (SPI)
  
-===== Further Reading =====+==== Further Reading ====
   * [[wp>Interface (computing)]]   * [[wp>Interface (computing)]]
  
  
 ---- ----
-=====Interface (Language Construct) ====== +===== Meaning 2: Interface as a Language Construct ===== 
-===== Alternative Terms =====+ 
 +==== Alternative Terms ====
 /*i.e. alternative names meaning the same thing*/ /*i.e. alternative names meaning the same thing*/
  
-===== Definition =====+==== Definition ====
 An **''interface''** is a [[language construct]] of certain [[object-oriented programming languages]] resembling an [[abstract class]] without any implementation. An **''interface''** is a [[language construct]] of certain [[object-oriented programming languages]] resembling an [[abstract class]] without any implementation.
  
-===== Description =====+==== Description ==== 
 +An ''interface'' is similar to a [[class]] but does not contain any attributes or implementations---just method signatures. Typically object-oriented programming languages use ''interfaces'' in order to avoid the problems of [[multiple inheritance]], especially the [[diamond problem]]. In such languages a class can inherit from only one class but multiple interfaces. In that way there is only one implementation inherited.
  
 +There are ''interfaces'' in Java, C#, Object Pascal/Delphi and possibly also in other languages.
  
 Note that in this wiki whenever the language construct is meant (and not the concept) ''interface'' shall be written using a monospace font: ''interface'' vs. interface. Note that in this wiki whenever the language construct is meant (and not the concept) ''interface'' shall be written using a monospace font: ''interface'' vs. interface.
  
-===== Examples ===== +==== Examples ==== 
- +[[http://docs.oracle.com/javase/7/docs/api/|java.util.Collection<E>]]: 
-===== Alternative Definitions =====+<code java> 
 +public interface Collection<E> extends Iterable<E>  
 +
 +    boolean add(E e); 
 +    boolean addAll(Collection<? extends E> c) 
 +    void clear() 
 +    boolean contains(Object o) 
 +    ... 
 +
 +</code> 
 +==== Alternative Definitions ====
 /*i.e. slightly different definitions for basically the same thing*/ /*i.e. slightly different definitions for basically the same thing*/
  
-===== See Also =====+==== See Also ====
   * [[Class]]   * [[Class]]
   * [[Abstract Class]]   * [[Abstract Class]]
   * [[Mixin]]   * [[Mixin]]
  
-===== Further Reading =====+==== Further Reading ====
  
  
 ---- ----
-====== Other Uses ======+===== Other Meanings =====
 /*i.e. the same term referring to something different; put short mentions here or better add more detailed descriptions as additional sections */ /*i.e. the same term referring to something different; put short mentions here or better add more detailed descriptions as additional sections */
 +
 +  * In [[Object Pascal]] a [[unit]], i.e. a pas-file, typically contains an interface and an implementation section. The interface section lists the declarations which are visible outside the unit.
 +
 +----
 +===== Discussion =====
 +
 +Discuss this wiki article and the term on the corresponding [[talk:glossary:Interface|talk page]].
glossary/interface.1369655612.txt.gz · Last modified: 2013-05-27 13:53 by 2001:8d8:1fe:300:dc7d:911d:da97:87aa