首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >现代C++在多大程度上消除了对设计模式的需求?

问现代C++在多大程度上消除了对设计模式的需求?
EN

Stack Overflow用户
提问于 2018-08-12 12:49:52
回答 2查看 375关注 0票数 13

GoF于1994年出版的“设计模式”( Design )一书是用类似于C++的语言编写的,许多代码示例都是用C++编写的。其他语言的程序员认为他们的语言不需要这23种设计模式,因为这些语言的特性使得许多模式变得多余。

维基百科:

对设计模式的一个主要批评是,它的模式只是弥补了C++中缺少的特性,用冗长的具体模式取代了优雅的抽象特性,本质上成为“人工编译器”或“手工生成某些宏的扩展”。Peter表明,在Lisp或Dylan中,在设计模式的23种模式中,有16种模式被简化或消除(通过直接语言支持)。

自“设计模式”( Design )出版以来,C++经历了五次修订( 98、03、11、14、17)。所以问题是,现代C++在多大程度上简化或消除了对这23种设计模式的需求?

最好列出设计模式和C++语言特性,这样可以消除或简化对该模式的需求。

EN

回答 2

Stack Overflow用户

发布于 2018-10-03 11:54:37

你说得对,现在不需要很多模式。然而,一些像适配器这样的体系结构模式是“语言不敏感的”,并且在企业编程中被广泛地用于解耦层。有些模式,如访问者,更易阅读和更好地控制基于新语言特性的替代方案。因此,我认为设计模式应该修改,但不应该放弃。

票数 1
EN

Stack Overflow用户

发布于 2018-10-03 12:25:28

我想说的是,设计模式是使用语言特性在特定语言中建模的概念。

例如,正如注释中所述,命令模式可以使用std::function或任何其他可调用的方式建模。

但是,模型并不会使概念变得不必要。概念是思考和设计的非常有用的工具,而模型则是在实现时出现的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51808990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档