## Signals 庫如何改進你的程序?
* 函數和函數對象的靈活多點回調
* 健壯的觸發器及事件處理的機制
* 兼容于函數對象工廠,如 Boost.Bind 和 Boost.Lambda
Boost.Signals 庫具體化了信號(signals)和 插槽(slots),信號指的是某種可被"拋出"的 東西,而插槽是接收該信號的連接者。這是一種著名的設計模式,它還有另外一些名字 _Observer, signals/slots, publisher/subscriber, events_ (和 event targets),這些名字指的都是同一個東西,指的是一些信 息源和某些對這些信息的變化感興趣的實例之間的一對多關系。這種設計模式的使用有多種情況;最常見的是在GUI代 碼中,用于使特定動作(例如,用戶單擊了一個按鈕)與其它動作(按 鈕改變它的外觀,執行某個商業邏輯)松散連接。信號與插槽 在許多場合都很有用,解耦動作的觸發條件(信號)和處理它的代碼(一 個或多個插槽)。它可用于動態改變處理代碼的行為,允許同 一信號對應多個處理,或者通過一個信號及插槽的類型間的抽象關聯來降低類型依賴性。通過使用 Boost.Signals, 可 以創建一些信號來接受任意給定的函數特征的插槽,即插槽接受任意類型的參數。這種方法使得該庫非常靈活;它適用于任意范圍的信號需求。通過對信號源和處理 者的解耦,系統無論在物理和邏輯依賴上都變得更為健壯。它可以讓信號類型對插槽類型完全一無所知,反之亦然。這對于更高層次的可復用性是很有必要的,它有 助于打破依賴性的循環。因此,一個信號與插槽的庫不僅僅關系到面向對象的回調,它也關系到使用它的整個系統的健壯性。
- 序
- 前言
- Acknowledgments
- 關于作者
- 本書的組織結構
- Boost的介紹
- 字符串及文本處理
- 數 據結構, 容器, 迭代器, 和算法
- 函數對象及高級編程
- 泛 型編程與模板元編程
- 數學及數字處理
- 輸入/輸出
- 雜項
- Part I: 通用庫
- Library 1. Smart_ptr
- Smart_ptr庫如何改進你的程序?
- 何時我們需要智能指針?
- Smart_ptr如何適應標準庫?
- scoped_ptr
- scoped_array
- shared_ptr
- shared_array
- intrusive_ptr
- weak_ptr
- Smart_ptr總結
- Library 2. Conversion
- Conversion 庫如何改進你的程序?
- polymorphic_cast
- polymorphic_downcast
- numeric_cast
- lexical_cast
- Conversion 總結
- Library 3. Utility
- Utility 庫如何改進你的程序?
- BOOST_STATIC_ASSERT
- checked_delete
- noncopyable
- addressof
- enable_if
- Utility 總結
- Library 4. Operators
- Operators庫如何改進你的程序?
- Operators
- 用法
- Operators 總結
- Library 5. Regex
- Regex庫如何改進你的程序?
- Regex 如何適用于標準庫?
- Regex
- 用法
- Regex 總結
- Part II: 容器及數據結構
- Library 6. Any
- Any 庫如何改進你的程序?
- Any 如何適用于標準庫?
- Any
- 用法
- Any 總結
- Library 7. Variant
- Variant 庫如何改進你的程序?
- Variant 如何適用于標準庫?
- Variant
- 用法
- Variant 總結
- Library 8. Tuple
- Tuple 庫如何改進你的程序?
- Tuple 庫如何適用于標準庫?
- Tuple
- 用法
- Tuple 總結
- Part III: 函數對象與高級編程
- Library 9. Bind
- Bind 庫如何改進你的程序?
- Bind 如何適用于標準庫?
- Bind
- 用法
- Bind 總結
- Library 10. Lambda
- Lambda 庫如何改進你的程序?
- Lambda 如何適用于標準庫?
- Lambda
- 用法
- Lambda 總結
- Library 11. Function
- Function 庫如何改進你的程序?
- Function 如何適用于標準庫?
- Function
- 用 法
- Function 總結
- Library 12. Signals
- Signals 庫如何改進你的程序?
- Signals 如何適用于標準庫?
- Signals
- 用法
- Signals 總結