Ce n'est pas un anti-modèle. Les anti-modèles ont certaines propriétés qui en font une bonne idée, ce qui pousse les gens à le faire volontairement; ils sont planifiés comme des motifs et ensuite ça va terriblement mal.
C'est aussi ce qui fait que l'on discute du fait de savoir si quelque chose est un motif, un anti-motif ou un motif couramment mal appliqué qui peut encore être utilisé à certains endroits.
C'est juste faux.
Pour en ajouter un peu plus.
Ce code est superstitieux ou, au mieux, une pratique culte du fret.
Une superstition est une chose faite sans justification claire. Cela peut être lié à quelque chose de réel, mais la connexion n’est pas logique.
Une pratique de culte de fret est une pratique dans laquelle vous essayez de copier quelque chose que vous avez appris d’une source mieux informée, mais vous copiez en réalité les artefacts de surface plutôt que le processus (ainsi nommé pour un culte en Papouasie-Nouvelle-Guinée qui ferait des radios de contrôle des avions en bambou dans l’espoir de faire revenir les avions japonais et américains de la Seconde Guerre mondiale).
Dans les deux cas, il n'y a pas de véritable cas à justifier.
Un anti-modèle est une tentative d'amélioration raisonnable, que ce soit dans le petit (cette branche supplémentaire pour traiter le cas supplémentaire qui doit être traité, qui mène au code spaghetti) ou dans le grand où vous implémentez très délibérément un modèle soit discrédités, soit débattus (beaucoup décriraient les singletons en tant que tels, certains excluant les objets en écriture seule - par exemple, les objets de journalisation ou en lecture seule, par exemple les objets de paramètres de configuration - et certains condamneraient même ceux-ci), ou encore lorsque vous résolvez le problème. Mauvais problème (lorsque .NET a été mis en marché pour la première fois, MS a recommandé un modèle pour traiter l’élimination lorsque vous disposiez à la fois de champs non gérés et de champs gérés jetables - il résout effectivement très bien cette situation, mais le vrai problème est que vous avez les deux types de champs dans la même classe).
En tant que tel, un anti-modèle est quelque chose qu'une personne intelligente qui connaît bien la langue, le domaine problématique et les bibliothèques disponibles fera délibérément, qui a toujours (ou prétend avoir) un inconvénient qui le dépasse.
Aucun d'entre nous ne connaissant bien une langue donnée, un domaine problématique et les bibliothèques disponibles, et étant donné que tout le monde peut rater quelque chose lorsqu'il passe d'une solution raisonnable à une autre (par exemple, commencer à stocker quelque chose dans un champ pour un bon usage, puis essayer de refactorisez tout, mais ne terminez pas le travail, et vous obtiendrez du code comme dans la question), et comme nous manquons tous de temps en temps de choses dans l'apprentissage, nous avons tous créé un code superstitieux ou culte le cargo à un moment donné . La bonne chose est qu’ils sont en fait plus faciles à identifier et à corriger que les anti-modèles. Les véritables anti-patterns ne sont sans doute pas des anti-patterns, ou ont une qualité attrayante, ou ont au moins un moyen de les attirer, même lorsqu'ils sont identifiés comme mauvais (trop et trop peu de couches sont à la fois mauvais, mais en évitant un mène à l'autre).