Hirdetés
- Épített vízhűtés (nem kompakt) topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- AMD Navi Radeon™ RX 7xxx sorozat
- Kormányok / autós szimulátorok topikja
- Azonnali alaplapos kérdések órája
- Azonnali informatikai kérdések órája
- 3D nyomtatás
- Házimozi belépő szinten
- OLED TV topic
- Sony MILC fényképezőgépcsalád
Ú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
- Neked tükröt, az iPhone Airnek emléket állít a Realme
- Milyen autót vegyek?
- One otthoni szolgáltatások (TV, internet, telefon)
- Épített vízhűtés (nem kompakt) topic
- Autós topik
- Rekord negyedévet zárt az Apple
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Formula-1
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- AMD Navi Radeon™ RX 7xxx sorozat
- További aktív témák...
- Sapphire Nitro+ RX 5700 XT 8GB Garanciával!
- LG 50" (127 cm) Ultra HD TV 4K Active HDR / webOS 4.0 / 2018-as típus (50UK6300MLB)
- Vanda GAMER-Pc, ASUS B560m, i5-11400F, 16GB DDR4, 1TB PCIe M.2 SSD, RTX 5050 8GB, 550W 90+, WiFi
- Kingston Fury Beast 2x8GB ddr4 2666mhz KF426C16BBK2
- OHH ! Dell Latitude 9430 Üzleti Profi Prémium Ultrabook 14" -80% i7-1265U 32/1TB IRIS Xe FHD+
- BESZÁMÍTÁS! ASRock B550 R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Zalman S2 TG Seasonic 750W
- Xiaomi Redmi Note 14 Pro+ / 8/256GB / Kártyafüggetlen
- Samsung Galaxy S21 5G / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- GYÖNYÖRŰ iPhone 14 Pro Max 256GB Space Black -1 ÉV GARANCIA -Kártyafüggetlen, MS4031
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


