CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Quand ne pas utiliser de singleton ?

futurmononoke
futurmononoke
Niveau 10
22 mai 2019 à 12:27:07

Salut ! Je programme actuellement un gestionnaire de commande pour une pâtisserie (c'est un exercice personnel)

J'ai donc une classe manager pour les commandes et une autre pour gérer les produits (pâtisserie)

Sachant qu'elles sont uniques et que certains objets doivent faire appel à ces instances uniques je serais tenté de faire des singletons si je veux rester scolaire

Mais j'arrive pas vraiment à en voir l'utilité, j'ai beau cherché je ne vois pas quelle est la nuance entre "Instance unique qui requiert un singleton" et "Instance unique mais dont le singleton n'en vaut pas peine"

Quelqu'un pourrait m'éclairer ?

Message édité le 22 mai 2019 à 12:28:42 par futurmononoke
jiaheng
jiaheng
Niveau 6
22 mai 2019 à 13:02:30

Les design pattern c'est pour répondre à un problème de conception. As-tu vraiment besoin d'avoir une seule instance de ta classe ? Qu'est-ce que ça t'apporte ? Quels seront les effets de bord si tu ne mets pas ça en place ?
Si tu ne sais pas répondre à ces questions alors tu n'a pas besoin mettre ce design pattern en place.

dark_drow
dark_drow
Niveau 15
22 mai 2019 à 21:44:51

Part sur une instance unique sans le pattern et voit si ça marche comme ça

blackapplex
blackapplex
Niveau 10
23 mai 2019 à 08:15:20

Le 22 mai 2019 à 12:27:07 futurmononoke a écrit :
Salut ! Je programme actuellement un gestionnaire de commande pour une pâtisserie (c'est un exercice personnel)

J'ai donc une classe manager pour les commandes et une autre pour gérer les produits (pâtisserie)

Sachant qu'elles sont uniques et que certains objets doivent faire appel à ces instances uniques je serais tenté de faire des singletons si je veux rester scolaire

Mais j'arrive pas vraiment à en voir l'utilité, j'ai beau cherché je ne vois pas quelle est la nuance entre "Instance unique qui requiert un singleton" et "Instance unique mais dont le singleton n'en vaut pas peine"

Quelqu'un pourrait m'éclairer ?

Les designs patterns ne sont que des conventions. Si t'es seul sur ton code et que t'as une bonne idée de sa conception, tu peux te passer des designs qui existent pour restreindre des droits d'accès à des personnes qui n'ont pas l'utilité de comprendre le fonctionnement de ton code.

Message édité le 23 mai 2019 à 08:15:50 par blackapplex
dark_drow
dark_drow
Niveau 15
23 mai 2019 à 12:30:24

l'avantage d'éviter les singletons c'est quand même d'éviter les habitudes de code style
MonSingleton.getInstance() à travers tout le projet.
C'est contraignant à tester, tes classes ont des dépendances cachées.

Une dernière note tout de même, quand tu fais des objets globaux type singleton c'est bonne pratique de les faire le plus possible immutable pour ne pas avoir 15 objets en train de modifier joyeusement les même propriétés de ton singleton

haresl0
haresl0
Niveau 11
23 mai 2019 à 19:12:44

J'sais pas si ça a été dit, mais si tu en as besoin que a un seul endroit du code, c'est un peu useless, maintenant, ça prend sens quand tu dois appeller cet objet dans plusieurs classes différentes en gardant son instance :ok:

fous pas un singleton parce que tu te dis "j'en ai besoin que d'une fois façon", mais parce que tu te dis " j'en ai besoin plusieurs fois, mais que d'une seule instance à plusieurs endroits différents " :ok:

Message édité le 23 mai 2019 à 19:13:10 par haresl0
T_N_X
T_N_X
Niveau 7
30 mai 2019 à 02:55:41

Le 23 mai 2019 à 08:15:20 blackapplex a écrit :

Le 22 mai 2019 à 12:27:07 futurmononoke a écrit :
Salut ! Je programme actuellement un gestionnaire de commande pour une pâtisserie (c'est un exercice personnel)

J'ai donc une classe manager pour les commandes et une autre pour gérer les produits (pâtisserie)

Sachant qu'elles sont uniques et que certains objets doivent faire appel à ces instances uniques je serais tenté de faire des singletons si je veux rester scolaire

Mais j'arrive pas vraiment à en voir l'utilité, j'ai beau cherché je ne vois pas quelle est la nuance entre "Instance unique qui requiert un singleton" et "Instance unique mais dont le singleton n'en vaut pas peine"

Quelqu'un pourrait m'éclairer ?

Les designs patterns ne sont que des conventions. Si t'es seul sur ton code et que t'as une bonne idée de sa conception, tu peux te passer des designs qui existent pour restreindre des droits d'accès à des personnes qui n'ont pas l'utilité de comprendre le fonctionnement de ton code.

C'est exactement ça.. Prends l'habitude d'écrire du code comme si il devait être intégré dans une librairie et/ou être utilisé par une autre personne, avec un Singleton tu es sûr d'avoir un seul et unique objet.

Sneyek
Sneyek
Niveau 12
05 juin 2019 à 14:49:20

La bonne question serait plutôt "Quand utiliser un Singleton" :hap:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware