tag:blogger.com,1999:blog-4982215793068879977.post3893496000404446703..comments2023-09-07T02:56:05.540+08:00Comments on fcamel 技術隨手記: C++: 使用 private virtual 區分實作介面的 methodfcamelhttp://www.blogger.com/profile/04792244455260595133noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-4982215793068879977.post-86415293584472260862013-08-21T23:24:24.196+08:002013-08-21T23:24:24.196+08:00> 我覺得最主要的是interface跟customize method分開來, interf...> 我覺得最主要的是interface跟customize method分開來, interface不需要用 virtual, 而是把需要customize的部分放在private virtual.<br />><br />> 一方面可以針對customize的部分做一些pre-process or post-process, 因為是放在interface method 而不是在virtual method. 也可以規範customized的行為 (像是一定要夾在某個method之後)<br /><br />適合用 Template method 的情境, 這樣做確實很棒, 像是 XML parser 的 callback, 或是某些操作的 pre-commit, post-commit<br /><br />> 可讀性我覺得差不多<br /><br />我原本的出發點是為啥要用 private virtual, 查一查後想通背後的意思, 再回頭從需求出發, 描述這樣作的好處<br /><br />method 一大票時這樣滿方便的, 基本精神和 member field 預設都 private 差不多, 不該用到的, 就不要曝露出來<br /><br />來稍微改寫一下文章, 補充這點fcamelhttps://www.blogger.com/profile/04792244455260595133noreply@blogger.comtag:blogger.com,1999:blog-4982215793068879977.post-83456232737802295482013-08-21T22:46:11.925+08:002013-08-21T22:46:11.925+08:00我覺得最主要的是interface跟customize method分開來, interface不需...我覺得最主要的是interface跟customize method分開來, interface不需要用virtual, 而是把需要customize的部分放在private virtual.<br /><br />一方面可以針對customize的部分做一些pre-process or post-process, 因為是放在interface method 而不是在virtual method. 也可以規範customized的行為 (像是一定要夾在某個method之後)<br /><br />可讀性我覺得差不多Anonymoushttps://www.blogger.com/profile/06053899075191113265noreply@blogger.com