Hallo alle zusammen,
ich bin gerade dabei eine alte Prüfungsaufgabe zu lösen und habe Schwierigkeiten,
vielleicht kann mir einer behilflich sein.
Gegeben ist:
Aufgabenstellung ist:
a) Klasse Notenliste und beide Schnittstellen implementieren
b) Proxy für Notenliste => Delegiert Aufrufe an Notenliste und protokolliert jeden Aufruf von commit und rollback
c) Proxy implementieren und auf konkrete Implementierung des Konstruktors achten
d) Junit die Notenliste anlege und über Proxy Note eingeben und commit über Proxy einführen
Soweit konnte ich die Aufgabe lösen:
Ich versteh leider überhaupt nicht, was die Schnittstelle ITransaction macht und wie ich die beiden Methoden implementieren kann.
Und den Rest der Aufgaben, mit dem Proxy ist mir ein Rätsel. Das einzige was ich über Proxy weiß, ist dass es ein "Platzhalter" ist, der Daten vom Client zum Original über zwei Schnittstellen mit identischen Methoden schickt. Ich hab nicht die leiseste Ahnung, wie ich das Problem lösen kann.
Hat irgendjemand eine Idee?
Danke und VG
Derya
ich bin gerade dabei eine alte Prüfungsaufgabe zu lösen und habe Schwierigkeiten,
vielleicht kann mir einer behilflich sein.
Gegeben ist:
Java:
public interface INotenliste{
public void addNote(int matrikelNr, float note);
public String printNotenliste(); // sortiert nach MatrikelNr
public String statistik(); //sortiert nach Note}
public int size();
public interface ITransaction{
public void commit(); //bestätigt eine Transaktion
public void rollback(); // setzt die Welt auf den Zustand zu Beginn der laufenden Transaktion zurück
Aufgabenstellung ist:
a) Klasse Notenliste und beide Schnittstellen implementieren
b) Proxy für Notenliste => Delegiert Aufrufe an Notenliste und protokolliert jeden Aufruf von commit und rollback
c) Proxy implementieren und auf konkrete Implementierung des Konstruktors achten
d) Junit die Notenliste anlege und über Proxy Note eingeben und commit über Proxy einführen
Soweit konnte ich die Aufgabe lösen:
Java:
public class Notenliste implements INotenliste, ITransaction {
private Map<Integer,Float>notenliste;
public Notenliste(){
notenliste=new TreeMap<Integer,Float>();
}
public void addNote(int matrikelNr, float note){
notenliste.put(matrikelNr, note);
}
public String printNotenliste(){
StringBuffer buf = new StringBuffer("MatrikelNr\tNote");
for(Entry<Integer,Float>e : notenliste.entrySet()){
buf.append("\n" + e.getKey()+ "\t\t" + e.getValue());
}
return buf.toString();
}
public String statistik(){
Map<Float,Integer>statistik = new TreeMap<Float,Integer>();
List<Float>anzahl = new ArrayList<Float>();
for(Entry<Integer,Float> e: notenliste.entrySet()){
float key = e.getValue();
if(notenliste.containsValue(key)== true){
anzahl.add( key);
int i = Collections.frequency(anzahl, key);
statistik.put(key,i);
}
}
StringBuffer buf = new StringBuffer("Note\tAnzahl");
for(Entry<Float,Integer> e : statistik.entrySet()){
buf.append("\n" + e.getKey() + "\t " + e.getValue()); }
return buf.toString();
}
public int size(){
return notenliste.size();
}
Ich versteh leider überhaupt nicht, was die Schnittstelle ITransaction macht und wie ich die beiden Methoden implementieren kann.
Und den Rest der Aufgaben, mit dem Proxy ist mir ein Rätsel. Das einzige was ich über Proxy weiß, ist dass es ein "Platzhalter" ist, der Daten vom Client zum Original über zwei Schnittstellen mit identischen Methoden schickt. Ich hab nicht die leiseste Ahnung, wie ich das Problem lösen kann.
Hat irgendjemand eine Idee?
Danke und VG
Derya