我在學習面向對象的設計模式,但是如果我只有具體的監聽器和主題,就不明白爲什麼這不是觀察者模式。在我的實踐範例中,我創建了一個名爲DmvCounter和Customers(觀察者)的單一主題的DMV辦公場景。在我的主要方法中,客戶的任務是建立他們希望DMV辦公室爲他們完成的任務。它仍然是一個沒有觀察者和主題接口的觀察者模式嗎?這裏有一個我不確定的例子
Customer bob = new Customer("Bob", "Register Vehicle", 201); // number is bob's order
Customer pat = new Customer("Pat", "Renew License", 202);
dmvObject.register(bob);
dmvObject.register(pat);
dmvObject.handleRequest(200); // nothing happens - no customer for this request number
dmvObject.handleRequest(202); // prints: "Pat says: Thank you - Renewed License"
我的問題是以上是僅在2個對象之間的進程間通信。沒有用於觀察者的接口,並且沒有用於主題的接口。主體通知其已完成特定訂單編號的具體客戶列表。並且客戶離開DMV辦公室。這不是觀察者模式嗎?
I在這個問題和問題上努力工作,我想知道爲什麼這被標記爲關閉?爲什麼人們告訴我這不是觀察者模式?這就是爲什麼我問這個問題.. – 2014-10-02 02:38:50
是什麼讓你覺得這不是觀察者模式的例子? – deyur 2014-10-02 02:44:59
我被告知,觀察者模式需要是抽象的。這裏需要有一個觀察者接口,而不是具體的主題和具體的觀察者。 – 2014-10-02 02:46:30