设计模式,一个非常容易让人觉得高大上的东西。
其实,它也确实不错,只是,就看你能不能了解到他的本质。
设计模式是什么,是一种解决问题的思维,而并非某种特定的方法
这两者差不多?
特定的方法,更容易让人走进一种“刻意的效仿”的怪圈,进一步变成了定向思维,没办法举一反三
而解决问题的思维,这是完全属于你自己的,由你的内心产生的思维方式,最终达到兵来将挡,水来土掩的境界。
我还在这条路上,正在努力,愿意和大家分享一点
而针对上面所说的,在这里提到三本书说明一下:
———-——-——-——-——-——-——-——-
书籍:《大话设计模式》
豆瓣评分:8.3分
这本书大家有空可以下过来看一下,豆瓣上还是给出了比较高的评分,可能得益于这本书的作者还是很认真的对每个例子都进行诙谐幽默的讲解,而且特别对于完全不了解设计模式的人来说,接受起来并不困难,比如举例到“种水果,师徒取经”之类的例子,贴近生活,形象有趣但最大的问题来了:对于思维的传授不多,让读者只能是“我承认你说的例子我懂了,但我不知道在开发中怎么用”,对吧,毕竟平日里的开发,见到的那么多都是管理系统,电商网站,手机端开发等等,请问那些“苹果梨子”的举例我怎么用呢?特别对于看这本书的读者往往都偏向入门,他们看了书之后只知道怎么“种水果”了,但不知道怎么把水果转成项目中的具体功能了
所以说这本书,适合对于设计模式还不够了解的人阅读,然后读完后,如果真希望能用上,请还读另外的更深的书籍。
———-——-——-——-——-——-——-——-——-
书籍:《研磨设计模式》
豆瓣评分:8.1分
这本书是我看过几本往中层深度走的设计模式中讲的算是既简洁,又带有一定实际项目价值的书了,所以豆瓣也给出了不错的分数。这本书中类似水果之类的例子较少了,偏向于讲一些思维,也重在自行优化一些方法,特别是举例也是大量以生产开发中的项目功能点来举例,这种例子,就算是“照搬”,也比之前的种水果的例子有意义,加上作者的讲述也在教授大家更灵活的使用设计模式
———-——-——-——-——-——-——-——-
书籍:《设计模式 : 可复用面向对象软件的基础》
鼻祖之书,这本书算是设计模式的最深层参考资料了,我不敢再多评论,豆瓣9.1分评价,业内评价也是杠杠的,所以,等到真能看透这本书的,本文之言,皆为废话。
提到三本典型的书之后,最后先总结一下目前自己的感受:
不要想着去“套用”某种模式
比如某些童鞋经常在乎某某模式怎么某个参数或者某个方法为什么一定要那样,如果我变动一下,是不是就错了?是不是我在生产开发中,一定要一五一十的按照某个模式来做,它有几个参数,它有几个方法,我必须一个都不落下,否则就“不正统”了,就不是用设计模式了。
千万不要在这种问题上纠结!你是否“用到了”一个设计模式,不在乎你是否写出了“长得像”它的代码格式,而是在于你是否用了他的理念来完成它的目的,比如是否达到了和他一样的不错的扩展性,良好的可阅读性,高内聚低耦合的原则是否达到等等。只要有了,那就用对了。
你真正需要达到的境界,不是:
“嗯..最近有个项目,我想用上一下装饰器模式,那模式看起来挺酷的,加进去了也挺能‘上档次’,可以完美体现我的OO思想,好我想想我怎么把代码往那个样子改”
而是
“嗯..最近有个项目,他的业务功能上有些不可预料的叠加问题,而且以后还会频繁扩展修改,我该怎么设计呢...嗯..大概是这样这样..(在心中已经非常自然的画出了类似于装饰器模式的架构图)..好了,这个应该可以了..这好像是装饰器模式吧?哦,改进一下可以用上了”
设计模式,是在用思想解决问题的时候,不知不觉用上的,而非刻意为之。
而至于设计模式究竟有多少种?
我曾经也一直去查,甚至还去像背古诗一样背过,就好像觉得背下来了,就等于游戏里面拿到了所有的装备一样,我就nb了
其实并不是,后来发现
当自己真正熟练了一些后,原来他究竟有多少种不重要,因为万变不离其宗,你可以说它有100种,也可以说只有一两种
其实,你只需要一把新手剑和一件布衫,利用自己熟练的技法与走位,就足够打败无数的对手了
网友评论