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

P.W*_*P.W 13 c++ design-patterns

1994年推出的GoF设计模式书是用C++语言编写的,许多代码示例都是用C++编写的.其他语言的程序员认为他们的语言不需要这23种设计模式,因为这些语言具有使许多模式冗余的特征.

来自维基百科:

设计模式的一个主要批评是它的模式只是C++缺少功能的变通方法,用冗长的具体模式取代优雅的抽象特征,基本上成为"人类编译器"或"手工生成某些宏的扩展".Peter Norvig演示了设计模式中23种模式中的16种在Lisp或Dylan中被简化或消除(通过直接语言支持).

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

列出设计模式以及C++语言功能可以消除或简化对该模式的需求.

小智 1

您是对的,现在不需要许多模式。然而,一些架构模式(例如适配器)是“语言不敏感的”,并广泛用于企业编程中以解耦层。某些模式(例如访问者)比基于新语言功能的替代模式更具可读性和更好的控制性。所以我认为设计模式应该修改但不应该丢弃。