User Tools

Site Tools


glossary:interface

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
glossary:interface [2013-08-11 10:51]
christian +talk
glossary:interface [2020-12-10 08:40] (current)
95.216.172.175 old revision restored (2013-05-27 13:53)
Line 1: Line 1:
-====== Interface ====== +====== Interface (Concept) ====== 
- +===== 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 18: Line 15:
   * 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 34: Line 31:
   * [[Service Provider Interface]] (SPI)   * [[Service Provider Interface]] (SPI)
  
-==== Further Reading ====+===== Further Reading =====
   * [[wp>Interface (computing)]]   * [[wp>Interface (computing)]]
  
  
 ---- ----
-===== Meaning 2: Interface as a Language Construct ===== +=====Interface (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>]]: + 
-<code java> +===== Alternative Definitions =====
-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 Meanings =====+====== Other Uses ======
 /*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.1376211100.txt.gz · Last modified: 2013-08-11 10:51 by christian