不经意间读到了作者K_Eckel的《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》的文章,感觉收益匪浅,因此通过博客和大家分享,如有问题可和本博主或原作者联系。
下面是作者在序言中的内容
“Next to My Life, Software Is My Passion”——Robert C.Martin.
懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要。反之好像也可能成 立。道可道,非常道。道不远人,设计模式亦然如此。
一直想把自己的学习经验以及在项目中的应用经历拿出来和大家共享,却总是下不了这 个决心:GoF 的 23 种模式研读、总结也总需要些时日,然而时间对于我来说总是不可预计 的。
之所以下了这个决心,有两个原因:一是 Robert 的箴言,二是因为我是一个感恩的人, 就像常说的:长怀感恩之心,人生便无遗憾。想想当时读 GoF 的那本圣经时候的苦闷、实 现 23 个模式时候的探索、悟道后的欣悦,我觉得还是有这个意义。
设计模 式并不是空的理论,并不是脱离实际的教条。就如我们在进行软件开发的过程会很自然用到 很多的算法和结构来解决实际的问题,那些其实也就是数据结构中的重要概念和内容。在面 向对象系统的设计和开发中,我们已经积累了很多的原则,比如面向对象中的封装、继承和 多态、面向接口编程、优先使用组合而不是继承、将抽象和实现分离的思想等等,在设计模 式中你总是能看到他们的影子,特别是组合(委托)和继承的差异带来系统在耦合性上的差别,更是在设计模式多次涉及到。而一些设计模式的思想在我们做系统的设计和开发中则是 经常要用到的,比如说Template、Strategy模式的思想,Singleton模式的思想,Factory 模式的思想等等,还有很多的模式已经在我们的开发平台中扎根了,比如说Observer(其实 例为Model-Control-View模式)是MFC和Struts中的基本框架,Iterator模式则在C++的STL 中有实现等。或许有的人会说,我们不需要设计模式,我们的系统很小,设计模式会束缚我们的实现。我想说的是,设计模式体现的是一种思想,而思想则是指导行为的一切,理解和 掌握了设计模式,并不是说记住了 23 种(或更多)设计场景和解决策略(实际上这也是很 重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想融入到了你的思想中 后,你就会不自觉地使用这种思想去进行你的设计和开发,这一切才是最重要的。
最后说一下,如果大家对硬件和编程感兴趣,可以点击牛客网这个连接看看,是个不错的学习网站,是学长推荐给我的,因为之前找工作的时候没有太多经验,也不知道怎么准备,去哪里搜资源,走了很多弯路,所以推荐给大家,当初在上面大量刷题还看了好多面试经验等,反正上面有很多课程+刷题+面经+求职+讨论区等资源,关键里面的资源全部公开免费,不用花钱,希望能帮助家!