¿Consideraría esto un patrón de singleton / singleton?

Imagínese en el archivo Global.asax.cs que tenía una clase de instancia como un campo privado. Digamos así:

private MyClass _myClass = new MyClass();

Y tuve un método estático en Global llamado GetMyClass () que obtiene la HttpApplication actual y devuelve esa instancia.

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

Así que podría obtener la instancia en las solicitudes actuales httpapplication llamando a Global.GetMyClass ().

Tenga en cuenta que hay más de una HttpApplication (Global). Hay una HttpApplication para cada solicitud y se agrupan / comparten, por lo que en el sentido más verdadero no es un verdaderosemifallo. Pero sigue el patrón hasta cierto punto.

Entonces, como se plantea la pregunta, ¿consideraría esto al menos el patrón de singleton?

¿Dirías que no debería usarse? ¿Desaconsejarías su uso? ¿Dirías que es unposiblemente Mala práctica como un verdadero singleton.

¿Podría ver algún problema que pueda surgir de este tipo de escenario de uso?

O diría que no es un verdadero singleton, así que está bien, y no es una mala práctica. ¿Recomendaría esto como un semi-cuasi singleton donde se requiere una instancia por solicitud? Si no, ¿qué otro patrón / sugerencia usarías / darías?

¿Alguna vez has usado algo como esto?

He usado esto en proyectos anteriores, pero no estoy seguro de si es una práctica de la que debería alejarme. Sin embargo, nunca he tenido problemas en el pasado.

Por favor, dame tus pensamientos y opiniones sobre esto.

No estoy preguntando qué es un singleton. Y considero que una práctica única es una mala práctica cuando se usa incorrectamente, lo cual es, en muchos, muchos casos. Ese soy yo. Sin embargo, eso no es lo que estoy tratando de discutir. Estoy tratando de discutir este escenario que di.

Respuestas a la pregunta(6)

Su respuesta a la pregunta