第228章(1 / 1)

大话设计模式 吴强 831 字 2个月前

大B:“刚毕业的大学生面临人生的这一大转折。要好好准备,去迎接机遇与挑战。现在我们就来聊聊设计模式吧。学了这么久的设计模式,你有什么感想吗?今天我们来总结一下设计模式吧!”

小A:“刚开始学习设计模式的时候,感到这些模式真的非常抽象。在设计过程中,我发现了很多设计模式的用处,也确实应用了很多设计模式,这让我越来越感到设计模式的重要性。”

大B:“设计模式是个好东西,它给出了很多设计中的技巧与思路,对于很多优秀的设计,加以总结与提炼。设计模式并非是人拍脑瓜想出来的,而是他们搜集了其他人优秀的设计,加以整理出来的,他们不是这些模式的创造者,仅仅是整理者。”

小A:“应用设计模式还给我们带来了很多好处。”

大B:“是啊!软件将变得更加灵活,模块之间的耦合度将会降低,效率会提升,开销会减少。更重要的,设计模式就好像美声唱法中的花腔,让你的设计更加漂亮。总的来说,设计模式似乎将软件设计提升到艺术的层次。”

小A:“设计模式已经被广泛的应用了,在现在很多的图形界面框架都使用了MVC模式,大量跌代器模式的应用,彻底改变了我们对集合的操作方式。不仅如此,应用了设计模式的设计,往往被看成为优秀的设计。这是因为,这些设计模式都是久经考验的。”

大B:“在学习和使用设计模式的时候,往往出现一个非常严重的误区,那就是设计模式必须严格地遵守,不能修改。但是设计模式不是设计模型,并非一成不变。正相反,设计模式中最核心的要素并非设计的结构,而是设计的思想。只有掌握住设计模式的核心思想,才能正确、灵活的应用设计模式,否则再怎么使用设计模式,也不过是生搬硬套。”

小A:“当然!掌握设计模式的思想,关键是要仔细研究模式的意图和结构。一个模式的意图,就是使用这个设计模式的目的,体现了为什么要使用这个模式,也就是需求问题。”

大B:“是啊!这个模式的结构,就是如何去解决这个问题,是一种手段、一种经典的解决方法,这种解决方法只是一种建议。两个方面结合起来,明白为什么需要设计模式,同时明白了如何实现这个模式,就容易抓住模式的本质思想。”

大B:“在抓住意图和结构的基础上,实践也是掌握设计模式的必要方法。”

大B:“当然,设计模式必须在某个场景下得到应用才有意义,这也是为什么要提供大量的例子用来说明模式的应用场景,这实际上是提供了一种上下文环境。学外语不是要强调‘语言环境’么,学习设计模式也是这样。”

小A:“嗯!是的。”

大B:“看到网上很多人在讨论设计模式,他们确实很有创意,满嘴都是模式的名字,恨不得写个HelloWorld都要应用到设计模式。设计模式确实是好东西,但是,中国有句古话叫作物极必反,即便是按照辩证法,事物总要一分为二的看。”

小A:“是啊!我们说设计模式的目的是为了让软件更加灵活,重用度更高。”

大B:“但是,某种意义上,设计模式增加了软件维护的难度,特别是它增加了对象之间关联的复杂度。”

小A:“嗯。对!”

大B:“我们总说,重用可以提高软件开发的效率。如果你是大牛,你自然希望你的设计可以被反复使用10000年,那就是:当世界毁灭的时候,你的设计依然存在。然而,现实是一个系统的设计往往在5年之内就会被抛弃,这是因为:1、软件技术产生了新的变化,使用新的技术进行的设计,无论如何都比你的设计好;2、硬件环境发生了很大变化,你的设计里对开销或者效率的追求已经没有意义了;3、新的大牛出现了,并且取代了你的位置。”

大B:“应用设计模式会导致设计周期的加长,因为更复杂了,但是很多项目还在设计阶段就已经胎死腹中,再好的设计也没有发挥的余地。”

大B:“当我们向设计模式顶礼膜拜的时候,我们还必须清醒地看到软件生产中非技术层面上的东西往往具有决定性作用。理想固然崇高,但现实总是残酷的。如何看清理想与现实的界限,恐怕是需要我们在实践中不断磨砺而体会出来的。在看完设计模式后,不妨反问以下自己,这些模式究竟能给你带来什么?”