軟體工程與哲學

Policy-based Design

商業,創業,業務,職涯,美食,葡萄酒,閱讀,網路科技。
從 Larry 創業以及商業的經驗,希望以白話的口吻,介紹給大家這個商業的世界。
FB粉絲頁 Larry的午茶時光
IG Larry的午茶時光 歡迎大家追蹤~

偶然看到一篇不錯的 wiki 
http://zh.wikipedia.org/wiki/%E5%9F%BA%E6%96%BC%E5%8E%9F%E5%89%87%E8%A8%AD%E8%A8%88

想到幾年前就知道 Policy-based Design 的概念,但一直沒搞懂,上面這篇文章給了一個概括而清楚的說明。Policy-based Design 主要運用的技術是 template 與多重繼承。多重繼承的好處是能將工作細項分散給不同的 super-classes, 壞處是 sub-class 會容易擴張(其行為會難以定義, 難以維護)。然而,template 限制了其無窮擴張的可能性。換句話說,維持了多重繼承的好處,而減弱了其壞處。當然,以上只是很粗淺的概述,有空還須專心研究 <Modern C++ Design> 才行。

Policy-based Design, how beautiful it is !


PS 1. Host Class 繼承 Policy Class 時應用 protected 或 private 繼承,caller 端在使用 Host Class 時可以直接調用 Policy Class 的 method 是不對的。
PS 2. 一定要合乎 Host Class 中使用介面的 Policy Class 才能當作此 Host Class 的 template parameter, 不然 compile 就不會過。也因為此原因,反而更容易開發與維護。

商業,創業,業務,職涯,美食,葡萄酒,閱讀,網路科技。
從 Larry 創業以及商業的經驗,希望以白話的口吻,介紹給大家這個商業的世界。
FB粉絲頁 Larry的午茶時光
IG Larry的午茶時光 歡迎大家追蹤~

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *