摘要: 面向对象的基本原理要求数据和对其进行操作的函数应该被包装在一起,同时建议成员函数为更优秀的选择。但不幸的是,这一建议并不是正确的。它是建立在对“面向对象的东西意味着什么”这一点的误解之上的。通过理性分析可以得知,成员函数 clearEverything 的封装性实际上比非成员函数 clearBrowser 还要差。还有,非成员函数可以为 WebBrowser 相关的功能提供更便利的打包方法,从而减少编译时依赖,提高 WebBrowser 的可扩展性。很多情况下,非成员函数的方法都比成员函数的方法要好。理解这一结论的原因是十分重要的。
阅读全文