JavaScript 设计模式学习与实践(一)
随着对JS的知识的了解和实际的开发需要,内心对于重读设计模式的感触越来越深,所以就重新拿起了《JavaScrip设计模式与开发实践》一书,并结合《设计模式之美》的部分内容,先做个总结,并先讲一下单例模式,剩下的后续慢慢讲。
首先提出几个问题,也是我这次的几个比较总结性的收获:
- JavaScript是面向对象还是面向过程
- 函数是一等公民这一点是面向对象还是面向过程
然后抛出我这次对设计模式的一个最大的收获,就是所有的设计模式,其实都是识别出代码中不变的部分和易变的部分,分别封装起来,然后组合二者,而要准确地识别出这一点,不仅需要代码能力的深厚,更是要真正地去理解业务。
比如策略模式,一个个策略就是易变的部分,而对策略的调用则是不变的部分。代理模式中,被代理的操作就是不变的,而代理本身就是易变的。
其实,设计模式的出现某种程度上就是为了弥补语言的不足,比如原型模式算是一种设计模式,但是JavaScript本身就通过原型链支持了这种模式。