- Kiemelkedően csendes ASUS VGA jött a Noctua közreműködésével
- Mini kijelzős SSD-hűtő a Thermalright névjegyével
- Windows: mi történik valójában Leállításkor, Alvó módban és Újraindításkor?
- Gyenge Wi-Fi otthon? – a leggyakoribb hibák és megoldások
- Korábbi vezetője szerint 40 milliárd dollár kell az Intel versenyképességéhez
- VR topik (Oculus Rift, stb.)
- Az érkező Call of Duty is megnehezíti a csalást
- Milyen egeret válasszak?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen billentyűzetet vegyek?
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Kiemelkedően csendes ASUS VGA jött a Noctua közreműködésével
- Vezetékes FEJhallgatók
- Projektor topic
- Androidos tablet topic
Hirdetés
Ú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
- iPhone topik
- Samsung Galaxy A54 - türelemjáték
- VR topik (Oculus Rift, stb.)
- exHWSW - Értünk mindenhez IS
- Fotók, videók mobillal
- Béta iOS-t használók topikja
- Az érkező Call of Duty is megnehezíti a csalást
- BestBuy topik
- Milyen egeret válasszak?
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- További aktív témák...
Állásajánlatok
Cég: FOTC
Város: Budapest