- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- sh4d0w: Nyitlocker
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Luck Dragon: Asszociációs játék. :)
- gerner1
- kraftxld: Diáklaptop - Dell Latitude 3140 - Királyunk ajándéka
- sziku69: Fűzzük össze a szavakat :)
- Sirandrish: Dohányzás Vége(!?)
- sziku69: Szólánc.
Ú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
Hirdetés
- Samsung Galaxy S10+ / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- Samsung Galaxy S22 / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- Xiaomi 14T Pro / 12/512GB / Kártyafüggetlen / 12Hó Garancia
- Xiaomi 14T / 12/256GB / Kártyafüggetlen / 12Hó Garancia
- Samsung Galaxy A35 5G / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Apple iPhone 12 Mini / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku: 89%
- Samsung Galaxy A52s 5G / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- Xiaomi 11T 128GB,Újszerű,Adatkabel,12 hónap garanciával
- Ulefone Armor Pad 5 Pro
- ÁRGARANCIA!Épített KomPhone i5 14600KF 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

