Maison >Java >javaDidacticiel >Explication détaillée du modèle Java Singleton
Cet article présente principalement les informations pertinentes sur le mode Java singleton (mode homme affamé et mode homme paresseux). J'espère que tout le monde pourra maîtriser cette partie du contenu grâce à cet article. Les amis dans le besoin pourront se référer à
modèle java singleton
Singleton de style Hungry
Classe singleton paresseuse
Remarque :
Le premier ( Style chinois affamé ):
(2) Personnalisez un objet de cette classe
(3) Fournissez l'objet personnalisé, c'est-à-dire définissez une méthode get et la valeur de retour est un objet de cette classe.
Étape 2 : Mais si d'autres classes veulent appeler la méthode dans cette classe singleton, elles ne peuvent utiliser que le nom interne.Method name () pour l'implémenter, ce qui nécessite que cette méthode soit statique.
Étape 3 : Parce que les méthodes statiques ne peuvent accéder qu'aux membres statiques ! Alors réglez SINGLE sur statique
public class SingleDemo { public static void main(String[] args) { Single s1=Single.getSingle(); s1.setNumber(44); Single s2=Single.getSingle(); s2.setNumber(55); System.out.println("s1.number="+s1.number); System.out.println("s2.number="+s2.number); if(s1.equals(s2)){ System.out.println("s1与s2是同一对象即:s1==s2");//if条件成立 } } } class Single{ int number; public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } private Single(){};//第一步 private static final Single SINGLE=new Single();//第三步 public static Single getSingle(){//第一步和第二步 return SINGLE; } }
Le deuxième type (style paresseux) :
package cn.com; public class SingleDemo2 { public static void main(String[] args) { Single s1=Single.getSingle(); s1.setNumber(44); Single s2=Single.getSingle(); s2.setNumber(55); System.out.println("s1.number="+s1.number); System.out.println("s2.number="+s2.number); if(s1.equals(s2)){ System.out.println("s1与s2是同一对象即:s1==s2");//if条件成立 } } } class Single{ int number; public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } private Single(){}; private static Single SINGLE=null; public static synchronized Single getSingle(){//多线程时加上synchronized是关键!!! if(SINGLE==null){ SINGLE=new Single(); return SINGLE; } else{ return SINGLE; } } }Ce qui précède est une explication détaillée du modèle de conception Java singleton. Si vous avez des questions, veuillez laisser un message ou accéder à la communauté de ce site pour en discuter. Merci d'avoir lu. peut aider tout le monde. Merci pour votre soutien à ce site !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!