注意 subject & observer 通通都是 shared pointer!不行使用 unique pointer,因為 Subscribe
和 Unsubscribe
都會需要用到 smart pointer 形式的 this pointer,會需要用到 shared_from_this()
(詳見 Smart Pointers ),和
在 Observer
當中有個 private member std::weak_ptr<Subject> subject_;
,用來追蹤 Subject
(which is a shared pointer),並判斷是否已經 subscribe & unsubscribe。
Reference