条款 23:宁以 non-member、non-friend 替换 member 函数

    Prefer non-member non-friend functions to member functions.

    第二种方式更好,因为耦合更低更易扩展。

    1. class WebBrowser
    2. {
    3. public:
    4. ...
    5. void clearCache();
    6. void clearHistory();
    7. void clearCookies();
    8. ...
    9. };
    10. class WebBrowser
    11. {
    12. public:
    13. ...
    14. void clearEveryThing();
    15. ...
    16. }
    17. void clearBrower(WebBrowser& wb)
    18. {
    19. wb.clearCache();
    20. wb.clearHistory();
    21. wb.clearCookies();
    22. }

    将多个便利函数定义在不同头文件但是隶属于同一命名空间。