Erstelle eine Hundezuchtstation.

Der Hundezucht unterliegt folgende (natürlicherweise haltlose) wissenschaftliche Annahme:
Wenn ein Hundevater ein reinrassiger Pudel ist und die Mutter eine reinrassige Schäferhündin,
werden die Kinder jeweils 50-50 Hunde, also 50% Pudel und 50% Schäferhund.

Nun soll es den Kunden des Züchters möglich sein, Hunde mit bestimmter Aufteilung zu bestellen, also:

(1) Kunde Heinz möchte einen reinrassigen Pudel.

(2) Kunde Karl möchte einen Hund, der zu 50% Schäferhund, 25% Pudel und 25% Golden Retriever ist.

(3) Kunde Franz will einen Hund, der zu einem Drittel Pudel, einem Drittel Golden Retriever und einem Drittel Dogge ist.

Das Interface Hund sieht wie folgt aus:

public interface Hund {

   public Hund(Hund mutter, Hund vater); // Eigentlich darf man in Interfaces keine Konstruktoren deklarieren, aber den soll es geben.

   public string getRasseAsString();

}

Dabei soll die Methode getRasseAsString() eine Auflistung der prozentualen Anteile der Rassen im Stammbaum des Hundes ausgeben:

100% PUDEL

oder:
50% LABRADOR
50% PUDEL

oder:

25% PUDEL
25% SCHÄFERHUND
50% DACKEL

Erweiterung

Erweitere Dein Programm derart, dass Du mit Hilfe des AbstractFactory Patterns spezielle Hundezuechter für reinrassige Hunde anbietest und aber auch für entsprechende Mischlingshunde.

public class Pudel extends Hund { ... }


public interface PudelZucht {

   public Pudel bestellePudel();
}

Analog für die folgenden Rassen:

  • Pudel
  • Schäferhund
  • Dackel
  • Labrador
  • Golden Retriever
  • Dogge

Coding Kata: Hundezucht
Markiert in:         

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

%d Bloggern gefällt das: