Verhältnis zu Design by Contract
Constraint-Code-Generator
void xxxMethod(
final ORB_Z_N_ORE constraint )
{
constraint.new EbeneSwitch(){
protected void doZ( ZConstraint constraint ) {
...Code (???Black Box???)...
}
protected void doN( NConstraint constraint ) {
...Code (???Black Box???)...
}
}.doSwitch();
}
In der Methode wird der sichere Switch aufgerufen.
Alle Zweige, die sich aus dem ursprünglichen
Constraint ergeben, müssen implementiert sein.
Die Bodies der case-Methoden bleiben Black Boxes
(Prinzip rekursiv anwendbar)
Der Body der Hauptmethode ist etwas
transparenter (grau).