Es werden hin und wieder auch Argumente gegen die Verwendung von Mustern angeführt. Werfen wir einen Blick auf die typischsten Argumente, die gegen die Verwendung von Mustern sprechen.
Typischerweise entsteht der Bedarf an Mustern, wenn Entwickler eine Programmiersprache oder eine Technologie wählen (oder wählen müssen), der die erforderliche Abstraktionsebene fehlt. In diesem Fall werden Muster zu einer Behelfslösung, die der Sprache die dringend benötigten Zusatzfähigkeiten verleiht.
Entwurfsmustern versuchen, einen bereits weit verbreiteten Ansatz zu systematisieren bzw. zu verallgemeinern. Diese Vorlage wird von vielen Entwicklern als Dogma angesehen und sie implementieren das Muster „auf den Punkt“, ohne es an den Kontext des Projekts flexibel anzupassen.
Beispielsweise kann das Strategie-Entwurfsmuster mit einer einfachen anonymen (Lambda-)Funktion in den meisten modernen Programmiersprachen (auch C++) implementiert werden.
„Wenn Sie nur einen Hammer haben, sieht alles aus wie ein Nagel.“
Dies ist das Problem, das viele Anfänger verfolgt, die sich gerade mit Entwurfsmustern vertraut gemacht haben. Nachdem sie etwas über Muster gelernt haben, versuchen sie, diese überall anzuwenden, selbst in Situationen, in denen einfacherer Code gut funktionieren würde.