уведомление, если у пациента жар или нет - PullRequest
0 голосов
/ 19 апреля 2019

Как бы вы спроектировали объект для отправки оповещения, если у пациента температура, с учетом показаний температуры каждые несколько минут? Предположим, что у вас есть температурный класс, который будет измерять класс. Вот класс Температура:

public class Temperature {
    private float temperature;
    private Location location;

    public Temperature(int temperature, Location location) {
        this.temperature = temperature;
        this.location = location;
    }

    public Temperature(Location location) {
        this.temperature = 0;
        this.location = location;
    }

    public float getTemperature() {
        return temperature;
    }

    public void setTemperature(int temperature) {
        this.temperature = temperature;
    }

    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }

    public double getTemperatureInFahrenheit() {
        return ( temperature * (9/5.0) + 32 );
    }
}

Ответы [ 3 ]

2 голосов
/ 19 апреля 2019

Если вам просто нужно распечатать, что температура перешла порог, добавьте это к вашему установщику

public void setTemperature(int temperature) {
    this.temperature = temperature;
    if (temperature > YOUR_THRESHOLD) { System.out.println("BURNING MAN!"); }
}

Кроме того, вызывайте этот установщик из вашего конструктора, а не повторяйте код.

1 голос
/ 19 апреля 2019

Я бы применил шаблон наблюдателя, посмотрите вики:

https://en.wikipedia.org/wiki/Observer_pattern

Вы будете использовать этот шаблон, когда хотите получать уведомление или доставку.

Как упомянул @Nirup Iyer, вы должны отправлять событие при активации оповещения. Вы можете принять список предупреждений и проверить их на множестве.

0 голосов
/ 19 апреля 2019

Я хотел бы создать специальный поток, который будет выполнять функцию монитора вашей лихорадки, и придерживаться суждения о том, является ли температура лихорадкой или нет на один шаг (и под более локальным контролем) из класса, чья работа заключается в том, чтобыудерживайте температуру.

Предположим, у нас есть JPanel с именем FeverMonitor.Существует несколько способов создания кода, который повторяется через заданные промежутки времени, но хорошим классом для этого является util.Timer.

. Вы должны создать TimerTask, который проверяет температуру и сравнивает значениек значению лихорадки.При связывании TimerTask с Timer у вас есть возможность установить, сколько времени должно пройти между каждым выполнением задачи, а также постоянно ли повторять задачу или нет.

Задача может быть настроена на изменение значения или свойства JLabel в FeverMonitor.Я думаю, например, что каждые 30 секунд публикуется текущая температура пациента, и если значение является лихорадочным, либо цвет фона, либо цвет шрифта меняется на красный.

Но a TimerTask также может быть настроен на выполнение чего-то вроде запуска электронной почты или любой из ряда задач, которые составляют ваше «уведомление».

Наконец, FeverMonitor можно даже дать возможность определить, что представляет собой лихорадка (100? 102? 104?).TimerTask может либо ссылаться на переменную экземпляра, либо может быть создан новый TimerTask и может заменить предыдущий TimerTask.

...