如何正确学习和使用设计模式

发布时间:2018-02-12

学习设计模式必须注意“活学活用”,设计模式不是教条,而是思路,生搬硬套设计模式还不如不用。打下牢固的程序设计语言基础、夯实自己的编程思想、修炼开发内功才能游刃有余地使用设计模式。有的时候,或许你根本不知道任何设计模式,不考虑任何设计模式,却写着最优秀的代码,即使从“模式专家”的角度来看,都是最佳的设计,不得不说是“最佳的模式实践”,这是因为你积累的很多实践经验,知道“在什么场合代码应该怎么写”,这本身就是设计模式。

要正确使用设计模式,建议参考以下几点:

1.需求驱动

需求驱动不仅仅是功能性需求,还包括性能需求及运行时的需求,如软件的可维护性和可复用性等方面。设计模式是针对软件设计的,而软件设计是针对需求的,一定不要为了使用设计模式而使用设计模式。在不合适的场合生搬硬套地使用设计模式反而会使设计变得复杂,使软件难以调试和维护。

2.分析成功的模式应用项目

对现有的应用实例进行分析是学习模式的一个很好地途径,应当注意学习已有的项目不仅是学习设计模式如何实现,更重要的是注意在什么场合使用设计模式。

3.充分了解所使用的开发平台

设计模式大都是针对面向对象的软件设计的,因此在理论上适合任何面向对象的语言。但随着技术的发展和编程环境的改善,设计模式的实现方式会有很大的差别。在某些平台下,某些设计模式是自然实现的,某些模式已经被平台所实现,某些模式存在的上下文已经消失。  

这里的平台不仅指编程语言,还包括平台引入的技术。例如,Java EE引入了反射机制和依赖注入,这些技术的使用使设计模式的实现方式有了很大的改变。

4.在编程中领悟模式

软件开发是一项实践工作,最直接的方法就是编程。没有定式很熟却从来不下棋的围棋高手,也没有不会编程就能成为架构设计师的先例。对设计模式的掌握是水到渠成的事情。你可能是“顿悟”,也可能是“渐悟”,但前提必须有相当多的实践积累。当然,并不是不需要看书学习,但实践仍然是最需要重视的。

5.避免设计过度

设计模式解决的是设计不足的问题,但同时也要避免设计过度。一定要牢记简洁原则(Keep It Simple),要知道,设计模式是为了使设计简单,而不是更复杂。如果引入设计模式使得设计变得复杂,只能说我们把简单问题复杂化了,问题本身不需要设计模式。这里需要把握的是需求变化的程度,一定要区分需求的稳定部分和可变部分。一个软件必然有稳定部分,这个部分就是核心业务逻辑。如果核心业务逻辑发生变化,软件就没有存在的必要,核心业务逻辑是我们需要固化的。对于可变的部分,需要判断可能发生变化的程度来确定设计策略和设计风险。要知道,设计过度与设计不足同样对项目有害。

原文链接:http://blog.csdn.net/YANG_Gang2017/article/details/78690267