คำถามติดแท็ก observer-pattern

7
การมอบหมาย: EventEmitter หรือสังเกตได้ในเชิงมุม
ฉันพยายามที่จะใช้งานบางอย่างเช่นรูปแบบการมอบหมายใน Angular เมื่อผู้ใช้คลิกที่ a nav-itemฉันต้องการเรียกใช้ฟังก์ชันที่ปล่อยเหตุการณ์ซึ่งควรได้รับการจัดการโดยองค์ประกอบอื่น ๆ ที่ฟังเหตุการณ์ นี่คือสถานการณ์: ฉันมีNavigationองค์ประกอบ: import {Component, Output, EventEmitter} from 'angular2/core'; @Component({ // other properties left out for brevity events : ['navchange'], template:` <div class="nav-item" (click)="selectedNavItem(1)"></div> ` }) export class Navigation { @Output() navchange: EventEmitter<number> = new EventEmitter(); selectedNavItem(item: number) { console.log('selected nav item ' + …

10
เมื่อใดที่เราควรใช้นักสังเกตการณ์และสังเกตได้
ผู้สัมภาษณ์ถามฉัน: คืออะไรObserverและObservableและเมื่อเราควรใช้พวกเขา? ฉันไม่ทราบข้อกำหนดเหล่านี้ดังนั้นเมื่อฉันกลับถึงบ้านและเริ่ม Googling เกี่ยวกับObserverและ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); } …

4
ความแตกต่างระหว่าง Observer, Pub / Sub และ Data Binding
คือความแตกต่างระหว่างสิ่งที่รูปแบบสังเกตการณ์ , เผยแพร่ / สมัครสมาชิกและการผูกข้อมูล ? ฉันค้นหาใน Stack Overflow เล็กน้อยและไม่พบคำตอบที่ดี สิ่งที่ฉันเชื่อคือการผูกข้อมูลเป็นคำทั่วไปและมีวิธีการใช้งานที่แตกต่างกันเช่นรูปแบบการสังเกตการณ์หรือรูปแบบ Pub / Sub ด้วยรูปแบบ Observer Observable จะอัพเดต Observers ด้วย Pub / Sub ผู้เผยแพร่โฆษณาจำนวนมากสามารถเผยแพร่ข้อความของบางคลาสและสมาชิกจำนวนมากสามารถสมัครสมาชิกข้อความของคลาสที่ต้องการได้ มีรูปแบบอื่น ๆ ของการใช้ "การผูกข้อมูล" หรือไม่?

7
ตรวจสอบว่ามีการเปลี่ยนแปลงคุณสมบัติอะไรบ้างใน Rails after_save callback?
ฉันตั้งค่าการโทรกลับ after_save ในผู้สังเกตการณ์แบบจำลองของฉันเพื่อส่งการแจ้งเตือนเฉพาะเมื่อแอตทริบิวต์ที่เผยแพร่ของโมเดลนั้นเปลี่ยนจาก false เป็น true ตั้งแต่วิธีการเช่นการเปลี่ยนแปลง? มีประโยชน์เฉพาะก่อนที่แบบจำลองจะได้รับการบันทึกวิธีที่ฉันกำลัง (และไม่สำเร็จ) ในขณะนี้ที่พยายามทำมีดังนี้: def before_save(blog) @og_published = blog.published? end def after_save(blog) if @og_published == false and blog.published? == true Notification.send(...) end end ไม่มีใครมีข้อเสนอแนะใด ๆ เกี่ยวกับวิธีที่ดีที่สุดในการจัดการสิ่งนี้โดยเฉพาะอย่างยิ่งการใช้ callbacks ผู้สังเกตการณ์แบบจำลอง (เพื่อไม่ให้เกิดมลภาวะรหัสควบคุม)

5
Observer เลิกใช้งานใน Java 9 แล้วเราควรใช้อะไรแทน?
Java 9 ออกมาแล้วและObserverเลิกใช้งานแล้ว ทำไมถึงเป็นเช่นนั้น? หมายความว่าเราไม่ควรใช้รูปแบบผู้สังเกตการณ์อีกต่อไปหรือไม่? มันจะดีถ้ารู้ว่าอะไรเป็นทางเลือกที่ดีกว่า?

3
รูปแบบการออกแบบของผู้สังเกตการณ์กับ“ ผู้ฟัง”
สำหรับฉันแล้วรูปแบบการออกแบบของ Observer ดังที่อธิบายไว้ใน GOF นั้นเป็นสิ่งเดียวกับที่ฟังในชุดเครื่องมือต่างๆ มีความแตกต่างระหว่างแนวคิดหรือเป็น Listeners และ Observers จริงๆในสิ่งเดียวกัน (ฉันไม่ได้มองหาการใช้ภาษาคอมพิวเตอร์เฉพาะเจาะจงฉันแค่ต้องการเข้าใจความแตกต่าง (ถ้ามี) จากมุมมองของการออกแบบใช่ฉันรู้ว่ามีคำตอบมากมายสำหรับคำถามที่คล้ายกันใน SOF แต่พวกเขาหยั่งราก ในคำถามเฉพาะเกี่ยวกับภาษาเฉพาะ - ฉันกำลังมองหาคำตอบการออกแบบไม่ใช่คำตอบภาษา)

8
ตัวอย่างที่เรียบง่ายของ C # ผู้สังเกตการณ์ / สังเกตได้กับผู้รับมอบสิทธิ์
ฉันเพิ่งเริ่มขุดคุ้ยภาษา C # แต่ฉันคิดไม่ออกว่าผู้ได้รับมอบหมายทำงานอย่างไรเมื่อใช้รูปแบบผู้สังเกตการณ์ / สังเกตได้ในภาษา ใครช่วยยกตัวอย่างง่ายๆให้ฉันหน่อยได้ไหมว่ามันเสร็จแล้ว ฉันได้ googled สิ่งนี้แล้ว แต่ตัวอย่างทั้งหมดที่พบมีปัญหาเฉพาะเจาะจงเกินไปหรือ "ป่อง" เกินไป

8
Mediator Vs Observer รูปแบบการออกแบบเชิงวัตถุ
ฉันอ่านGang Of Fourเพื่อที่จะแก้ปัญหาบางอย่างของฉันและเจอรูปแบบคนกลาง ก่อนหน้านี้ฉันใช้Observerในโครงการของฉันเพื่อสร้างแอปพลิเคชัน GUI ฉันสับสนเล็กน้อยเพราะฉันไม่พบความแตกต่างระหว่างสองอย่างนี้ ฉันเรียกดูเพื่อค้นหาความแตกต่าง แต่ไม่พบคำตอบที่เหมาะสมสำหรับคำถามของฉัน มีใครช่วยฉันแยกความแตกต่างระหว่างสองอย่างด้วยตัวอย่างที่ดีที่แบ่งเขตทั้งสองอย่างชัดเจนได้ไหม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.