Entwurfsmuster

By Wolfgang Keller
Originally written 2020-12-25
Based on a text originally written 2020-07-21
Last modified 2022-08-01

Klassischerweise werden Design-Patterns mit dem Inhalt des „Gang-of-Four“-Buchs (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides; Design Patterns. Elements of Reusable Object-Oriented Software) gleichgesetzt. Allerdings ist dieses Buch seit seinem Erscheinen massiver Kritik ausgesetzt. So wird beispielsweise dem Informatiker Peter Norvig das folgende Zitat bezüglich Design Patterns (im Sinne dieses Buches) zugeschrieben:

Design patterns are bug reports against your programming language.

Er vertritt die These, dass Design-Patterns vielmehr Zeichen einer mangelnden Expressivität der entsprechenden Programmiersprache darstellen. Eine Liste von Design-Patterns und wie stärkere Sprachfeatures einer Programmiersprache diese obsolet machen, kann man beispielsweise unter Are Design Patterns Missing Language Features [visited 2020-12-25T22:00:14Z] finden.

Für besagte These, dass Design-Patterns eigentlich Zeichen einer mangelnden Expressivität einer Programmiersprache darstellen, spricht auch die Tatsache, dass sich für Programmiersprachen, welche sich stark vom Stand von C++ beziehungsweise Java aus dem Jahr 1995 (als besagtes Buch erschien) unterscheiden, deutlich hiervon abweichende Entwurfsmuster herausgebildet haben.

Beispielsweise orientieren sich viele Entwurfsmuster in der Programmiersprache Haskell an Ideen aus dem mathematischen Gebiet der Kategorientheorie.

Somit kann man, dies beachtend, folgende unangenehme Frage durchaus begründet formulieren: Ist es legitim, vorhandene Kenntnisse in Kategorientheorie als Kenntnisse in „Software Design Patterns“ betrachten?