Czy uważasz to za wzór singleton / singleton?

Wyobraź sobie w pliku Global.asax.cs Miałem klasę instancji jako pole prywatne. Powiedzmy tak:

private MyClass _myClass = new MyClass();

I miałem metodę statyczną na Global o nazwie GetMyClass (), która pobiera bieżącą aplikację HttpApplication i zwraca tę instancję.

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

Mogłem więc uzyskać instancję na bieżącym żądaniu httpapplication, wywołując Global.GetMyClass ().

Pamiętaj, że istnieje więcej niż jedna (globalna) aplikacja HttpApplication. Dla każdego żądania istnieje aplikacja HttpApplication, która jest łączona / współdzielona, ​​więc w najprawdziwszym sensie nie jest to prawdziwesingel. Ale w pewnym stopniu podąża za wzorcem.

Tak więc, jak zadałeś pytanie, czy uważasz to za wzór singletonowy?

Czy powiedziałbyś, że nie powinien być używany? Czy zniechęciłbyś go do używania? Czy powiedziałbyś, że to jestmożliwie zła praktyka jak prawdziwy singleton.

Czy widzisz jakieś problemy, które mogą wyniknąć z tego typu scenariusza użytkowania?

A może powiesz, że nie jest to prawdziwy singleton, więc jest OK i nie jest złą praktyką. Czy poleciłbyś to jako pół-quasi singleton, w którym wymagane jest wystąpienie na żądanie? Jeśli nie, jakiego innego wzorca / sugestii użyjesz / podasz?

Czy kiedykolwiek używałeś czegoś takiego?

Użyłem tego w poprzednich projektach, ale nie jestem pewien, czy to praktyka, z której powinienem trzymać się z dala. Nigdy wcześniej nie miałem żadnych problemów.

Proszę, daj mi swoje przemyślenia i opinie na ten temat.

Nie pytam, czym jest singleton. I uważam, że pojedyncza zła praktyka jest stosowana niewłaściwie, co jest w wielu wielu przypadkach. To ja. Jednak nie o to mi chodzi. Próbuję omówić ten scenariusz, który podałem.

questionAnswers(6)

yourAnswerToTheQuestion