Composite паттерін жүзеге асыратын мысал ойластырыңыздар. Ойластырған мысалыңыздың uml схемасы мен программа кодын көрсетіп, оны қорғайсыздар. Ойластырған мысалыңыздың uml схемасы дұрыс болса – 0.2 балл, программа коды дұрыс болса – 0.6 балл, дұрыс қорғасаңыз – 0.6 балл.
ЕСКЕРТУ: ойластырған мысалыныздың коды және uml схемасы басқа студенттің жұмысымен бірдей болмауы керек. Бірдей болған жағдайда ол жұмыс қабылданбайды.
package Task4;
import java.util.ArrayList;
import java.util.List;
interface Component {
int execute(int num1, int num2);
}
class LeafAdd implements Component {
public int execute(int num1, int num2) {
return num1 + num2;
}
}
class LeafSubtract implements Component {
public int execute(int num1, int num2) {
return num1 - num2;
}
}
class LeafMultiply implements Component {
public int execute(int num1, int num2) {
return num1 * num2;
}
}
class Composite implements Component {
private List components = new ArrayList<>();
public void addComponent(Component component) {
components.add(component);
}
public void removeComponent(Component component) {
components.remove(component);
}
public int execute(int num1, int num2) {
int result = 0;
for (Component component : components) {
result += component.execute(num1, num2);
}
return result;
}
}
public class Main_4 {
public static void main(String[] args) {
Component add = new LeafAdd();
Component subtract = new LeafSubtract();
Component multiply = new LeafMultiply();
Composite composite = new Composite();
composite.addComponent(add);
composite.addComponent(subtract);
composite.addComponent(multiply);
System.out.println("10 + 5 - 10 * 5 = " + composite.execute(10, 5));
}
}
Достарыңызбен бөлісу: |