基於Policy的Class設計, 讀後感

2021-04-12 16:13:48 字數 641 閱讀 1312

多重繼承欠缺技術, 模板有豐富的技術. 多重繼承缺乏型別姓習, 模板中卻大量存在. 模板的特化無法擴張, 多重繼承卻很容易擴張. 所以, 用這兩種技術組合起來, 可以產生非常具彈性的裝置.

policy: 是用來定義乙個class或class template的介面, 該介面由下列之一或全部組成:內隱型別定義, 成員函式和成員變數.

policy是一種策略, policy需要定義乙個介面, 這個介面是所有某類policy所需要實現的, 如果沒有實現, 則在模板例項化的時候, 編譯器會報告錯誤.

當乙個宿主類派生自一些policy, 那麼這個宿主類就可以通過例項化不同的policy具體實現, 來生成設計的多樣化.  在設計模式的角度來講, 非常類似strategy, 但是, 這裡是編譯期決定的.

書裡還介紹了很多使用policy class時候的細節.

不過最有趣的還是組合和設計各種policy. 應該將policy設計為正交的, 即相互之間沒有關係, 這樣通過在宿主類中使用幾種不同的policy, 就可以配置出各種需要的行為, 簡直相當於機器為你自動生成**一樣, 即有效, 又靈活.

policy的正交設計, 應該是相當重要的. 

通過在編譯期間, 用不同的policy來配置行為, 是從來沒有見過的, 大大的拓寬了思路, 宛如一片全新的空間啊.

C 泛型程式設計 基於策略 Policy 的類設計

基於策略 policy 的類設計是將templates和多重繼承組合起來,這樣可以產生程式庫中的 設計元素 policies由templates和多重繼承組成。乙個class如果使用了policies,就稱其為host class,那是乙個擁有多個template引數的class template,...

基於REST架構的Web Service設計

先前我曾經介紹過利用apache axis實現基於soap的web service實現技術和相關 總的來說,soap的web service解決方案雖然較為成熟,且安全性較好,但是使用門檻較高,在大併發情況下會有效能問題,在網際網路上使用不太普及,因此並不太適合web 2.0 服務使用,目前大量的w...

基於REST架構的Web Service設計

先前我曾經介紹過利用apache axis 實現基於soap的web service實現技術和相關 總的來說,soap的web service解決方案雖然較為成熟,且安全性較好,但是使用門檻較高,在大併發情況下會有效能問題,在網際網路上使用不太普及,因此並不太適合web 2.0 服務使用,目前大量的...