|   Softwaredesign: Beispiel: Prototyp |  | 
| import java.awt.Color; interface Figur {     Figur klonen();     void skalieren(int c);     void skalieren(int cx, int cy);     void verschieben(int dx, int dy);     void setzeRandFarbe(Color f);     void setzeFuellFarbe(Color f); } | 
| import java.awt.Color; public class Rechteck implements Figur {   int x = 0;   int y = 0;   int b = 1;   int h = 1;   int randBreite = 1;   Color fuellFarbe = Color.white;   Color randFarbe  = Color.black;   Rechteck() {}   public   Figur klonen() {     Rechteck res = new Rechteck();     res.x = x; res.y = y; res.b = b; res.h = h;     res.randBreite = randBreite;     res.fuellFarbe = fuellFarbe;     res.randFarbe  = randFarbe;     return res;   }   public   void skalieren(int c) {     skalieren(c,c);   }   public   void skalieren(int cx, int cy) {     b *= cx; h *= cy;   }   public   void verschieben(int dx, int dy) {     x += dx; y += dy;   }   public   void setzeRandFarbe(Color f) {     randFarbe = f;   }   public   void setzeFuellFarbe(Color f) {     fuellFarbe = f;   } } | 
| import java.awt.Color; public class Kreis implements Figur {   int x = 0;   int y = 0;   int r = 1;   int randBreite = 1;   Color fuellFarbe = Color.white;   Color randFarbe  = Color.black;   // nicht public   Kreis() {}   public   Figur klonen() {     Kreis res = new Kreis();     res.x = x; res.y = y; res.r = r;     res.randBreite = randBreite;     res.fuellFarbe = fuellFarbe;     res.randFarbe  = randFarbe;     return res;   }   public   void skalieren(int c) {     r *= c;   }   public   void skalieren(int cx, int cy) {     if (cx != cy)       throw         new UnsupportedOperationException("...");     skalieren(cx);   }   public   void verschieben(int dx, int dy) {     x += dx; y += dy;   }   public   void setzeRandFarbe(Color f) {     randFarbe = f;   }   public   void setzeFuellFarbe(Color f) {     fuellFarbe = f;   } } | 
| class Kient {     Figur einheitsRechteck = new Rechteck();     Figur einheitsKreis    = new Kreis();   void machIt() {     Figur r = einheitsRechteck.klonen();     Figur k = einheitsKreis.klonen();     r.skalieren(200,400);     r.verschieben(100,150);     k.skalieren(300);     k.verschieben(150,150);   } } | 
| Letzte Änderung: 14.12.2016 | © Prof. Dr. Uwe Schmidt  |