Parametrize from Above
Ïðèíöèïúò “Ïàðàìåòðèçèðàé îòãîðå” âúâ âîéíà ñúñ Singleton, èçòî÷íèê “The PfA Papers: From the Top”, àâòîð Kevlin Henney :
A by-product of PfA – and also a commonly cited motivation for it – is the reduction of Singletons and other globals in a body of code.
Õàðåñà ìè îïèñàíèåòî, êîåòî àâòîðúò å äàë íà íàé-÷åñòèòå óïîòðåáè íà øàáëîíà Singleton âúâ âòîðàòà ñòàòèÿ îò ñåðèÿòà – “The PfA Papers: The Clean Dozen”. Ñïîðåä Henney, îáèêíîâåíî ñêðèâàìå ÷óâñòâîòî ñè íà âèíà, ÷å ïîëçâàìå ãëîáàëåí îáåêò, êàòî îïðàâäàâàìå ñúùåñòâóâàíåòî ìó è ãî “ìàñêèðàìå” êàòî Singleton – èçïîëçâàíåòî íà øàáëîí çà äèçàéí âèíàãè íîñè óäîâëåòâîðåíèå è óñïîêîåíèå. Ðàçáèðà ñå, ùîì å øàáëîí, ÿâíî å íåùî äîáðî 😉
Òðåòàòà ñòàòèÿ, “The PfA Papers: Context Matters” íàáëÿãà íà êîìóíèêàöèÿòà ìåæäó ñëîåâåòå â ñèñòåìàòà ïîä ôîðìàòà íà ïðåäàâàíåòî íà êîíòåêñò.
Èçîáùî, øàáëîíúò Singleton å íÿêàê ìíîãî ëåñåí çà “íåïðàâèëíà óïîòðåáà”. Îáèêíîâåíî ñå ïîäöåíÿâàò ïðîáëåìèòå â ðåàëèçàöèÿòà ìó è òàêà òîé èçãëåæäà ïðèìàìëèâî ëåñåí çà èìïëåìåíòèðàíå. Àêî íå ñå ëúæà, çà ìåí òîâà áå è ïúðâèÿò øàáëîí çà äèçàéí, ñ êîéòî èçîáùî ñå ñáëúñêàõ. Íî ñàíòèìåíòàëíèòå ìè ïîäáóäè ñïðÿìî íåãî ñå èçïàðèõà êîãàòî â åäèí ïðåäèøåí ïðîåêò ñå ñáëúñêàõ ñ êîä, êîéòî ïðîñòî íÿìàøå òåñòâàíå èìåííî çàðàäè òîâà, ÷å íÿêîëêî îñíîâíè êëàñà áÿõà singleton-è è èçâëè÷àõà ñàìè èíèöèàëèçàöèîííèòå ñè ïàðàìåòðè âìåñòî äà ãè ïðèåìàò îò ãîðå.