Hirdetés
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- iPhone topik
- One mobilszolgáltatások
- Szívós, szép és kitartó az új OnePlus óra
- Kiszivárgott, mikor érkezik a Galaxy S26
- Bemutatkozott a Poco X7 és X7 Pro
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Samsung Gear S3 - második kör
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmé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
- Kerékpárosok, bringások ide!
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Építő/felújító topik
- Parkside szerszám kibeszélő
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Linux Mint
- iPhone topik
- Filmvilág
- Okos Otthon / Smart Home
- Autós topik
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone i5 12400F 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- FIFA 16 Playstation 4
- Használt számítógépek/merevlemezek számlával, garanciával! Ingyen Foxpost/PostaPont!
- BESZÁMÍTÁS! Apple iPad Air 5 10.9 64GB WiFi tablet garanciával hibátlan működéssel
- LG 45GS95QX - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest


