20 June 2020
设计模式是解决软件设计中常见问题的典型解决方案。它们就像预制的蓝图,可以对其进行自定义以解决代码中反复出现的设计问题。
设计模式不是算法:设计模式经常与算法被混淆,因为它们都可以为现有问题提供解决方案。但是它们肯定是不同的,否则我们将不会将它们作为两个不同的主题进行研究。 算法可以提供清晰的步骤,逐步解决问题,而设计模式可以看作是总体解决方案。对于两个单独的程序,相同设计模式的代码可能完全不同。
因此,既然我们已经了解了什么是设计模式(广义上),我觉得作为程序员有以下几个原因学习设计模式:
当不得不一次又一次地编写相同的代码时,每个程序员都会认为任务很繁琐。这就是使用设计模式的地方。 设计模式不是库或模块,它们是在编写代码时集成并牢记的准则,使代码更灵活。如同是一个蓝图,知道结果是什么,实施完全取决于程序员。
开始从C进行编码,然后再使用C++,这就是学习面向对象编程的时候。但是,设计模式提供了使用OOPS概念的更有效,更可靠的方法。 可以说,设计模式为如何使用OOPS提供了更好的蓝图。比如,继承很不错,但不能在运行时使用,这时候就可以使用装饰器设计模式了。
在我们创建新的解决方案的过程中,软件系统内部常常存在很多不确定性。在这样情况下,具体的示例和已知的设计参数都有助于定义问题和解决方案。 在讨论和编码中使用设计模式可提供许多此类具体信息的链接。在代码中实现设计模式并明确使用的模式还可以很好地减少以后的开发人员可能遇到的问题。
当review同事的代码时,要花很多时间来理解同事的代码,实际上是在告诉他们,他们的时间对您来说几乎没有价值。 设计模式再次解救!使用共享并建立的概念不会改变结果,但会让队友容易理解,这对每个人都是最好的。
像Angular,React,Ember和Vue这样的许多框架都在使用它们。Angular的基于组件的UI可能是由于其设计模式,并提供了用户友好的树状结构。包括React如何利用Factory和Abstract Factory设计模式。设计模式可以说无处不在
结论,在使用设计模式时,始终确保采用正确的解决方案模式来解决问题,否则通常会很麻烦。 设计模式绝对值得投入时间,所以请继续。