Não é um anti-padrão. Os antipadrões têm alguma propriedade que faz parecer uma boa ideia, o que leva as pessoas a fazer isso de propósito; eles são planejados como padrões e então tudo fica terrivelmente errado.
É também o que faz debates sobre se algo é um padrão, um antipadrão ou um padrão comumente mal aplicado que ainda tem usos em alguns lugares.
Isso está errado.
Para adicionar um pouco mais.
Este código é supersticioso, ou, na melhor das hipóteses, uma prática de culto de carga.
Uma superstição é algo feito sem uma justificativa clara. Pode estar relacionado a algo real, mas a conexão não é lógica.
Uma prática de culto de carga é aquela em que você tenta copiar algo que você aprendeu de uma fonte mais instruída, mas na verdade você está copiando os artefatos de superfície ao invés do processo (assim chamado para um culto em Papua Nova Guiné). que faria rádios de controle de aeronaves de bambu na esperança de que os aviões japoneses e americanos da Segunda Guerra Mundial voltassem).
Em ambos os casos, não há nenhum caso real a ser feito.
Um antipadrão é uma tentativa de uma melhora razoável, seja na pequena (aquela ramificação extra para lidar com aquele caso extra que precisa ser resolvido, que leva ao código do espaguete) ou no grande onde você deliberadamente implementar um padrão que seja desacreditado ou debatido (muitos descreveriam os singletons como tal, com alguns excluindo somente a gravação - por exemplo, registrando objetos ou objetos somente para leitura, por exemplo - e alguns condenariam até mesmo aqueles) ou então onde você Resolvendo o problema errado (quando o .NET foi lançado pela primeira vez, a MS recomendou um padrão para lidar com o descarte quando você tinha campos não gerenciados e campos gerenciados descartáveis - ele realmente lida com essa situação muito bem, mas o problema real é que você temos os dois tipos de campo na mesma classe).
Como tal, um antipadrão é algo que uma pessoa inteligente que conhece bem o idioma, o domínio do problema e as bibliotecas disponíveis fará deliberadamente, o que ainda tem (ou é argumentado ter) um lado negativo que supera o lado positivo.
Como nenhum de nós começa conhecendo bem uma determinada linguagem, domínio do problema e bibliotecas disponíveis, e já que todos podem perder algo ao passar de uma solução razoável para outra (por exemplo, começar a armazenar algo em um campo para um bom uso e tente refatorar, mas não completar o trabalho, e você vai acabar com o código como na pergunta), e como todos nós perdemos as coisas de vez em quando no aprendizado, todos criamos algum código supersticioso ou de culto à carga. em algum ponto. O bom é que eles são realmente mais claros para identificar e corrigir do que os antipadrões. Os antipadrões verdadeiros podem ser, sem dúvida, antipadrões, ou ter alguma qualidade atraente, ou pelo menos ter alguma forma de atraí-los, mesmo quando identificados como ruins (muitas e poucas camadas são ambas incontrolavelmente ruins, mas evitando uma leva ao outro).