Entwurfsmuster Strategie

Waterman

Mitglied
Hallo ich bearbeite gerade eine Aufgabe zu Entwurfsmuster Strategie.

Hier ist erst einmal die Aufgabenstellung:


Gegeben ist die Klasse StrategyGroup, die die aus Aufgabe 5 bekannte Klasse Group spezialisiert.
Gegeben ist weiterhin das folgende Interface:
Java:
public interface Compare { boolean cond(Item it); }

a)Vervollständigen Sie die Klasse StrategyGroup geeignet um Attribute und Methoden.
Die Klasse Item ist aus Aufgabe 5 bekannt. Implementieren Sie in der Klasse StrategyGroup eine Methode setStrategy, mit der ein zu Compare kompatibles Objekt als Strategie bekannt gemacht werden kann.
Implementieren Sie in der Klasse StrategyGroup eine Methode Item select().
Die Methode select soll von den über das Feld items erreichbaren Objekten, bei denen die Anwendung der Strategie den Wert true liefert, dasjenige zurückgeben, das unter dem kleinsten Index im Feld items erreichbar ist.
Gibt es kein solches Objekt, soll null zurückgegeben werden.

public class StrategyGroup extends Group
{

}

b)Legen Sie eine Strategie an, die dafür sorgt, dass bei Aufruf der Methode select nur unter
solchen Objekten ausgewählt wird, deren Wert für das Attribut quantity gleich 50 ist.

Java:
public class Group 
{
    protected Item[] items;
    public Group(Item[] its) 
    {
        items = its;
    }
}

public class Item 
{
    private int number, quantity;
    public Item(int no, int qy) 
    {
        number = no;
        quantity = qy;
    }
    public int getQuantity() 
    {
        return quantity;
    }
    public boolean equalNo(Item i) 
    { 
        if (i != null) {
            return number == i.number;
        }
        return false;
    } 
}

Nun weiß ich nicht wirklich wie ich anfangen soll.
Ich gehe davon aus das das Interface Compare meine Schnittstelle bzw. meine Strategie ist.
Ist dann die Klasse StrategyGroup mein Kontext ?

Java:
public class StrategyGroup extends Group{
          private Compare c;
 
          public StrategyGroup(Item[] items, Compare c){
                     super(items);
          }
}
 

Heimliches<3

Neues Mitglied
zu teilaufgabe a):

Java:
public class StrategyGroup extends Group{
  compare toDo;

  public void setStrategy(Compare c){
    toDo=c;
  }

  public Item select(){
    for (int i=0;i<items.length;i++){
      if (toDo.cond(items[i]){
        return items[i];
     }
   }
   return null;
  }
}

zumindest denke ich, dass es so richtig sein sollte..

ich nehme an, du schreibst die Klausur am montag ?
 

Ähnliche Java Themen

Neue Themen


Oben