Próbuję wykonać zadanie podobne do poniższego. Wklejam okrojony kod i kieruję prośbę o pomoc w nakierowaniu myślenia.
Mój problem to:
- Lista w klasie TaskView jest dla typu IComponentNode (to jest interface) ? Czy chodzi o to żeby utworzyć klasę implementującą ten interface i wtedy lista w klasie TaskView ma być listą dla obiektów tej nowej klasy?
- I tak samo metody findComponent(String code) zwracają typ IComponentNode, a czy metody nie powinny zwracać typu obiektu klasy dla interface IComponentNode ?
- Do tego nie wiem jak ma mi pomóc Interface IcompositeComponentNode.
Zadanie to:
Analiza poniższego kodu i zaimplementowanie metod findComponent, findComponentByRenderer, countComponents w klasie TaskView. Proszę uwzględnić w analizie i implementacji interfejs ICompositeComponentNode.
interface ITaskView {
// zwraca komponent o podanym kodzie lub null
IComponentNode findComponent(String code);
// zwraca komponent o podanym rendererze lub null
IComponentNode findComponentByRenderer(String renderer);
//zwraca liczbę komponentów
int countComponents();
}
public class TaskView implements ITaskView {
private List<IComponentNode> components;
}
interface IComponentNode {
String getCode();
String getRenderer();
}
interface ICompositeComponentNode extends IComponentNode {
List<IComponentNode> getComponents();
}