Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: Agglegénykonyha különkiadás 2 – Kajás poénok
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Szólánc.
- bambano: Bambanő háza tája
- Candy: AOOSTAR WTR PRO – NAS, alkoss, gyarapíts
- suste: Openwrt Barrier Breaker 14.07 saját verzió Tp-link routerekre
- dobragab: PH! userscript-gyűjtemény
Ú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
- Apple MacBook
- A tajvani chipgyártóknak is beteszi a kaput a Hormuzi-szoros lezárása
- BMW topik
- Luck Dragon: Asszociációs játék. :)
- iPhone topik
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Mesterséges intelligencia topik
- Starlink
- Witcher topik
- Amlogic S905, S912 processzoros készülékek
- További aktív témák...
- Lenovo Thunderbolt 3 kábel (4X90U90617)
- Használt számítógépek/merevlemezek számlával, garanciával! Ingyen Foxpost/PostaPont!
- Eladó EDIFIER ES prémium hangszórók ES300 / ES60 / ES20
- HIBÁTLAN iPhone 13 Pro 128GB Alpine Green-1 ÉV GARANCIA - Kártyafüggetlen, MS4665, 100% AKKSI
- Xiaomi Mi 10T Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
