【发布时间】:2019-05-05 23:48:53
【问题描述】:
我写了一个电子邮件接收逻辑(类名:Mail_Receive_Logic)。这个类将我所有的未读邮件下载到一个messages 数组中。
我还有 EmailStatPrinter 和 EmailStatRecorder 课程。 EmailStatPrinter 有一个 writeToConsole 方法,可以将数组打印到屏幕上。 EmailStatRecorder 有一个 writeToFile 方法,它将数组写入文本文件。
我想以观察者可观察的方式实现这个逻辑。
public class Mail_Receive_Logic extends Observable{
public class EmailStatPrinter implements Observer{
public class EmailStatRecorder implements Observer{
我的主要方法是这样的
public static void main(String[] args) throws ClassNotFoundException {
// observable
Mail_Receive_Logic receiveMail = new Mail_Receive_Logic(usernameReceiving, passwordReceiving, fileReceivePath);
// observer
EmailStatPrinter writeToConsole = new EmailStatPrinter();
EmailStatRecorder writeToFile = new EmailStatRecorder();
receiveMail.addObserver(writeToConsole);
receiveMail.addObserver(writeToFile);
Thread receive = new Thread (new Runnable() {
public void run() {
try {
while (true) {
receiveMail.receive();
}
} catch (InterruptedException e) {}
}
});
receive.start();
我应该如何编写每个观察者类的更新方法,以便它们接收消息数组并将其打印在控制台和文本文件上。即我想知道在每个观察者类的以下代码段中要写什么。
@Override
public void update(Observable o, Object arg) {
// TODO Auto-generated method stub
}
还请解释一下为什么有 2 个变量 Observable o 和 Object arg?
【问题讨论】:
标签: java observable observer-pattern observers