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 |