Observer設計模式可能可以用來解決您的問題。 Observer模式中,有兩種不同類型的對象:
- 觀察對象是希望每當觀察對象更改通知對象。
- 可觀察對象是可以通過觀察
觀察員與他們希望觀看可觀察對象註冊觀看的對象。每當對象發生更改時,它都會通知所有已註冊的觀察者。
根據您的代碼示例,我將假設您正在使用Java。在這種情況下,您可以使用Observer和Observable來減少必須對現有代碼進行的更改次數。
public class mammal extends java.util.Observable implements Imammle
{
public String getName() {
return "Mammal";
}
public String speak() {
setChanged(); // We have been changed
notifyObservers(); // Notify everyone that we have changed
return getName() + "Maaaauuu";
}
}
現在我們創建一個類,希望觀看的時候有新的變化:
public class Watcher implements java.util.Observer
{
public void update(Observable o, Object arg) {
System.out.println("Something has changed");
}
}
最後,我們註冊了一個mammal
觀察者(S),使他們能夠每當它改變的通知。
public class Main
{
public static void main(String args[]) {
mammal cow = new mammal();
Watcher farmer = new Watcher();
cow.addObserver(farmer);
cow.speak();
}
}
有一些抽獎中後衛這種方法:
- 觀察員可以與任何可觀察對象進行登記。您可能希望您的觀察員只能觀察到
mammal
。另一方面,你可能希望只有某些觀察者能夠觀察到mammal
。
- 真的是沒有任何辦法爲你的觀察員知道究竟與
mammal
改變,而不
設置如果這些平局中後衛是你的問題,那麼你可能想避免觀察和可觀察和考慮修改(mammal
以及任何您的觀察者)來實現他們自己的,特定於應用程序的方法。
請更改您的問題,因爲它不清楚。 – Phani 2012-04-09 05:37:43
我看到標題中的問題的答案 – mishadoff 2012-04-09 10:56:32