如何在Java中使用Python中的observer/observable工具編寫程序? 我會在Java中寫下如下內容。觀察者python中的可觀察類
import java.util.Observable;
import java.util.Observer;
public class ObservDemo extends Object {
MyView view;
MyModel model;
public ObservDemo() {
view = new MyView();
model = new MyModel();
model.addObserver(view);
}
public static void main(String[] av) {
ObservDemo me = new ObservDemo();
me.demo();
}
public void demo() {
model.changeSomething();
}
/** The Observer normally maintains a view on the data */
class MyView implements Observer {
/** For now, we just print the fact that we got notified. */
public void update(Observable obs, Object x) {
System.out.println("update(" + obs + "," + x + ");");
}
}
/** The Observable normally maintains the data */
class MyModel extends Observable {
public void changeSomething() {
// Notify observers of change
setChanged();
notifyObservers();
}
}
}
(此代碼是從以下鏈接 http://www.java2s.com/Code/Java/Design-Pattern/AsimpledemoofObservableandObserver.htm採取)
我怎麼在這樣的事情做到在Python?
Python不是Java(幸運的是)。標準庫中沒有事件發佈者/訂閱者庫,但是有很多方法可以在沒有庫的情況下完成此操作。實際上太多了,你想達到什麼目的? –
http://code.activestate.com/recipes/131499-observer-pattern/ –
我正試圖編寫一個程序,它同時充當服務器(比如服務器A)和客戶端。首先客戶端發送一些消息到外部服務器(比如服務器B)。然後該服務器將消息廣播到我們自己的服務器。我的服務器(A)應該根據它從服務器B得到的回覆來操作我的客戶端。在這種情況下,我需要讓我的服務器可觀察,並且我的客戶端觀察者。我的客戶端根據服務器中某些變量的值進行操作。因此,只要在我的服務器中更改值,就應該通知它。我怎樣才能實現這樣的功能? – maheshakya