Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-01-2008, 10:51   #21
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da trallallero Guarda i messaggi
non conosco bene il suo problema (ne ho già troppi io ) ma gli serve una sola istanza ed una funzione statica perchè deve passare una callback (puntatore alla funzione statica, appunto) ad una libreria C.
Quindi, per garantire che ci sia una sola istanza, vorrebbe usare una classe Singleton.

Il tipo è sparito di nuovo ed io devo uscire a sbrigare qualche faccenda
Grazie, a dopo
In realta' non gli serve sicuramente garantire che ci sia una sola istanza, gli serve che ne esista una sola nel suo processo. Sono due cose differenti. Comunque si puo' garantire che esista sia una sola istanza di una classe in un processo senza usare il Singleton pattern, quindi senza fare cose tipo:

Codice:
UglySingleton* my_ugly_singleton = UglySingleton::GetInstance();
fek è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 11:47   #22
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da fek Guarda i messaggi
In realta' non gli serve sicuramente garantire che ci sia una sola istanza, gli serve che ne esista una sola nel suo processo. Sono due cose differenti. Comunque si puo' garantire che esista sia una sola istanza di una classe in un processo senza usare il Singleton pattern, quindi senza fare cose tipo:

Codice:
UglySingleton* my_ugly_singleton = UglySingleton::GetInstance();
ariecchime ...
io faccio solo da ambasciatore, non sono abituati ad usare forum quì, quindi se il tipo mi dice che gli serve il singleton avrà i suoi buoni motivi

Gli serve che ne esista una sola nel suo processo è corretto, ma se prova ad accedere all'oggetto dalla libreria dinamica e se non dichiara l'oggetto come variabile globale, non funziona.

Comunque aggiorno quando mi fanno avere un esempio ... hanno provato anche ad usare un membro statico settato a 5 nel main.
La libreria lo visualizza come 0

E io ho ritenuto giusto appiccicare l'adesivo "Certified for Windows Vista" del nuovo monitor sul gabicesso

UglySingleton ... non te piacciono proprio eh
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 12:26   #23
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da trallallero Guarda i messaggi
ariecchime ...
io faccio solo da ambasciatore, non sono abituati ad usare forum quì, quindi se il tipo mi dice che gli serve il singleton avrà i suoi buoni motivi
Quante volte l'ho sentito dire
Ed i buoni motivi erano spesso una cosa del tipo "non so farlo in altro modo".
fek è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 12:38   #24
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da fek Guarda i messaggi
Quante volte l'ho sentito dire
Ed i buoni motivi erano spesso una cosa del tipo "non so farlo in altro modo".
beh, probabile, nessuno sa tutto

Resta il fatto che su Windows non va ... sto aspettando ancora il test, son tutti a pranzo.
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 12:49   #25
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da trallallero Guarda i messaggi
beh, probabile, nessuno sa tutto
Assolutamente, e c'e' chi ha voglia di imparare e chi invece va dritto per l'unica strada che conosce...
fek è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 12:51   #26
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da fek Guarda i messaggi
Comunque si puo' garantire che esista sia una sola istanza di una classe in un processo senza usare il Singleton pattern, quindi senza fare cose tipo:

Codice:
UglySingleton* my_ugly_singleton = UglySingleton::GetInstance();
C'è una strategia canonica per sostituire/rifattorizzare i Sigleton?
In tal caso avresti un link da postare? Interesserebbe anche a me, grazie.

Scusate l'OT

@EDIT:
Quote:
Originariamente inviato da cionci
Quella più semplice è portarsi dietro un parametro ovunque venga richiamato il singleton.
Perdonami, ma temo di non aver capito... puoi esplicitare ulteriormente la cosa?

Ultima modifica di banryu79 : 30-01-2008 alle 13:11.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 12:54   #27
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quella più semplice è portarsi dietro un parametro ovunque venga richiamato il singleton.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:10   #28
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci Guarda i messaggi
Quella più semplice è portarsi dietro un parametro ovunque venga richiamato il singleton.
Yup, di solito faccio cosi' e da' meno problemi di quello che sembra.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:22   #29
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ragazzi scusate se mi intrometto, ma quando dovrebbe venire utile un singleton?
Cioè per quali scopi solitamente si usano? Ora come ora non riesco a pensare dove lo userei...
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:29   #30
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Perdonami, ma temo di non aver capito... puoi esplicitare ulteriormente la cosa?
Cioè...in MyClass mi serve un singleton ? Allora passo l'istanza della classe che una volta era il singleton nel costruttore (se mi serve in molti metodi) o come parametro di un metodo.
Codice:
class MyClass
{
public:
   MyClass(MyExSingleton &param);
//oppure
   void MyPublicMethod(MyExSingleton &param);
};
In pratica si sostituisce la chiamata alla GetInstance del singleton con un parametro del metodo o della classe.
Ovviamente questo non garantisce che non ci siano più istanze di MyExSingleton nel sistema, ma se il progetto è ben scritto (e guidato) basta propagare MyExSingleton a poche classi.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:32   #31
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da MEMon Guarda i messaggi
Ragazzi scusate se mi intrometto, ma quando dovrebbe venire utile un singleton?
In tutti i seguenti casi:
fek è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:33   #32
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da MEMon Guarda i messaggi
Ragazzi scusate se mi intrometto, ma quando dovrebbe venire utile un singleton?
Cioè per quali scopi solitamente si usano? Ora come ora non riesco a pensare dove lo userei...
Il singleton può prendere il posto di qualsiasi variabile globale che contiene un riferimento o un puntatore ad un oggetto.
Se poi ti chiedi: mi hanno sempre insegnato che non si usano le variabili globali nella programmazione OOP, allora ti sei risposto da solo alla domanda: quando posso usare un singleton ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:33   #33
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da fek Guarda i messaggi
In tutti i seguenti casi:

