Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Interface-Segregation-Prinzip – Wikipedia
Interface-Segregation-Prinzip – Wikipedia
aus Wikipedia, der freien Enzyklopädie

Das Interface-Segregation-Prinzip oder Schnittstellenaufteilungsprinzip ist ein Begriff aus der Informatik. Es handelt sich um ein Prinzip des objektorientierten Entwurfs. Demnach sollen zu große Schnittstellen in mehrere Schnittstellen aufgeteilt werden, falls implementierende Klassen unnötige Methoden haben müssen. Nach erfolgreicher Anwendung dieses Entwurfprinzips müsste ein Modul, das eine Schnittstelle benutzt, nur diejenigen Methoden implementieren, die es auch wirklich braucht.

Zweck

[Bearbeiten | Quelltext bearbeiten]

Durch dieses Prinzip ist es möglich, die von Bertrand Meyer geforderten schlanken Schnittstellen zu realisieren, was eine verbesserte Wartbarkeit mit sich bringt, da Klassen nur noch die Methoden implementieren, die sie benötigen. Somit wird der Code kompakt und ist besser wiederverwertbar. Auch eine verbesserte Überprüfbarkeit ist gegeben.[1]

Beispiele

[Bearbeiten | Quelltext bearbeiten]

C#

[Bearbeiten | Quelltext bearbeiten]
public interface IPerson
{
    int Id { get; }
    string FirstName { get; }
    string LastName { get; }
    // Andere Eigenschaften...
}

public interface ILoad
{
    void Load(string path);
}

public interface ISave
{
    void Save(string path);
}

public interface IToXmlString()
{
    string ToXmlString();
}

public class Person : IPerson, ILoad, ISave, IToXmlString
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    // Andere Eigenschaften...
    
    public void Load(string path)
    {
        // Lesen der Daten aus der Datei...
    }
    
    public void Save(string path)
    {
        // Speichern der Daten in die Datei...
    }
    
    public string ToXmlString()
    {
        // Zurückliefern der Daten als XML-Zeichenkette...
        string xmlString = "...";
        return xmlString;
    }
}
Anwendung
[Bearbeiten | Quelltext bearbeiten]
// Irgendwo in eine andere Klassen/Code-Datei...
IPerson person = GetPersonById(123);

// Die Daten der Person (Eigenschaften) sollen aus einer Datei geladen werden.
(person as ILoad).Load(@"C:\dir1\file1.ext");

// Später soll die Daten der Person in einer Datei gespeichert werden.
(person as ISave).Save(@"C:\dir2\file2.ext");

// Etwas weiter im Code soll person als XML string bearbeitet werden.
string xml = (person as IToXmlString).ToXmlString();

Java

[Bearbeiten | Quelltext bearbeiten]
interface IPerson {
    int getId();
    void setId(int id);
    
    String getFirstName();
    void setFirstName(String firstName);
    
    String getLastName();
    void setLastName(String lastName);
    // Andere Eigenschaften...
}

interface ILoad {
    void load(String path);
}

interface ISave {
    void save(String path);
}

interface IToXmlString {
    String toXmlString();
}

class Person implements IPerson, ILoad, ISave, IToXmlString {
    private int id;
    private String firstName;
    private String lastName;
    // Andere Eigenschafts-Variablen...
    
    @Override
    public int getId() { return id; }
    @Override
    public void setId(int id) { this.id = id; }
    
    @Override
    public String getFirstName() { return firstName; }
    @Override
    public void setFirstName(String firstName) { this.firstName = firstName; }
    
    @Override
    public String getLastName() { return lastName; }
    @Override
    public void setLastName(String lastName) { this.lastName = lastName; }
    // Andere Eigenschaften...
    
    @Override
    public void load(String path) {
        // Lesen der Daten aus der Datei...
    }
    
    @Override
    public void save(String path) {
        // Speichern der Daten in die Datei...
    }
    
    @Override
    public String toXmlString() {
        // Zurückliefern der Daten als XML-Zeichenkette...
        String xmlString = "...";
        return xmlString;
    }
}
Anwendung
[Bearbeiten | Quelltext bearbeiten]
// Irgendwo in eine andere Klassen/Code-Datei...
IPerson person = getPersonById(123);

// Die Daten der Person (Eigenschaften) sollen aus einer Datei geladen werden.
((ILoad) person).load("C:\\dir1\\file1.ext");

// Später soll die Daten der Person in einer Datei gespeichert werden.
((ISave) person).save("C:\\dir2\\file2.ext");

// Etwas weiter im Code soll person als XML string bearbeitet werden.
String xml = ((IToXmlString)person).toXmlString();

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Wolfgang Kowarschick: Programmierprinzipien: Interface-Segregation-Prinzip, Interface segregation principle. GlossarWiki der Hochschule Augsburg (HSA), 23. Februar 2012, archiviert vom Original am 27. Juni 2012; abgerufen am 26. Juni 2012.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/glossar.hs-augsburg.de 
Prinzipien objektorientierten Designs
V
SOLID-Prinzipien

Single Responsibility • Open Closed • Liskovsches Substitutionsprinzip • Interface Segregation • Dependency Inversion

Weitere Prinzipien

Gesetz von Demeter • Design by Contract • Datenkapselung • Linguistic Modular Units • Self-Documentation • Uniform Access • Single Choice • Persistence Closure • Command-Query-Separation

Packaging-Prinzipien

Reuse Release Equivalence • Common Closure • Common Reuse • Acyclic Dependencies • Stable Dependencies • Stable Abstractions

Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Interface-Segregation-Prinzip&oldid=258102292“
Kategorien:
  • Softwaretechnik
  • Softwarearchitektur
  • Objektorientierte Programmierung
  • Vorgehensmodell (Software)
Versteckte Kategorie:
  • Wikipedia:Defekte Weblinks/Ungeprüfte Archivlinks 2025-07

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id