我正在学习C ++ 我不太了解这些东西,除了在大型项目中实际工作时编程设计模式是必要的。我希望它在某种程度上是正确的。
这是所有面向对象语言的共同点,还是我需要专门研究 C ++设计模式。
另外,它对你有什么帮助。这对于学习C ++程序员来说非常重要。
请建议
答案 0 :(得分:5)
设计模式经常被误解。对于有经验的用户来说,它们实际上是一种描述常见情况的简写方法。在学习C ++时,你不需要太担心它们。
答案 1 :(得分:2)
您将在整个编程社区中听到有关设计模式的意见。
在我看来,确实存在模式封装的抽象,它们非常有用(工厂,单例,委托等)。我经常使用模式,但我自己有时会因阅读模式描述而显然缺乏深度或洞察力而感到困惑。这也适用于专门针对任何类型的设计模式的扩散。
当设计嘿有用时,它们是一种非常好的交流方式,当然它们会引导您完成设计或定义应用程序架构的过程。它们对于小型项目和大型项目都很有用,并且可以在不同的粒度级别应用。
Patters是一个通用概念,所有编程语言都支持它们。无论如何,如果你使用C ++,那么关注它的书是最好的,因为你会得到适应语言特征的模式。
在我看来,关于设计模式的真正基础书是:
GoF, Design Patterns: Elements of Reusable Object-Oriented Software
VV.AA。,Pattern-Oriented Software Architecture Volume 1: A System of Patterns
VV.AA。,Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects
答案 2 :(得分:1)
大多数设计模式对于所有面向对象的语言都是通用的。
答案 3 :(得分:1)
对我来说,设计模式只不过是抽象,缩短了程序员之间的沟通时间。您可以找到描述程序设计的模式名称,而不是表达程序设计的复杂概念。
E.g。 TPM说“我们应该在这里使用单身”,你解释“我们应该在这里使用一个类的实例”。
模式对学习很有用,但是人们可以在不知道任何模式的情况下进行编程,但却经常使用它们。
答案 4 :(得分:1)
我认为设计模式是经验所获得的智慧集合,尤其是解决代码的灵活性和可维护性问题。例如:通过使用外观,我们可以在不更改使用外观的代码的情况下更改实现。
我认为可以公平地说所有编程语言都有智慧被捕获,某种设计模式会很有用。 C / C ++ / Java / C#传统语言似乎提供了一种特别丰富的智慧似乎。 C ++非常粗糙确实从一些关键的设计模式中受益。
有些人认为设计模式是修补语言缺陷的一种方式,这意味着“更好”的语言可能需要更少的模式。我的感觉是,在所有情况下,我们都可以向经验丰富的人学习,模式帮助我们编纂他们的智慧。
编辑补充:Munish提出的有趣观点,最好先做一点重塑吗?通过编写一些真正的代码而不明确使用模式,你可能会开始对你所写的内容感到不满......当我改变这一点时,我需要改变这一切,是否有更好的方法来编写它? ......这可能会让你真正需要模式,从而激励你的学习。
如果你有足够的时间学习这种方式,那么我认为你可能会受益。
答案 5 :(得分:0)
设计模式是项目设计阶段常见问题的解决方案。这些模式提供了我们可以独立于编程语言使用的解决方案。有 Singleton设计模式,它确保只有一个类的实例。现在可能需要很多这样的例子。你可以使用这些模式的解决方案并在你的代码中使用。
它们提供了在软件开发中的可用性。简单地说,设计模式 帮助设计师更快地获得设计。
为了更好地理解,您可以参考Design Patterns: Elements of Reusable Object-Oriented Software