我正在学习C++,除了编程设计模式在实际大型项目中必不可少这一事实外,我对这方面的知识了解不多。希望我的理解在某种程度上是正确的。
这是否适用于所有面向对象的语言,还是我需要专门研究C++设计模式。
此外,它如何帮助您。作为C++程序员,这真的很重要吗。
请提供建议。
我正在学习C++,除了编程设计模式在实际大型项目中必不可少这一事实外,我对这方面的知识了解不多。希望我的理解在某种程度上是正确的。
这是否适用于所有面向对象的语言,还是我需要专门研究C++设计模式。
此外,它如何帮助您。作为C++程序员,这真的很重要吗。
请提供建议。
设计模式经常被误解。它们实际上是为有经验的用户提供一种描述常见情况的简便方式。在学习C++时,您不需要过于担心它们。
大多数设计模式对所有面向对象的语言都是通用的。
对我来说,设计模式只是缩短程序员之间沟通时间的抽象概念。与其表达程序设计的复杂思想,你可能会找到一个描述程序设计的模式名称。
例如,TPM说“我们应该在这里使用单例”,而你理解为“我们应该在这里使用类的一个实例”。
学习设计模式很有用,但一个人可以在不知道任何模式的情况下编程,却经常使用它们。
我认为设计模式是通过经验获得的智慧的集合,特别是解决代码灵活性和可维护性的问题。例如:通过使用外观模式,我们可以在不更改使用外观的代码的情况下更改实现。
我认为可以说所有编程语言都有值得掌握的智慧,并且某种形式的设计模式将会很有用。C/C++/Java/C#等传统语言似乎提供了特别丰富的智慧。C++非常复杂,确实受益于一些关键的设计模式。
有些人认为设计模式是弥补语言缺陷的一种方式,这意味着“更好”的语言可能需要更少的模式。我的感觉是,在所有情况下,我们都可以从经验丰富的人身上学到东西,而模式可以帮助我们将他们的智慧编码。
编辑后添加:Munish提出了一个有趣的观点,最好先进行一些重新发明?通过编写一些没有显式使用模式的真实代码,您可能会开始对自己编写的内容感到不满...当我更改这个时,我需要更改所有那些,有没有更好的编写方式?...这可能会驱使您真正需要模式,从而激发您的学习动力。
如果您有时间以这种方式学习,我认为您可能会受益匪浅。
设计模式是针对项目设计阶段中常见问题的解决方案。这些模式提供了我们可以在代码中使用的解决方案,独立于编程语言。例如,有一个单例设计模式,它确保一个类只有一个实例。现在有许多场景可能需要这个模式的解决方案。您可以将这些模式的解决方案用于您的代码中。
它们在软件开发中提供了可重用性。简而言之,设计模式帮助设计人员更快地正确设计。
为了更好地理解,您可以参考可重用面向对象软件元素的设计模式