什么时候应该使用Observer和Observable?
什么是Observer
,什么Observable
时候应该使用它们?
我并不了解这些术语,因此当我回到家并开始使用Google Observer和Google搜索时Observable
,发现了来自不同资源的一些观点:
1)Observable
是一个类,Observer
是一个接口。
2)Observable
该类维护一个Observers
列表。
3)当一个Observable
对象被更新时,它调用其update()
每个的方法Observer
来通知它已被更改。
我发现这个例子:
import java.util.Observable;import java.util.Observer;
class MessageBoard extends Observable
{
public void changeMessage(String message)
{
setChanged();
notifyObservers(message);
}
}
class Student implements Observer
{
@Override
public void update(Observable o, Object arg)
{
System.out.println("Message board changed: " + arg);
}
}
public class MessageBoardTest
{
public static void main(String[] args)
{
MessageBoard board = new MessageBoard();
Student bob = new Student();
Student joe = new Student();
board.addObserver(bob);
board.addObserver(joe);
board.changeMessage("More Homework!");
}
}
但是我不明白为什么我们需要Observer
和Observable
?的用途setChanged()
和notifyObservers(message)
方法是什么?
回答:
有一个学生和一个留言板的具体示例。学生将自己添加到希望在新消息发布到MessageBoard时得到通知的观察者列表中进行注册。将消息添加到MessageBoard时,它将遍历其Observers列表,并通知他们事件已发生。
想想Twitter。当你说要关注某人时,Twitter会将你添加到其关注者列表中。当他们发送新推文时,你会在输入中看到它。在这种情况下,你的Twitter帐户是观察者,而你关注的人是观察者。
这个类比可能并不完美,因为Twitter更可能是调解人。但这说明了这一点。
以上是 什么时候应该使用Observer和Observable? 的全部内容, 来源链接: utcz.com/qa/413150.html