No dai sul serio, riformulo la domanda.
Quali problemi portano a pensare ad una prima soluzione utilizzando i singleton, ma poi pensandoci bene si risolvono anche in altri modi?
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:34   #34
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da cionci Guarda i messaggi
Il singleton può prendere il posto di qualsiasi variabile globale che contiene un riferimento o un puntatore ad un oggetto.
Se poi ti chiedi: mi hanno sempre insegnato che non si usano le variabili globali nella programmazione OOP, allora ti sei risposto da solo alla domanda: quando posso usare un singleton ?
Perfetto afferato il discorso!
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:34   #35
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da MEMon Guarda i messaggi

No dai sul serio, riformulo la domanda.
Quali problemi portano a pensare ad una prima soluzione utilizzando i singleton, ma poi pensandoci bene si risolvono anche in altri modi?
Ma ero serio
fek è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:35   #36
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
fek: però mi sono chiesto...in un DLL condivisa fra più eseguibili, come faccio ad accedere ad una istanza condivisa di una classe (allocata da DllMain) se non uso una variabile static o un singleton o una variabile globale ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:35   #37
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Grazie mille del chiarimento cionci, ho capito la mia non comprensione da cosa era nata:
Quote:
Originariamente inviato da cionci Guarda i messaggi
Ovviamente questo non garantisce che non ci siano più istanze di MyExSingleton nel sistema, ma se il progetto è ben scritto (e guidato) basta propagare MyExSingleton a poche classi
Avendo letto in precedenza questo:
Quote:
Originariamente inviato da fek
Comunque si puo' garantire che esista sia una sola istanza di una classe in un processo senza usare il Singleton pattern, quindi senza fare cose tipo:
Codice:
UglySingleton* my_ugly_singleton = UglySingleton::GetInstance();
mi stavo chiedendo quale fosse quella strategia che mi evita l'uso del Singleton E mi garantisce una sola istanza di classe.

Si può fare senza classe Singleton?
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:39   #38
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci Guarda i messaggi
fek: però mi sono chiesto...in un DLL condivisa fra più eseguibili, come faccio ad accedere ad una istanza condivisa di una classe (allocata da DllMain) se non uso una variabile static o un singleton o una variabile globale ?
Hmmm, mi fai un esempio piu' concreto?
Secondo me il problema e' piu' di design: perche' devi accedere da piu' eseguibili ad una istanza condivisa e non puoi usare metodi di comunicazione fra processi piu' affidabili?

Quote:
Originariamente inviato da banryu79 Guarda i messaggi
mi stavo chiedendo quale fosse quella strategia che mi evita l'uso del Singleton E mi garantisce una sola istanza di classe.

Si può fare senza classe Singleton?

Di nuovo, perche' ti serve garantire una sola istanza di una classe? In questo caso io mettere una variabile statica nella classe e il costruttore forzerebbe il numero di istanze in base a quella variabile, restituendo un eccezione.
Non si avrebbero i problemi creati da quell'orribile getInstance(), ma si continuerebbero ad avere tutti i problemi legati alla testabilita' dei Singleton.

Ultima modifica di fek : 30-01-2008 alle 13:42.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:43   #39
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
ok, in allegato il test fatto con Visual studio.

Ho visto l'output e sembra da una parte funzionare (l'indirizzo della funzione statica è lo stesso sia printato dal main che dalla dll) da un'altra no:

c'è, nella classe singleton, una variabile statica int querty = 5
nel main è settata a 7

poi viene printeffata dal main, ed è 7,
dalla libreria statica è 7
dalla dll è 97534 ...

comunque anche wikipedia (in tedesco) dice che i singleton non vanno su Windows
Allegati
File Type: gz singleton_test.tar.gz (3.6 KB, 6 visite)
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2008, 13:49   #40
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da fek Guarda i messaggi
Di nuovo, perche' ti serve garantire una sola istanza di una classe? In questo caso io mettere una variabile statica nella classe e il costruttore forzerebbe il numero di istanze in base a quella variabile, restituendo un eccezione.
Non si avrebbero i problemi creati da quell'orribile getInstance(), ma si continuerebbero ad avere tutti i problemi legati alla testabilita' dei Singleton.
è esattamente quello che ho fatto io in una classe di questo progetto, anche se poi l'ho eliminata e modificato il design.

Quì volevano farmi usare il singleton anche su una classe di string utilities che ho fatto. Io ho messo tutte le funzioni statiche in modo da poterle utilizzare così:
Utility::Funzione(...)
e loro m'han detto, "il singleton è meglio" ... mi son rifiutato

perchè devo creare un'istanza con quel giro di beppe quando ci pensa il C++ automaticamente con le sue funzioni statiche ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
La costruzione del telescopio spaziale N...
HBO ha cancellato la produzione della se...
OpenAI ha pensato a una partnership (o a...
Starlink Mobile: SpaceX potrebbe lanciar...
Volkswagen trasforma lo stabilimento di ...
Meta AI più reattivo e imparziale...
In Cina la prima GPU discreta al mondo c...
Vertiv CoolCenter, il sistema di raffred...
Konecta entra nel Kraken BPO Partner Pro...
Un dialogo con l'AI sposta voti meglio d...
iPhone 17 al minimo storico: oggi il 256...
Gli utenti italiani scelgono ChatGPT: &e...
Anche Xiaomi avrà il suo trifold:...
È Natale in casa Tesla: arriva la...
Shai-Hulud diventa più cattivo: e...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v