Pourquoi ne puis-je avoir qu'une seule instance de l'objet Calendrier
Je me demandais juste...
pourquoi ne puis-je avoir qu'une seule instance de l'objet Calendrier. Est-il une raison pour qu'il soit un singleton?
J'ai essayé de lire le la documentation mais ils ne mentionnent pas pourquoi cela est nécessaire. Et une rapide recherche sur google ne me donne pas toutes les réponses.
Calendar
n'est pas un singleton, et vous pouvez avoir plusieurs instances. Nous montrer le code où vous avez un problème.je n'ai pas de problèmes avec le code, je me demandais juste ...
OriginalL'auteur Gabriel | 2011-05-19
Vous devez vous connecter pour publier un commentaire.
Calendrier n'est pas un singleton, c'est une classe abstraite. Le
getInstance
méthode est une méthode qui retourne une mise en œuvre concrète de l'Agenda de la classe.De recherche Google pour java.util.Calendrier de code source, et vous verrez comment il fonctionne.
OriginalL'auteur Codemwnci
Pensez-vous que c'est un singleton, car il a une
getInstance()
méthode? Ce n'est pas le cas!getInstance()
retourne une nouvelle instance à chaque fois.non, l'API concepteurs doivent sentir stupide. C'est une misérable conçu API, c'est pourquoi personne avec le sens commun utilise Jodatime au lieu
"tout le monde avec le sens commun et n'est pas lié par certains stupide restrictions qui exigent de lui d'utiliser les classes natives" ... soupir.
Je sais, j'ai été là aussi 🙂
C'est le cas normal que
get
les méthodes retournant un objet mutable renvoyer une nouvelle instance.static
les méthodes retournant une instance partagée d'un objet mutable doit être brûlé.OriginalL'auteur Joachim Sauer
Il n'est pas un singleton.
Ce:
Sorties:
(Ce qui est différent comme vous pouvez le voir)
BTW, recherche rapide pour le code source de renvoie:
OriginalL'auteur MByD
Vous pouvez avoir autant d'instances de
Calendar
comme vous voulez ... modulo que c'est une classe abstraite, et vous parlez de cas de classes enfant de Calendrier.Peut-être vous pensez que le
getInstance()
méthode retourne un objet singleton? Il n'a pas. Il crée et retourne un nouvel objet à chaque fois que vous l'appelez.(La javadoc n'est pas explicitement que le calendrier n'est pas un singleton, mais il dit "Le Calendrier retournée est basée sur l'heure actuelle ...". Cela implique qu'il est de retour d'un nouvel objet à chaque fois ... parce que l'heure actuelle ne cesse de changer. Et de toute façon, qu'est ce que la méthode ne si vous voulez bien regarder le code source.)
OriginalL'auteur Stephen C