Ú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
- Azonnali VGA-s kérdések órája
- Elemlámpa, zseblámpa
- Microsoft Excel topic
- Vivo V70 – a stílus érték?
- Szívós, szép és kitartó az új OnePlus óra
- Forza sorozat (Horizon/Motorsport)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Jelentősen meglazítja a gyeplőt a Windows 11 frissítéseknél a Microsoft
- Fejhallgató erősítő és DAC topik
- PR-Telecom
- További aktív témák...
- GOPRO MAX 360 szett + 2 akku + duplatöltő + tartozékok
- Bomba ár HP Pro X360 11 G1 - Intel N3350 I 4GB I 64GB SSD I 11,6" HD Touch I Cam I W11 I Gari
- Bomba ár! Lenovo ThinkPad T430s - i5-3GEN I 8GB I 320GB I 14" HD+ I Cam I W10 I Garancia!
- Bomba ár! Lenovo ThinkPad T430 - i5-3GEN I 8GB I 256SSD I 14" HD I Cam I W10 I Garancia!
- iPhone 16 Pro 97% akku 2 év garancia
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- AKCIÓ! 4TB Seagate Skyhawk ST4000 SATA HDD meghajtó garanciával hibátlan működéssel
- Huawei Watch GT 3 42 mm 6 hónap Garancia Beszámítás Házhozszállítás
- Cisco Catalyst C1000-48T-4G-L 48xRJ45 4xSFP switch
- ÁRGARANCIA!Épített KomPhone i5 12400F 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
