Kas ir tik slikts vienvietīgajos?

Singleton modelis ir pilntiesīgs GoF'rakstu grāmatas biedrs, taču pēdējā laikā šķiet, ka izstrādātāju pasaule to ir atstājusi bāreņu statusā. Es joprojām diezgan daudz izmantoju singletonus, īpaši rūpnīcas klasēm, un, lai gan ir jābūt nedaudz uzmanīgam attiecībā uz daudzpavedienu jautājumiem (kā jebkurā klasē), es nesaprotu, kāpēc tie ir tik briesmīgi.

Īpaši Stack Overflow, šķiet, pieņem, ka visi piekrīt, ka singletoni ir ļaunums. Kāpēc?

Lūdzu, pamatojiet savas atbildes ar "faktiem, atsaucēm vai īpašām zināšanām"

  1. To var viegli (ab)izmantot kā globālo mainīgo.
  2. Klases, kas ir atkarīgas no singletoniem, ir relatīvi grūtāk testēt izolēti.
Komentāri (0)

Skatīt Wikipedia Singleton_pattern

To daži cilvēki uzskata arī par pretveidu, jo uzskata, ka tas tiek pārmērīgi izmantots, ieviešot nevajadzīgus ierobežojumus situācijās, kad vienīgā klases instance patiesībā nav nepieciešama[1][2][3][4].

Atsauces (tikai attiecīgās atsauces no raksta)

  1. ^ Alex Miller. Patterns I hate #1: Singleton, 2007. gada jūlijs.
  2. ^ Scott Densmore. Kāpēc singletoni ir ļaunums, 2004. gada maijs.
  3. ^ Steve Yegge. Singletonus uzskata par muļķiem, 2004. gada septembris.
  4. ^ J.B. Rainsberger, IBM. Use your singletons wisely, 2001. gada jūlijs.
Komentāri (2)

Tā kā tie būtībā ir objektorientēti globālie mainīgie, parasti klases var veidot tā, lai tie nebūtu nepieciešami.

Komentāri (4)