Table of Contents

Customizing von Modular Component Interfaces

Da es sich bei Interfaces um Contracts handelt, können diese nicht customized werden. Allerdings gibt es durch Interface-Vererbung die Möglichkeit im Customizing Interfaces zu erweitern.

Das sieht dann folgendermaßen aus:

Die Klasse Something aus der Basis implementiert das Interface ISomething. Die customized Klasse Cust_Something kann im Customizing einfach um ein Property oder eine Methode erweitert werden. Aber über das Interface sind diese Member nicht erreichbar.

Die Lösung ist, ein neues Interface ISomethingCust zu erstellen, das vom Interface ISomething aus der Basis erbt. Die Klasse Cust_Something implementiert nun dieses Interface. Das heißt an der Modularen Component muss im Textfeld Interface der FullName von ISomethingCust stehen.

classDiagram
    ISomething <|-- ISomethingCust
    ISomething <|.. Something
    ISomethingCust <|.. Cust_Something
    Something <|-- Cust_Something

    class ISomething {
        +int Property
        +Method()
    }

    class ISomethingCust {
        +string PropertyCust
        +MethodCust()
    }

    class Something {
        // implements ISomething
    }

    class Cust_Something {
        // inherits Something
        // implements ISomethingCust
    }

Durch dieses Konstrukt kann im Customizing an den Stellen, an denen z.B. auf das ISomething gecastet wird, zusätzlich auf das ISomethingCust gecastet werden, um auf die erweiterten Member zugreifen zu können. Die Klasse Cust_Something ist also gleichzeitig ein ISomething und ein ISomethingCust. Zudem kann ISomethingCust als ISomething in Methoden aus der Basis übergeben werden, ohne Compile-Fehler zu verursachen.