Hirdetés
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- iPhone topik
- Xiaomi 11 Lite 5G NE (lisa)
- Fotók, videók mobillal
- Honor Magic V5 - méret a kamera mögött
- Xiaomi 15T Pro - a téma nincs lezárva
- Hivatalos a OnePlus 13 startdátuma
- One mobilszolgáltatások
- Yettel topik
Új hozzászólás Aktív témák
-
Peter Kiss
őstag
válasz
PazsitZ
#9912
üzenetére
A Singleton anti-pattern, tesztelhetetlen alkalmazást eredményez, illetve fogalmad sem lesz arról, hogyan működik az alkalmazás.
Elég csak arra gondolni, mi van akkor, ha kapsz egy egyébként működő kódhalmazt, amit használni szeretnél, de rejtett dependency-k vannak benne a singletonok miatt. Sosem szabad ilyet csinálni.
Példa:
<?php
/* ... */
$controllerFactory = $this->_controllerBuilder->GetControllerFactory($this->HttpContext);
$controller = $controllerFactory->CreateController($this->HttpContext);
if (!$controller->GetType()->ImplementsInterface("\\System\\Web\\Mvc\\IHttpHandler") || !$controller->IsStateLess()) {
$sdsf = new SessionProviderFactory();
$this->SessionManager = new SessionManager($this->HttpContext, new UsersAndGroupsDataContext(), $sdsf);
$this->SessionManager->Validate();
$this->HttpContext->Session = $this->SessionManager->GetCurrentSession();
}
if (!$controller->Execute($this->HttpContext, $this->_actionInvokers->GetActionInvoker(typeof($controller)))) {
throw new \Exception("Failed to execute action: " . $this->HttpContext->Route());
}
/* ... */Itt mondhatnám én is a $this->HttpContext átadása helyett, hogy akkor HttpContext::Instance() az egyes helyeken (kihagyva a metódusok paraméterlistájából), mert itt ugyanazt jelenti, de azt eredményezné, hogy még számomra se lenne világos, minek mire van szüksége.
A példában szereplő if block egyébként még javításra szorul.
Új hozzászólás Aktív témák
- Házimozi belépő szinten
- Gitáros topic
- Soundbar, soundplate, hangprojektor
- Gyúrósok ide!
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Luck Dragon: Asszociációs játék. :)
- Amlogic S905, S912 processzoros készülékek
- Spórolós topik
- Milyen belső merevlemezt vegyek?
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- További aktív témák...
- BESZÁMÍTÁS! Sony PlayStation 5 Slim 1TB SSD Lemezes konzol Elite kontrollerrel garanciával hibátlan
- BESZÁMÍTÁS! Sony PlayStation 5 825GB SSD lemezes konzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! Sony PlayStation 5 Slim 1TB SSD digital konzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! Dell Precision 5540 notebook - i9 9880H 64GB DDR4 2TB SSD nVidia Quadro T2000 4GB W11
- BESZÁMÍTÁS! MSI ThinA15 B7VF-449XHU Gamer notebook - R7 7735HS 16GB DDR5 1TB SSD nVidia RTX 4060 8GB
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3693, 100% Akksi
- Gamer PC-Számítógép! Csere-Beszámítás! I3 14100F / RTX 3060Ti / 16GB DDR5 / 1TB SSD
- GYÖNYÖRŰ iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3841, 100% Akkumulátor
- Eredeti Lenovo 230W töltők - 4X20Z83995
- Azonnali készpénzes nVidia RTX 2000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő


