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 revisionBoth sides next revision
glossary:interface [2020-10-12 17:18] – old revision restored (2013-06-14 15:39) 159.69.186.191glossary:interface [2020-10-12 17:18] – old revision restored (2013-05-27 13:53) 159.69.186.191
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 =====
  
-==== 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 =====
   * [[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