Allgemein

Interface Segregation Principle

Die Kernaussage des Interface Segregation Principles – ISP (dt. Schnittstellenaufteilungsprinzip ) ist, dass Schnittstellen keine Methoden enthalten sollen, die von implementierenden Klassen nicht verwendet werden (können).

Eine einsame Katze

Ausgangspunkt ist die Klasse Katze. Sie enthält Methoden zum Essen, Miauen und zerstören von teuren Dingen, das was Katzen nun mal so anstellen.

UML


Cat Class

C#

    public class Cat
    {
        public void Eat()
        {
            //eat some nice fish
        }

        public void MakeSound()
        {
            //MEOW!
        }

        public void ThrowDown(object expensiveObject)
        {
            //Destroy object by accelerating it towards the ground
        }
    }

JAVA

Liskov Substituion Principle

Einführung

1987 wurde das Liskov Substituion Principle (LSP), oder zu deutsch Liskovsche Substitutionsprinzip, von Barbara Liskov vorgestellt. Es ist eine spezielle Regelung für Subtypisierung von Klassen und besagt:

Ein Programm, das Objekte einer Basisklasse verwendet muss auch mit davon abgeleiteten Klassen funktionieren ohne, dass das die Funktion eingeschränkt wird.

Ist-Eine-Beziehung

Wird eine neue Klasse von einer bestehenden Klasse abgeleitet, erbt die neue Klasse sämtliche Eigenschaften und Methoden. Neue Methoden und Eigenschaften werden dann zu den bestehenden hinzugefügt und können auf diese zugreifen. Hierbei spricht man meist von einer Ist-Eine-Beziehung. Beispielsweise wäre die Klasse Cat von der Basisklasse Animal abgeleitet. Die Beziehung würden dann „Eine Katze ist ein Tier“ lauten und damit die Ableitung begründen.