Aufgabe 1 ausgeführt.

This commit is contained in:
schrom01 2021-12-23 16:09:01 +01:00
parent 15d62ca60e
commit 8f2bc5ab20
5 changed files with 80 additions and 1 deletions

View File

@ -0,0 +1,5 @@
public interface BriefdruckStrategie {
String druckeBrief(Brief brief);
}

View File

@ -4,6 +4,15 @@
* @author tebe * @author tebe
*/ */
public class Briefdrucker { public class Briefdrucker {
BriefdruckStrategie briefdruckStrategie;
Briefdrucker(BriefdruckStrategie briefdruckStrategie){
this.briefdruckStrategie = briefdruckStrategie;
}
void druckeBrief(Brief brief){
System.out.println(briefdruckStrategie.druckeBrief(brief));
}
// Ihr Code fuer den Briefdrucker // Ihr Code fuer den Briefdrucker

View File

@ -1,3 +1,7 @@
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/** /**
* Diese Klasse implementiert ein Briefprogramm. * Diese Klasse implementiert ein Briefprogramm.
* *
@ -14,6 +18,18 @@ public class Briefprogramm {
// Ihr Code fuer das Briefprogramm: // Ihr Code fuer das Briefprogramm:
// Erzeugen Sie Inhalte und Adressen und drucken Sie // Erzeugen Sie Inhalte und Adressen und drucken Sie
// einen Brief sowie einen Serienbrief // einen Brief sowie einen Serienbrief
Brief brief = new Brief(
new Adresse("Roman", "Schenk",
"Toggenburgstrasse", 31,
8245, "Feuerthalen"),
new Adresse("Vorname", "Nachname",
"Strasse", 1,
8222, "Ort"),
new Inhalt(new GregorianCalendar(2021, 12, 23), "Titel", "Herr", "Beispieltext"));
BriefdruckStrategie briefdruckStrategie = new FensterBriefDruckStrategie();
Briefdrucker briefdrucker = new Briefdrucker(briefdruckStrategie);
briefdrucker.druckeBrief(brief);
} }
} }

View File

@ -0,0 +1,14 @@
public class FensterBriefDruckStrategie extends StandartBriefDruckStrategie{
protected String druckeEmpfaenger(Adresse adresse){
return druckeAdresseRechts(adresse);
}
private String druckeAdresseRechts(Adresse adresse) {
String output = "\t" + adresse.getVorname() + " " + adresse.getNachname() + "\n" +
"\t" + adresse.getStrasse() + " " + adresse.getHausnummer() + "\n" +
"\t" + adresse.getPlz() + " " + adresse.getOrt();
return output;
}
}

View File

@ -0,0 +1,35 @@
public class StandartBriefDruckStrategie implements BriefdruckStrategie{
@Override
public String druckeBrief(Brief brief) {
String output = "";
output += druckeAbsender(brief.getSender());
output += "\n";
output += druckeEmpfaenger(brief.getEmpfaenger());
output += "\n";
output += druckeInhalt(brief.getInhalt());
return output;
}
protected String druckeEmpfaenger(Adresse adresse){
return druckeAdresseLinks(adresse);
}
protected String druckeAbsender(Adresse adresse){
return druckeAdresseLinks(adresse);
}
private String druckeAdresseLinks(Adresse adresse){
String output = adresse.getVorname() + " " + adresse.getNachname() + "\n" +
adresse.getStrasse() + " " + adresse.getHausnummer() + "\n" +
adresse.getPlz() + " " + adresse.getOrt();
return output;
}
private String druckeInhalt(Inhalt inhalt){
String output = "Datum: " + String.format("%1$td.%1$tm.%1$tY", inhalt.getDatum()) + "\n" +
inhalt.getTitel() + "\n" +
inhalt.getAnrede() + "\n" +
inhalt.getText();
return output;
}
}