Você consideraria isso um padrão singleton / singleton?

Imagine no arquivo Global.asax.cs que eu tinha uma classe de instância como um campo privado. Vamos dizer assim:

private MyClass _myClass = new MyClass();

E eu tinha um método estático no Global chamado GetMyClass () que obtém o HttpApplication atual e retorna essa instância.

public static MyClass GetMyClass()
{
    return ((Global)HttpContext.Current.ApplicationInstance)._myClass;
}

Assim, eu poderia obter a instância na solicitação atual httpapplication chamando Global.GetMyClass ().

Tenha em mente que há mais de um (Global) HttpApplication. Há um HttpApplication para cada solicitação e eles são agrupados / compartilhados, portanto, no verdadeiro sentido, não é um problema real.singleton. Mas segue o padrão até certo ponto.

Então, como a pergunta foi feita, você consideraria isso no mínimo o padrão singleton?

Você diria que não deveria ser usado? Você desencorajaria seu uso? Você diria que é umpossivelmente má prática como um verdadeiro solteirão.

Você poderia ver algum problema que possa surgir deste tipo de cenário de uso?

Ou você diria que não é um verdadeiro solteirão, então tudo bem, e não é uma prática ruim. Você recomendaria isso como um singleton quase quádruplo em que uma instância por solicitação é necessária? Se não, qual outro padrão / sugestão você usaria / daria?

Você já usou algo assim?

Eu usei isso em projetos anteriores, mas não tenho certeza se é uma prática da qual eu deveria ficar longe. Eu nunca tive problemas no passado embora.

Por favor, me dê seus pensamentos e opiniões sobre isso.

Eu não estou perguntando o que é um singleton. E eu considero uma prática ruim singleton quando usada incorretamente, o que é em muitos e muitos casos. Esse sou eu. No entanto, não é isso que estou tentando discutir. Estou tentando discutir este cenário que dei.

questionAnswers(6)

yourAnswerToTheQuestion