Ú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
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- CASIO órák kedvelők topicja!
- Fejhallgató erősítő és DAC topik
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Bluetooth hangszórók
- Mini-ITX
- WoW avagy World of Warcraft -=MMORPG=-
- Linux kezdőknek
- Xeon 6+ néven hozza a Clearwater Forestet az Intel
- Arc Raiders
- További aktív témák...
- AKCIÓ!!! DDR5 GAMER PC: Intel Core Ultra 7 265KF +RX 9070/9070 XT +16-64GB DDR5! GAR/SZÁMLA!
- AKCIÓ! GAMER PC: i5-14400F (10mag/16szál) +RTX 5050/5060/5060Ti/5070/5080 +16-64GB DDR4! GAR/SZÁMLA!
- iPhone 13 Pro 126GB Gold Független 89% Gyári Akku iOS 17.3.
- Dell OptiPlex 7050 Micro i5-7500 / 8GB RAM / 256GB M.2 SSD
- Kompakt Gamer PC - i5-4750 + R9 380 4GB + 8 GB RAM
- HIBÁTLAN iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3337, 94% Akkumulátor
- iPhone 12 mini 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3457, 94% Akkumulátor
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AS USB-C Dock Gen2 (akár 3x4K felbontás)
- BESZÁMÍTÁS! ASUS H510M i7 10700K 16GB DDR4 512GB SSD RTX 3070 8GB ZALMAN S2 TG Chieftec 750W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő