Сабақтың мақсаты Java тілінде жобалау үлгілерімен танысу



бет2/4
Дата21.04.2023
өлшемі221,44 Kb.
#85093
түріСабақ
1   2   3   4
Байланысты:
Lab-9 Zhaksylykov Berik

Тапсырма-№2


Observer паттерін жүзеге асыратын мысал ойластырыңыздар. Ойластырған мысалыңыздың uml схемасы мен программа кодын көрсетіп, оны қорғайсыздар. Ойластырған мысалыңыздың uml схемасы дұрыс болса – 0.2 балл, программа коды дұрыс болса – 0.5 балл, дұрыс қорғасаңыз – 0.5 балл.
ЕСКЕРТУ: ойластырған мысалыныздың коды және uml схемасы басқа студенттің жұмысымен бірдей болмауы керек. Бірдей болған жағдайда ол жұмыс қабылданбайды.

package Task2;

import java.util.ArrayList;
import java.util.List;

interface Observer {


void update(int result);
}

interface Subject {


void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers();
}
class Calculator implements Subject {
private List observers = new ArrayList<>();
private int result;

public void add(int num1, int num2) {


result = num1 + num2;
notifyObservers();
}

public void subtract(int num1, int num2) {


result = num1 - num2;
notifyObservers();
}

public void multiply(int num1, int num2) {


result = num1 * num2;
notifyObservers();
}

@Override


public void registerObserver(Observer observer) {
observers.add(observer);
}

@Override


public void removeObserver(Observer observer) {
observers.remove(observer);
}

@Override


public void notifyObservers() {
for (Observer observer : observers) {
observer.update(result);
}
}
}

class Display implements Observer {


private int result;

@Override


public void update(int result) {
this.result = result;
display();
}

private void display() {


System.out.println("Result: " + result);
}
}
public class Main_2 {
public static void main(String[] args) {
Calculator calculator = new Calculator();
Display display = new Display();
calculator.registerObserver(display);

calculator.add(10, 5);


calculator.subtract(10, 5);
calculator.multiply(10, 5);

calculator.removeObserver(display);


}
}




Достарыңызбен бөлісу:
1   2   3   4




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет