Hirdetés
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Notebook hibák
- Dell notebook topic
- NVIDIA GeForce RTX 3060 Ti / 3070 / 3070 Ti (GA104)
- Kormányok / autós szimulátorok topikja
- Stratégiai biztonsággal védekeznek a dráguló memóriák ellen a gyártók
- AMD vs. INTEL vs. NVIDIA
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen lézer nyomtatót vegyek?
Ú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
- Tényleg nem változik semmit a Samsung Galaxy S26+?
- Vicces képek
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Milyen hagyományos (nem okos-) telefont vegyek?
- Google Pixel Buds 2a és Pixel Buds Pro 2 összehasonlító gyorsteszt
- Linux kezdőknek
- Windows 11
- Filmvilág
- Notebook hibák
- Dell notebook topic
- További aktív témák...
- GIGABYTE GeForce RTX 4070 Ti GAMING OC
- Apple Watch Ultra (1. gen.) // 49mm // Black/Gray Trail Loop (M/L)
- Új, bontatlan G.SKILL 32GB (2x16GB) KIT DDR5 6000MHz CL36 Ripjaws M5 Neo RGB White EXPO - 10 év gari
- Új, bontatlan ADATA XPG 32GB (2x16GB) KIT DDR5 6000MHz CL30 Lancer Blade Black XMP/EXPO - 10 év gari
- Új, bontatlan ADATA XPG 48GB (2x24GB) KIT DDR5 6000MHz CL30 Lancer Blade RGB Black - 10 év garival!
- Bomba ár! Lenovo ThinkPad X270 - i3-7G I 8GB I 128SSD I 12,5" HD I HDMI I Cam I W11 I Garancia!
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD Sérült I HDMI I W10 I CAM I Garancia
- GYÖNYÖRŰ iPhone SE 2020 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3920, 100% Akksi
- LG 45GR95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- Frederick Forsythe: Isten ökle (nem olvasott)
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: Laptopműhely Bt.
Város: Budapest


