« 上一篇下一篇 »

如何正确使用设计模式

软件开发发展到现在已经有了很多模式,相信大家对设计模式已经不再陌生,但是模式有那么多种,我们究竟怎样使用是正确的呢?

1.模式的必要性
设计模式不仅仅是软件开发和设计的基础,它还具有语言无关性。设计模式也为开发人员之间的交流提供了共同的“词汇”,从而使团队的沟通更加有效,通常短短的一句话就可以将一个问题讲明白,同时他也能促进团队组员不断学习。且设计模式是建立在一些重要的设计原则和思想之上进一步提炼,对不同的问题和场景给出了实际操作的代码示例和可以借鉴的结构。所以不管现存的设计模式有多少种,每一种模式都是从不同的侧面反应和遵守这些原则和思想的——万变不离其宗。

2.设计模式的最大优点
它是基于前人无数次实践的经验教训总结出来的结晶,是被反复证明过的。虽然它对同一类型的问题或场合给出了很好的解决方案,但是在使用的时候还是得具体问题具体分析,不能生搬硬套,为了模式而模式。

3.选择模式的指导原则
(1)你必须了解被选择的模式。不仅仅是了解模式的代码结构,而且对模式体现出来的抽象原则和思想都非常清楚,要知道这个模式的意图。一种模式,可以有很多种不同的的实现方式和变形,对一种模式的变形和使用场景了解得越多,就越能帮助你理解模式的意图,并且清楚它能解决的问题的范围。
(2)考虑模式的引入是否给问题带来了复杂性,而且这种复杂性是否有必要。有时候,对于一个问题,乍看似乎可以采用某模式,但是要记住一点,之所以采用模式,是为了更好地解决变化点,分离变化点,特别要考虑引入模式之后的成本,所以要考虑清楚是否原本就是最简单的——没有引入模式的方式会更好。
(3)封装变化点
在项目中去发现和查找是否存在一个相对于其他部分来说变化比较频繁的地方,如果存在,那么这个地方极有可能就是要使用模式的地方。
(4)当选择一种模式的时候,最好把它同组的其他模式也考虑一下,看看是否有更加合适的。

我们还可以学习一些在开发框架里面已经内置和使用了很多的模式。

不过,设计模式也不是万能的,有时候模式的引入也会给系统的设计带来一定的复杂性,把一个简单的问题复杂化,甚至有些开发者会掉进“模式怪圈”中——写任何一句代码都在挖空心思用模式。

所以,要正确的理解模式,不仅仅是掌握模式的结构代码这么简单,还要掌握模式的思想。

« 上一篇下一篇 »