作者回复: 设计模式就要多用、多思考,必须在实践中才能学到,看书看资料还是比较难领会其中的精髓的。
但有书能够让你少走弯路,快速找到好的设计,避免摸索的成本。
作者回复: 说的非常好,里面的观点我都深有同感。
学编程,必须要学设计模式,领会它的内在思想,才能提升自己的编程功力,才能往上走。
作者回复: 用宏代替字面量只是C++里的一种用法,不是特别提倡,但用起来也不错,这个完全看个人或者团队是否能够达成一致。
比如说,用C和C++混合编程,有的接口会导出成C的形式,那么用宏就很合理了。
关于宏带来的问题和它的恶名也都是众所皆知的了,我也是推荐尽量少用宏,用来定义常量还可以,要是写复杂的宏替换、宏函数就不是特别好了,会很影响可读性。
作者回复: 严格来说,设计模式是用于面向对象的,但面向过程也可以利用抽象和封装模拟面向对象,所以设计模式也能够用在面向过程。
而函数式编程与面向对象的差异就比较大了,所以不能应用大多数模式。
作者回复: dip应该包含ioc吧,用C++比较多,对Java系的不是很清楚,抱歉了。
作者回复: 可以参考一下第5讲,继承用多了会导致庞大复杂的类体系,不灵活,难以维护。
C++支持多范式,使用泛型可以减少继承的使用,复用代码更加简单,是松耦合。
这个还需要在实践中多体会,当然这个也不是绝对的,在C++里怎么用都可以,这只是我的个人推荐。
作者回复: 设计模式比较抽象,不像C++语言那么好学,有疑问、不清楚的,可以随时留言,一起讨论。
作者回复: 说的很对,有的模式也会同时符合多个原则。
模式的应用范围也是可大可小,架构里可以用,代码里也可以用。
作者回复: 设计模式就是开发软件的经典“套路”,按照这个“套路”来搭建系统,就能够得到良好的设计。
但“套路”用得多了,也会渐渐地发现不足,就会想突破“套路”。
作者回复: 设计模式描述的是对象之间的关系,可能画出uml图来能够更好地帮助理解。
可以在写代码的时候多想想,如果需求、环境发生了变化,我们的代码能否不改或者少改就能适应变化,这就是设计模式发挥作用的地方。