wrth ddefnyddio'r patrwm Singleton, Dim ond un achos yn cael ei greu yn aml edafu?
Bydd gan ddefnyddio dosbarth Singleton threadsafe gwarantu mai dim ond un achos yn cael ei greu.
dosbarth selio cyhoeddus Singleton
{
sefydlog preifat Singleton Singleton = null;
statig singletonLock gwrthrych readonly breifat = gwrthrych newydd();
Singleton preifat() {}
sefydlog cyhoeddus Singleton GetInstance()
{
cloi (singletonLock)
{
os (singleton == null)
{
singleton = new Singleton();
}
return singleton ;
}
}
}
Issue will raise only when the creation of first instance.
Using lock() yn rhoi i ni y edau yn ddiogel er mwyn osgoi gweithredu o ddau edafedd ar y un pryd i greu achos.
Unwaith eto, rydym yn gwirio'r (singletonobject == null) felly bydd yn sicrhau y bydd dim ond unwaith enghraifft yn cael ei greu.
Bydd yr opsiwn gwirio dwbl yn brawf llawn ar gyfer ein dosbarth.
Ad a Ateb