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 revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
glossary:interface [2020-10-12 17:18] – old revision restored (2013-06-14 15:47) 159.69.186.191glossary:interface [2020-12-10 08:40] – old revision restored (2013-05-27 13:53) 95.216.172.175
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. 
glossary/interface.txt · Last modified: 2021-10-20 20:14 by christian